越写越觉得支付类的文档写这么细,会不会反而让大家觉得很复杂呀?其实都是同样的调用方式
这一篇,将把支付宝剩下的扫码支付与条码支付全部写清楚。
Payment 3.0
支付宝的配置设置文档请 点击这里
项目GitHub地址:https://github.com/helei112g/...
支付宝的当面付,包括扫码支付与条码支付。
扫码支付,是消费者用手机去扫商家生成的二维码。个人觉得也可以将这个功能用在pc支付上。取代即时到账接口。
条码支付,商家用扫码枪读取用户支付宝上的条码。对应微信的刷卡支付。该项广泛用在超市结账时。
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
body | boolean | 是 | 商品描述 |
subject | string | 是 | 商品名称,该参数最长为128个汉字 |
order_no | string | 是 | 商户网站唯一订单号 |
timeout_express | string | 是 | 设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。 |
amount | float | 是 | 该笔订单的资金总额,单位为RMB-Yuan |
store_id | string | 否 | 商户门店编号 |
operator_id | string | 否 | 商户操作员编号 |
terminal_id | string | 否 | 商户机具终端编号 |
alipay_store_id | string | 否 | 支付宝店铺的门店ID |
scene | string | 是 | 条码支付时,必须设置 |
auth_code | string | 是 | 条码支付时,必须设置 |
body
主要是对商品的描述,根据自己的业务写就好,不过不要用一些非常特殊的字符,支付宝可能会进行一些处理,导致你的结果与预期不一样
subject
可以写一下商品名称信息,主要是方便支付宝后台对账时查看
order_no
自己生成的订单号,每次下单的单号必须唯一。也就是说:同一个 order_no 他的其他下单数据不能发生变化,价格、名称等等。如果有变化,需要重新生成一个订单号。
timeout_express
订单过期时间,很简单,你希望在那一刻过期,就写那个点的时间戳。只会精确到分钟
amount
订单的金额,就是用户实际需要支付的金额。
store_id
门店编号,这部分数据主要是支付宝为了将业务深化到线下而提供的,如果用不到,不设置就好。
operator_id
商户操作员编号,可以不设置。
terminal_id
商户机具终端编号,可以不设置。
alipay_store_id
支付宝店铺的门店ID,没有的话,也可以不设置。
scene
条码支付,必须设置该选项,条码支付,取值:bar_code 声波支付,取值:wave_code
auth_code
条码支付必须设置。
在上面的参数中,除了特别说明的,其它部分,扫码支付与条码支付都需要。
代码调用。
use Payment\Common\PayException;
use Payment\Client\Charge;
$config = require_once('./aliconfig.php');// 支付宝的配置信息
$channel = 'ali_qr';// ali_bar
$payData = [
'body' => '一个苹果',
'subject' => '牛逼公司--付款吧',
'order_no' => 'NB12312355',
'timeout_express' => '1489241888',
'amount' => '100',
'return_param' => 'buy some',
'goods_type' => 1,// 默认值为1,因此也可以省略
'store_id' => '',// 没有就不设置
];
try {
$str = Charge::run($channel, $config, $payData);
} catch (PayException $e) {
// 异常处理
exit;
}
echo htmlspecialchars($str);
如果使用的扫码支付, $channel = 'ali_qr'
则返回一个url。大家可以通过将返回的字符串生成一个二维码。即可进行扫码支付。
另外请记得,如果使用的沙箱请使用对应的沙箱支付宝来扫码。关于沙箱的介绍。看这里
如果使用的条码支付, $channel = 'ali_bar'
必须设置以下两个字段
scene 支付场景 条码支付,取值:bar_code 声波支付,取值:wave_code
auth_code 支付授权码,也就是用户手机条码对应的值。
这个接口测试时,大家可以手动把条码的值,输入进去
ok!支付宝支付类的接口基本就讲完了。接下来将开始讲解微信支付的接口。使用起来都一样,不一样的仅仅是参数部分。还是安排将微信支付的配置开一篇单独的文章进行讲解。
如果你有不清楚的或者愿意交流的地方,请联系我:
邮箱:dayugog@gmail.com
如果你觉得这个项目有帮助到你,请打赏我,让我有动力持续下去左边微信,右边支付宝:
ps: 一般性的问题请大家可以先查资料,如果实在无法解决找我吧(不免费服务)。