支付调用发起方式是
try {
$str = Charge::run(支付类型, 配置数据, 支付数据);
} catch (PayException $e) {
echo $e->errorMessage();
exit;
}
本篇按照支付宝具备的支付能力,分别说明 支付数据 包含哪些。
首先在这里申明支付宝支付,所有的共有参数,然后依次说明每种支付独特的参数。若无独特参数,将标记为无。
希望在阅读以下内容时请先阅读官方内容,以便更好的理解以下字段含义。
⚠️ 所有字段,请注意不要包含特殊字符,至于是哪些特殊字符全看支付宝心情,如果你出错,可以先把这个做为你排错的第一步
支付宝请求支付的共同参数
字段 | 类型 | 是否必须 | 介绍 | 示例 |
---|---|---|---|---|
body | string(128) | 是 | 对一笔交易的具体描述信息。 | Iphone6 16G |
subject | string(256) | 是 | 商品标题 | 苹果手机 |
order_no | string(64) | 是 | 订单号不可重复向支付宝发送 | NPK123456UU |
amount | string | 是 | 需要支付的金额,单位元 | 16 |
timeout_express | int | 否 | 过期时间(当前时间+过期s数),必须大于当前支付请求时间 | 1502432633 |
return_param | string(512) | 否 | 异步通知时原样返回的数据,不需要urlencode。不可包含特殊符号 | 123abcd |
goods_type | enum(0, 1) | 否 | 商品类型,0:虚拟商品 1:实物商品 | 1 |
store_id | string(32) | 否 | 商户用来区分门店的标记 | NO_001 |
该表中的字段,是每一种支付都需要的,我们称其为:基础支付数据
大家阅读文档时,请注意这里有的名称与支付宝最新的文档不一致,此为历史遗留问题。
APP支付
无特殊字段
手机网站支付
无特殊字段
电脑网站支付
电脑网站支付需要的额外字段:
字段 | 类型 | 是否必须 | 介绍 | 示例 |
---|---|---|---|---|
qr_mod | enum(0, 1, 2, 3, 4) | 否 | pc扫码支付的方式,支持前置模式与后置模式。具体看文档,默认为2 | 2 |
当面付(条码支付)
即商家使用扫码设备,扫描用户支付宝钱包上的条码/二维码,完成收款。
条码支付需要的额外字段:
字段 | 类型 | 是否必须 | 介绍 | 示例 |
---|---|---|---|---|
scene | enum('bar_code', 'wave_code') | 是 | 支付场景 条码支付: bar_code声波支付:wave_code | bar_code |
auth_code | string(32) | 是 | 支付授权码,25-30开头的长度为16-24位的数字 | 28763443825664394 |
operator_id | string(28) | 否 | 商户操作员编号 | Jack_001 |
terminal_id | string(32) | 否 | 商户机终端编号 | BJKY_001 |
当面付(扫码支付)
用户支付宝钱包上的扫一扫功能扫商户二维码,完成付款。
商户通过该接口生成二维码供用户扫码完成交易
扫码支付需要的额外字段:
字段 | 类型 | 是否必须 | 介绍 | 示例 |
---|---|---|---|---|
operator_id | string(28) | 否 | 商户操作员编号 | Jack_001 |
terminal_id | string(32) | 否 | 商户机终端编号 | BJKY_001 |