>[danger] 注意:如果支付失敗,請到TP日志中查看錯誤信息,支付錯誤提示格式如下:
> JSAPI支付錯誤 =======pay(AlipayPayJs) err:
> Native掃碼支付錯誤 =======pay(AlipayNative) err:
> H5支付錯誤 =======pay(AlipayMWEB_H5) err:
> Micropay 刷卡支付錯誤 =======pay(AlipayMICROPAY) err:
>[info]支付api,通過連接調起支付
支付寶H5支付:
```
{:url('accounts/Pay/pay',['payType'=>'Alipay_H5','body'=>'cowcms','attach'=>'cowcms','out_trade_no'=>"1111",'total_fee'=>1,'subject'=>'222'])}
```
支付寶掃碼支付:
```
{:url('accounts/Pay/pay',['payType'=>'Alipay_Native','body'=>'cowcms','attach'=>'cowcms','out_trade_no'=>"1111",'total_fee'=>1,'subject'=>'222','qr_pay_mode'=>2,'qrcode_width'=>100])}
```
>[info]【支付寶支付】如何使用Native(掃碼)支付
* [x] 第一步 :控制器的php代碼
```
$param['body'] = "cowcms";
$param['attach'] = "cowcmsKKK";
$param['out_trade_no'] = "cowcms_1111";
$param['total_fee'] = 5;
$param['subject'] = "cowcms";
$param['qr_pay_mode'] = "2";
$param['qrcode_width'] = 100;
pay('Alipay_Native',$param);
```
以上代碼等同于訪問以下連接:
```
{:url('accounts/Pay/pay' ['payType'=>'Alipay_Native','body'=>'cowcms','attach'=>'cowcmsKKK','out_trade_no'=>"cowcms_1111",'total_fee'=>5,'subject'=>'cowcms','qr_pay_mode'=>2,'qrcode_width'=>100])}
```
>$param 參數說明
| 參數 | 類型 | 默認 | 描述 |
| --- | --- |--- |--- |
| body(**必填**) | String(128) | 產品消費__會員 | 商品描述|
| attach (**必填**)| String(128) | PRO_1 | 附加數據,在查詢API和支付通知中原樣返回,可作為自定義參數使用 可以附帶產品id或者其它|
| out_trade_no(**必填**) | String(32) | 20150806125346 | cowcms系統產生的訂單號, 且唯一 |
| total_fee (**必填**)| INT | 100| 訂單總金額,單位為分 |
| subject (**必填**)| String(32) | cowcms_0| 支付訂單標題|
| qr_pay_mode | string(2) | 2 |PC掃碼支付的方式,支持前置模式和 跳轉模式。<BR/> 前置模式是將二維碼前置到商戶的訂單確認頁的模式。需要商戶在 自己的頁面中以 iframe 方式請求 支付寶頁面。具體分為以下幾種:<BR/> 0:訂單碼-簡約前置模式,對應 iframe 寬度不能小于600px,高度不能小于300px; <BR/> 1:訂單碼-前置模式,對應iframe 寬度不能小于 300px,高度不能小于600px; <BR/> 3:訂單碼-迷你前置模式,對應 iframe 寬度不能小于 75px,高度不能小于75px; <BR/>4:訂單碼-可定義寬度的嵌入式二維碼,商戶可根據需要設定二維碼的大小。 <BR/>跳轉模式下,用戶的掃碼界面是由支付寶生成的,不在商戶的域名下。<BR/> 2:訂單碼-跳轉模式|
| qrcode_width | int | 100| 商戶自定義二維碼寬度 注:qr\_pay\_mode=4時該參數生效|
| redirect_url | String(512) | url('alipay/Alipaypay/redirect') | 支付完成跳轉地址|
>[info]【支付寶支付】如何使用MWEB(H5)支付
* [x] 第一步 :控制器的php代碼
```
$param['body'] = "cowcms";
$param['attach'] = "cowcmsKKK";
$param['out_trade_no'] = "cowcms_1111";
$param['total_fee'] = 5;
$param['subject'] = "cowcms";
pay('Alipay_H5',$param);
```
以上代碼等同于訪問以下連接:
```
{:url('accounts/Pay/pay'['payType'=>'Alipay_H5','body'=>'cowcms','attach'=>'cowcmsKKK','out_trade_no'=>"cowcms_1111",'total_fee'=>5,'subject'=>'cowcms',])}
```
>$param 參數說明
| 參數 | 類型 | 默認 | 描述 |
| --- | --- |--- |--- |
| body(**必填**) | String(128) | 產品消費__會員 | 商品描述|
| attach (**必填**)| String(128) | PRO_1 | 附加數據,在查詢API和支付通知中原樣返回,可作為自定義參數使用 可以附帶產品id或者其它|
| out_trade_no(**必填**) | String(32) | 20150806125346 | cowcms系統產生的訂單號, 且唯一 |
| total_fee (**必填**)| INT | 100| 訂單總金額,單位為分 |
| subject (**必填**)| String(32) | cowcms_0| 支付訂單標題|
| redirect_url | String(512) | url('alipay/Alipaypay/redirect') | 支付完成跳轉地址|
>[info]查詢支付訂單
```
//$param['trade_no ']="2019053122001446011000031994";//支付寶交易號,和商戶訂單號不能同時為空
$param['out_trade_no']="cowcms_1559272717";//COWCMS系統支付時傳遞過去的訂單號
$order = pay('Alipay_PayOrder',$param);;
dump($order);
```
>查詢訂單請求參數
| 參數 | 類型 | 默認 | 描述 |
| --- | --- |--- |--- |
| trade_no | String(64) | 2019053122001446011000031994 | 支付寶交易號,和商戶訂單號不能同時為空|
| out_trade_no| String(32) | cowcms_1559272717 | COWCMS系統支付時傳遞過去的訂單號,trade_no 和out_trade_no二選一,推薦使用out_trade_no|
>返回示例代碼
```
array(14) {
["code"] => string(5) "10000"
["msg"] => string(7) "Success"
["buyer_logon_id"] => string(18) "yur***@sandbox.com"
["buyer_pay_amount"] => string(4) "0.00"
["buyer_user_id"] => string(16) "2088102178846014"
["buyer_user_type"] => string(7) "PRIVATE"
["invoice_amount"] => string(4) "0.00"
["out_trade_no"] => string(21) "cowcms_1559272717"
["point_amount"] => string(4) "0.00"
["receipt_amount"] => string(4) "0.00"
["send_pay_date"] => string(19) "2019-05-31 10:14:31"
["total_amount"] => string(4) "0.01"
["trade_no"] => string(28) "2019053122001446011000031994"
["trade_status"] => string(13) "TRADE_SUCCESS"
}
```
參數說明[查看](https://docs.open.alipay.com/api_1/alipay.trade.query)
>[info]支付退款
```
//$param['trade_no ']="2019053122001446011000031994";//支付寶交易號,和商戶訂單號不能同時為空
$param['out_trade_no']="cowcms_1559272717";//COWCMS系統支付時傳遞過去的訂單號
$param['refund_amount']=1;//退款金額
$order = pay('Alipay_Refund',$param);;
dump($order);
```
>支付退款請求參數
| 參數 | 類型 | 默認 | 描述 |
| --- | --- |--- |--- |
| trade_no | String(64) | 2019053122001446011000031994 | 支付寶交易號,和商戶訂單號不能同時為空|
| out_trade_no| String(32) | cowcms_1559272717 | COWCMS系統支付時傳遞過去的訂單號,transaction_id和out_trade_no二選一,推薦使用out_trade_no|
| refund\_amount| int | 1 | 退款金額,單位為分|
| out_request_no (選填)| String(64) | cowcms_1559112635| 標識一次退款請求,同一筆交易多次退款需要保證唯一,如需部分退款,則此參數必傳。,如果未傳,系統會會默認生成一個cowcms_$time|
>返回示例代碼
```
array(11) {
["code"] => string(5) "10000"
["msg"] => string(7) "Success"
["buyer_logon_id"] => string(18) "yur***@sandbox.com"
["buyer_user_id"] => string(16) "2088102178846014"
["fund_change"] => string(1) "Y"
["gmt_refund_pay"] => string(19) "2019-05-31 12:04:11"
["out_trade_no"] => string(17) "cowcms_1559272717"
["refund_fee"] => string(4) "0.02"
["send_back_fee"] => string(4) "0.00"
["trade_no"] => string(28) "2019053122001446011000031994"
["out_request_no"] => string(23) "cowcms_I1Y3t11559275313"
}
```
參數說明[查看](https://docs.open.alipay.com/api_1/alipay.trade.refund)
>[info]微信退款訂單查詢
```
//$param['trade_no ']="2019053122001446011000031994";//支付寶交易號,和商戶訂單號不能同時為空
$param['out_trade_no']="cowcms_1559272717";//COWCMS系統支付時傳遞過去的訂單號
$param['out_request_no ']="cowcms_I1Y3t11559275313";//退款時傳入的參數
$order = pay('Alipay_RefundOrder',$param);;
dump($order);
```
>微信退款請求參數
| 參數 | 類型 | 默認 | 描述 |
| --- | --- |--- |--- |
| trade_no | String(64) | 2014112611001004680 073956707 | 支付寶交易號,和商戶訂單號不能同時為空|
| out_trade_no| String(32) | cowcms_Es52hE20190528200815| COWCMS系統支付時傳遞過去的訂單號r trade_no > out_trade_no 二選一,推薦使用out_trade_no|
| out\_request\_no (必填)| String(32) | cowcms_1559112635| 請求退款接口時,傳入的退款請求號|
>返回示例代碼
```
array(7) {
["code"] => string(5) "10000"
["msg"] => string(7) "Success"
["out_request_no"] => string(23) "cowcms_I1Y3t11559275313"
["out_trade_no"] => string(17) "cowcms_1559272717"
["refund_amount"] => string(4) "0.01"
["total_amount"] => string(4) "0.05"
["trade_no"] => string(28) "2019053122001446011000031994"
}
```參數說明[查看](https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query/)
- 序言
- 基礎
- 源碼包
- 核心包
- 完整包
- 系統模塊
- 安裝模塊
- 后臺模塊
- 插件模塊
- 插件開發
- 開發基礎
- 權限開發
- 菜單開發
- 開發調試
- 碎片開發
- 碎片鉤子預設表
- 插件說明
- 字段插件
- 插件介紹
- 字段使用
- 單行文本
- 多行文本
- 選項-下拉
- 選項-復選
- 選項-單選
- 選項-滑塊
- 顏色選擇器
- 星級評分
- 日期時間
- 文件上傳
- 編輯器
- API接口
- 微信插件
- 微信配置
- 公眾號配置
- 支付配置
- 微信支付使用
- API類庫
- 紅包發放
- 付款到零錢
- 碎片
- 公眾號碎片
- 紅包碎片
- 付款到零錢碎片
- API微信接口
- 支付寶插件
- 支付寶配置
- 支付寶支付使用
- api接口
- api接口后端開發
- api接口前端使用
- API參數接口
- 會員插件
- 登錄使用
- 會員碎片
- API會員接口
- API注冊接口
- 積分插件
- 積分設置
- 積分碎片
- API積分接口
- API提現接口
- API兌換接口
- API充值接口
- 訂單
- 訂單碎片
- API訂單接口
- 商城
- 商城鉤子
- API商城接口
- API商城會員接口
- 簽到
- 簽到設置
- 簽到碎片
- API簽到接口
- 上傳
- 上傳設置
- 上傳JS接口
- 推廣插件
- 海報設置
- API海報接口
- 文章插件
- 文章設置
- 文章鉤子
- API文章接口
- API文章會員接口
- 管理員
- 管理員碎片
- 站內信
- API站內信接口
- 雜項
- 菜單
- 菜單設置
- API菜單接口
- 錯誤碼
- 支付碎片
- 支付
- 充值
- 購買會員組
- 購買產品