>[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/)