当前位置:   article > 正文

fastadmin 微信支付宝整合插件 支付宝APP支付 ALIN10146_fastadmin支付一直通知问题

fastadmin支付一直通知问题

1.调试微信支付宝整合插件支付宝APP支付,支付宝支付一直报错 ALIN10146调了6个小时

我使用的是 微信支付宝整合插件,以下为我调用支付的代码

  1. $params = [
  2. 'amount'=> 0.01,
  3. 'orderid'=> $model['order_sn'],
  4. 'type'=> 'alipay',
  5. 'title'=> "字帖",
  6. 'notifyurl'=> $this->request->root(true) . '/addons/epay/index/notifyorder/paytype/alipay',
  7. 'returnurl' => $this->request->root(true) . '/addons/epay/index/notifyorder/paytype/alipay', //
  8. 'method'=>"app",
  9. ];
  10. $pay_params = \addons\epay\library\Service::submitOrder($params);

原因是支付宝APP支付,没配置returnurl参数,插件默认把returnurl参数加进去,值为空,并且参与了签名,生成的结果给支付宝调用的时候,这个returnurl参数为空,会报错ALIN10146,我的解决方式加returnurl参数,问题成功解决,

如果报错 ALIN10146 建议仔细检查,签名是否有 return_url为空的参数参与签名 sign_type=RSA2&return_url=&version=1.0,

return_url=这样的参数参与签名会报错ALIN10146

下面给出支付宝APP支付最快捷的调试方式

1.下载App支付服务端 DEMO 下载地址https://docs.open.alipay.com/54/106370/

2. 复制对应demo的语言的调用方法,不要用下载下来的SDK里的方法,参数太多不利于调试

3.把下面的代码复制进去,配置appid  生成的私钥  支付宝公钥(商户后台配置后生成的支付宝公钥,下面附有截图)

  1. $aop = new AopClient;
  2. $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
  3. $aop->appId = "app_id";
  4. $aop->rsaPrivateKey = '请填写开发者私钥去头去尾去回车,一行字符串';
  5. $aop->format = "json";
  6. $aop->charset = "UTF-8";
  7. $aop->signType = "RSA2";
  8. $aop->alipayrsaPublicKey = '请填写支付宝公钥,一行字符串';
  9. //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
  10. $request = new AlipayTradeAppPayRequest();
  11. //SDK已经封装掉了公共参数,这里只需要传入业务参数
  12. $bizcontent = "{\"body\":\"我是测试数据\","
  13. . "\"subject\": \"App支付测试\","
  14. . "\"out_trade_no\": \"20170125test01\","
  15. . "\"timeout_express\": \"30m\","
  16. . "\"total_amount\": \"0.01\","
  17. . "\"product_code\":\"QUICK_MSECURITY_PAY\""
  18. . "}";
  19. $request->setNotifyUrl("商户外网可以访问的异步地址");
  20. $request->setBizContent($bizcontent);
  21. //这里和普通的接口调用不同,使用的是sdkExecute
  22. $response = $aop->sdkExecute($request);
  23. //htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
  24. echo htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。

3.把echo的结果复制给客户端,是可以直接发起调用的,如果不能使用,说明配置的公钥或私钥APPID是错的,仔细检查,可以加裙     721200119问我,我是裙住

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/132088
推荐阅读
  

闽ICP备14008679号