技术&日志

APP支付SDK-支付宝-PHP

调试支付宝一直出现-ALIN10146-系统繁忙

出现的问题: ALIN10146-系统繁忙

  • 错误1: 由于在创建应用的使用选择了[公钥证书]加签方式、(PHP不要选择这一项、这个一旦确定就不可以修改了、只能重新创建提交审核)
  • 错误2: 参数加的位置错误
// 使用easyswoole集成的composer包-错误使用方式
        $aliConfig = new \EasySwoole\Pay\AliPay\Config();
        $aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
        $aliConfig->setAppId('2019091167181387');
        $aliConfig->setPublicKey('xxxxxx');
        $aliConfig->setPrivateKey('xxxxxxxx');
        $pay = new \EasySwoole\Pay\Pay();
        $order = new \EasySwoole\Pay\AliPay\RequestBean\App();
        $order->setSubject($orderDesc);
        $order->setOutTradeNo($orderSn);
        $order->setTotalAmount($money);
        $aliPay = $pay->aliPay($aliConfig);
        $result = $aliPay->app($order)->toArray();
        $result ['notify_url'] = 'http://261843m3y6.wicp.vip:52034/ali/pay_notify'; # 这个回调通知地址不可以加到这儿、可有可无
        foreach ($result as &$value) {
            $value = $this->characet($value, $result['charset']);
        }
        $body ['body'] = http_build_query($result);
        return $body;
// 使用easyswoole集成的composer包-正确使用方式
        $aliConfig = new \EasySwoole\Pay\AliPay\Config();
        $aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
        $aliConfig->setAppId('2019091167181387');
        $aliConfig->setPublicKey('xxxxxx');
        $aliConfig->setPrivateKey('xxxxxxxx');
        $aliConfig->setNotifyUrl('http://261843m3y6.wicp.vip:52034/ali/pay_notify'); # 需要的话通过这个方法添加
        $pay = new \EasySwoole\Pay\Pay();
        $order = new \EasySwoole\Pay\AliPay\RequestBean\App();
        $order->setSubject($orderDesc);
        $order->setOutTradeNo($orderSn);
        $order->setTotalAmount($money);
        $aliPay = $pay->aliPay($aliConfig);
        $result = $aliPay->app($order)->toArray();
        foreach ($result as &$value) {
            $value = $this->characet($value, $result['charset']);
        }
        $body ['body'] = http_build_query($result);
        return $body;

支付结果验签

// 使用easyswoole集成的composer包
        $param = $this->request()->getRequestParam();
        unset($param['sign_type']);
        $aliConfig = $this->aliPayConfig();
        $aliConfig->setPublicKey('支付宝公钥(当你生成公钥填入到支付宝开发平台、平台会生成一个公钥-共两个公钥)'); # 支付的时候用自己的公钥、验签用支付宝公钥
        $order = new \EasySwoole\Pay\AliPay\RequestBean\NotifyRequest($param,true);
        $pay = new \EasySwoole\Pay\Pay();
        $aliPay = $pay->aliPay($aliConfig);
        if($aliPay->verify($order)) {

沙箱配置

RSA(SHA1)密钥 和 RSA2(SHA256)密钥(推荐) 两个只要填写一个即可, RSA指得是工具中的1024, RSA2指得是工具生成的2048

应用网关: 指得是支付宝服务推送消息接收地址(我们自己服务器中的地址外网可访问的)

授权回调地址: 用于需要用户授权的处理的回调地址

阿里开发平台-APP应用添加

注意: 加签管理中-选择公钥(不要选择公钥证书-官方SDK没有提供PHP对证书的加签方式 需要自己实现-JAVA的官方SDK提供了)

秘钥生成工具

注意: 要选择PKCS1(非JAVA使用)

相关资料

调用接口-时序图 下拉到: 第四步:调用接口
请求参数
PHP服务端 SDK 生成 APP支付订单信息示例

生成 RSA 密钥
联调日志排查
沙箱调试 需要登录后-开发中心-开发服务-研发服务

ALIN10146-系统繁忙

支付宝接口错误代码 invalid-signature 错误原因: 验签出错
支付宝报错:系统繁忙,请稍后再试

遇到调试不同可以点击、有技术点我、图标然后输入”人工客服”

发表评论