Payment:支付宝移动支付服务端教程

Payment 3.0 支付宝的配置设置文档请 点击这里

项目GitHub地址https://github.com/helei112g/...

移动支付,适用场景:

适用于商家在App应用中集成支付宝支付功能。
商家APP调用支付宝提供的SDK调用支付宝客户端内的支付模块,商家APP会跳转到支付宝中完成支付,支付完后跳回到商家APP内,最后展示支付结果。

目前支持手机系统有:iOS(苹果)、Android(安卓)。

现在来讲服务端的部分。支持的参数如下表格。

参数类型是否必须说明
bodyboolean商品描述
subjectstring商品名称,该参数最长为128个汉字
order_nostring商户网站唯一订单号
timeout_expressstring设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。
amountfloat该笔订单的资金总额,单位为RMB-Yuan
return_paramstring公用回传参数
goods_typestring商品主类型:0—虚拟类商品,1—实物类商品 默认为1
store_idstring商户门店编号

body 主要是对商品的描述,根据自己的业务写就好,不过不要用一些非常特殊的字符,支付宝可能会进行一些处理,导致你的结果与预期不一样

subject 可以写一下商品名称信息,主要是方便支付宝后台对账时查看

order_no 自己生成的订单号,每次下单的单号必须唯一。也就是说:同一个 order_no 他的其他下单数据不能发生变化,价格、名称等等。如果有变化,需要重新生成一个订单号。

timeout_express 订单过期时间,很简单,你希望在那一刻过期,就写那个点的时间戳。只会精确到分钟

amount 订单的金额,就是用户实际需要支付的金额。

return_param 希望支付宝异步通知时,原样返回给你的数据,同样注意避免一些特殊字符

goods_type 用来区分购买的是实际商品还是虚拟商品,虚拟商品不需要物流发货,并且 虚拟类商品不支持使用花呗渠道

store_id 门店编号,这部分数据主要是支付宝为了将业务深化到线下而提供的,如果用不到,不设置就好。

代码调用。

use Payment\Common\PayException;
use Payment\Client\Charge;

$config = require_once('./aliconfig.php');// 支付宝的配置信息


$channel = 'ali_app';
$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);

这里返回的是一个拼接好的字符串,客户端(IOS 或者 Android) 拿到后,就可调起支付宝进行支付。客户端如何调起,请看资料

这篇文章真的太偷懒了。完全就是把 手机网站支付 拷贝过来了而已。

唯一的差别在于 $channel 参数的不同。

$channel 可取值:

名称含义
ali_web即时到账
ali_appapp支付(移动支付)
ali_wapH5支付(手机网站支付、wap支付)
ali_qr当面付中的扫码支付
ali_bar当面付中的条码支付

还剩下支付宝的当面付,包括:扫码支付 条码支付 将会在下一篇全部写完。


如果你有不清楚的或者愿意交流的地方,请联系我:

邮箱[email protected]

如果你觉得这个项目有帮助到你,请打赏我,让我有动力持续下去左边微信,右边支付宝:

Payment:支付宝移动支付服务端教程

ps: 一般性的问题请大家可以先查资料,如果实在无法解决找我吧(不免费服务)。

相关推荐