php支付宝转账到账户、单笔转账接口

近期有自动打款到账户的需求,微信接口开通要求为企业账号+过往30天连续有交易;支付宝账户签约要求:仅支持注册满90天,且已实名认证的企业支付宝账户签约。微信暂时没达到要求,如下记录支付宝的。

基本集成

1.支付宝转账到支付宝账户产品介绍:https://opendocs.alipay.com/open/309

2.支付宝单笔转账接口文档:https://opendocs.alipay.com/apis/api_28/alipay.fund.trans.uni.transfer

3.下载服务端sdk:https://opendocs.alipay.com/open/54/103419/

4.支付宝普通公钥与公钥证书区别及其生成:https://opendocs.alipay.com/open/291/105971#LDsXr

开发中遇到的问题

1.isv.missing-app-cert-sn(缺少应用公钥证书序列号)

错误原因:资金类接口(强制必须要使用公钥证书)却使用了普通公钥方式进行签名导致的

解决办法:使用公钥证书

具体解释https://opensupport.alipay.com/support/helpcenter/192/201602472805?ant_source=antsupport

支付宝普通公钥与公钥证书区别及其生成:https://opendocs.alipay.com/open/291/105971#LDsXr

2.无效支付宝根证书序列号

解决参考:https://developer.aliyun.com/ask/285113

我也遇到过这个问题,配置都是正确的,换了一个php版本可以正常跳转支付。调试了一下sdk代码,AopCertClient类下有一个hex2dec 方法,这里返回了一个round缺失精度类型,并且转为幂输出,修改如下,sdk版本php-4.9.1。

function hex2dec($hex) {
        $dec = 0;
        $len = strlen($hex);
        for ($i = 1; $i <= $len; $i++) {
            $dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i))));
        }

        // return round($dec, 0);
        return $dec;
}
支付宝接口证书加签

admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: