支付宝对各种支付场景,都提供了SDK,供开发者参考和使用,而且官方也说明,他们的demo可在线上直接使用,由此看,大部分场景接入支付宝支付都相对较为简单。
在微信支付中,官方仅提供jsapi支付的sdk,改动配置即可使用,其它支付场景需要开发者自己处理,例如生成签名,转义数据等。
虽然支付宝提供了较为全面的sdk和文档,但仔细阅读文档,调试sdk等仍需一些时间。
而且在支付宝文档中,官方的说明,总有些位置出现更新不及时,说明不详细等问题,增加使用的难度。
举个例子说明,先看下图:
上面的图片中,红框内的代码为支付宝在线调试工具所提供,工具比较正式,但代码放到项目中依旧不能使用,且APP支付场景下,在PHP中并不提示错误,有问题也不能及时查看原因,且参数有误时,依旧能生成签名,但在前端调用接口时,会出现类似如下这样的错误(安卓提供)。
支付宝有两种公钥,一个私钥,填写配置时容易错乱,出现6001这个错误码,网上查询结果大多说是公钥的问题,但调整公钥还是问题依旧,最后调整字段,删除一些非必要的参数,功能恢复正常,而这些参数,均为官方提供。
还有一点,支付接口的代码,在支付宝sdk、在线调试工具等不同位置,提供的代码也不同,官方说法参差不齐,增加了开发者的工作量。
需要注意的是,使用秘钥支付时,公钥为“支付宝公钥”,不是应用公钥。
下面为支付demo
$request_info_par=array(); //假设此数组包含用户支付的订单信息
require_once 'AopClient.php';
require_once 'AopCertClient.php';
require_once 'AopCertification.php';
require_once 'AlipayConfig.php';
require_once 'request/AlipayTradeAppPayRequest.php';
$privateKey = "应用私钥"; //填写应用私钥
$alipayPublicKey = "支付宝公钥"; //填写支付宝公钥
$alipayConfig = new AlipayConfig();
$alipayConfig->setServerUrl("https://openapi.alipay.com/gateway.do"); //支付网关
$alipayConfig->setAppId("合作身份者id"); //填写appid
$alipayConfig->setPrivateKey($privateKey);
$alipayConfig->setFormat("json");
$alipayConfig->setAlipayPublicKey($alipayPublicKey);
$alipayConfig->setSignType("RSA2");
$alipayClient = new AopClient($alipayConfig);
$request = new AlipayTradeAppPayRequest();
$request->setBizContent("{".
"\"out_trade_no\":\"".$request_info_par['out_trade_no']."\",". //商户订单号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
"\"total_amount\":\"".$request_info_par['total_fee']."\",". //订单总金额。 单位为元,精确到小数点后两位,取值范围:[0.01,100000000] 。
"\"subject\":\"".$request_info_par['subject']."\",". //订单标题。 注意:不可使用特殊字符,如 /,=,& 等。
"\"body\":\"".$request_info_par['body']."\",". //订单附加信息。 如果请求时传递了该参数,将在异步通知、对账单中原样返回,同时会在商户和用户的pc账单详情中作为交易描述展示
"\"goods_type\":\"0\",". //商户订单号。 由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
"}");
$request->setNotifyUrl("http://xxx.xxx.com/zhifubao/notify/recharge/"); //支付成功后的回调地址,用户自定义,只能为静态地址
$request_str = $alipayClient->sdkExecute($request); //若参数均正常,生成的签名无误,ios和安卓使用这里返回的字符串,即可拉起支付宝收银台
回调参数,仅作参考,签名等重要参数已做修改
官方SDK下载地址:https://opendocs.alipay.com/open/54/106370
异步通知(回调)文档:https://opendocs.alipay.com/open/204/105301
demo参考,使用电脑浏览器下载
打赏