本文主要是介绍记一次支付宝接口收不到异步通知自查方案-支付宝接口常见错误系列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
说明:
1.需http://或者https://格式的完整路径
例:https://您的域名/notify_url.php ,支持ip地址方式。(推荐使用域名)
2.不能加?id=123这类自定义参数
错误示例:https://您的域名/notify_url.php?id=123&test=abc
3.必须外网可以正常访问,这个不难理解,在您的异步地址没有代码逻辑的情况下,直接访问应该是一个空白页面并且
http状态是200( 不支持http200以外的状态 )
4.不能有重定向 如:http302
5.使用POST方式接收,请确保 服务器路由已经开放POST通知
错误原因:
1.异步地址无法公网访问
2.异步地址代码传值错误
3.其实已经收到(其实是验签失败返回为空),但是没有做日志记录或者没有记录到通知。
建议:大家优先使用云排查自查 https://openclub.alipay.com/read.php?tid=1132&fid=25
自查流程:
1.直接访问自己配置的notify_url中的值
检查notify_url访问状态(不支持除200以外的状态) 选择和服务器不同域的一台电脑,在chrome浏览器右键「检 查」- >地址栏输入notify_url地址->查看Network中的Status是否是200
<ul class="cc big_img J_gallery_list" "="" style="margin-bottom: 0px; zoom: 1;">
如果是http 0 请参考: https://openclub.alipay.com/read.php?tid=516&fid=25
参考帖子: https://openclub.alipay.com/read.php?tid=675&fid=2
2.检查自己notify_url传值.以app支付为例,
java传值:
复制代码
php传值:
复制代码
错误传值方式
(部分同学错误认为是填写在应用下面授权回调地址中)
<ul class="cc big_img J_gallery_list" "="" style="margin-bottom: 0px; zoom: 1;">
3.其实已经收到误以为没有收到通知请参考验签失败帖子检查
1.需http://或者https://格式的完整路径
例:https://您的域名/notify_url.php ,支持ip地址方式。(推荐使用域名)
2.不能加?id=123这类自定义参数
错误示例:https://您的域名/notify_url.php?id=123&test=abc
3.必须外网可以正常访问,这个不难理解,在您的异步地址没有代码逻辑的情况下,直接访问应该是一个空白页面并且
http状态是200( 不支持http200以外的状态 )
4.不能有重定向 如:http302
5.使用POST方式接收,请确保 服务器路由已经开放POST通知
错误原因:
1.异步地址无法公网访问
2.异步地址代码传值错误
3.其实已经收到(其实是验签失败返回为空),但是没有做日志记录或者没有记录到通知。
建议:大家优先使用云排查自查 https://openclub.alipay.com/read.php?tid=1132&fid=25
自查流程:
1.直接访问自己配置的notify_url中的值
检查notify_url访问状态(不支持除200以外的状态) 选择和服务器不同域的一台电脑,在chrome浏览器右键「检 查」- >地址栏输入notify_url地址->查看Network中的Status是否是200
<ul class="cc big_img J_gallery_list" "="" style="margin-bottom: 0px; zoom: 1;">
如果是http 0 请参考: https://openclub.alipay.com/read.php?tid=516&fid=25
参考帖子: https://openclub.alipay.com/read.php?tid=675&fid=2
2.检查自己notify_url传值.以app支付为例,
java传值:
复制代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public AlipayTradeAppPayResponse pay1() throws AlipayApiException{ //正式环境使用 //AlipayClient client = new DefaultAlipayClient(Config.serverUrl, Config.appId, Config.privateKey, Config.format, Config.charset, Config.alipayPulicKey, Config.signType); //沙箱环境使用 AlipayClient client = new DefaultAlipayClient(Config.serverUrlDev, Config.appIdDev, Config.privateKeyDev, Config.format, Config.charset, Config.alipayPulicKeyDev, Config.signType); AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); //异步地址传值方式 request.setNotifyUrl( "https://www.alipay.com" ); request.setBizContent( "{" + "\"out_trade_no\":\"4467496464\"," + "\"subject\":\"APP服务的请求测试\"," + "\"total_amount\":\"0.01\"," + "\"product_code\":\"QUICK_MSECURITY_PAY\"}" ); AlipayTradeAppPayResponse response = client.sdkExecute(request); System.out.println(response.getBody()); return response; } |
php传值:
复制代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php /** * APP支付 RSA2签名方法 */ require_once 'AopSdk.php' ; $aop = new AopClient (); $aop ->gatewayUrl = 'https://openapi.alipay.com/gateway.do' ; $aop ->appId = '2017071907813415' ; $aop ->rsaPrivateKey = '' ; $aop ->alipayrsaPublicKey= '' ; $aop ->apiVersion = '1.0' ; $aop ->postCharset= 'utf-8' ; $aop ->format= 'json' ; $aop ->signType = 'RSA2' ; $date = date ( "YmdHis" ); $arr =range(1000,9999); shuffle( $arr ); $request = new AlipayTradeAppPayRequest(); //异步地址传值方式 $request ->setNotifyUrl( "填写异步地址的值" ); $request ->setBizContent( "{\"out_trade_no\":\"" . $date . $arr [0]. "\",\"total_amount\":0.01,\"product_code\":\"QUICK_MSECURITY_PAY\",\"subject\":\"app测试\"}" ); $result = $aop ->sdkExecute( $request ); print_r(htmlspecialchars( $result )); ?> |
<ul class="cc big_img J_gallery_list" "="" style="margin-bottom: 0px; zoom: 1;">
3.其实已经收到误以为没有收到通知请参考验签失败帖子检查
这篇关于记一次支付宝接口收不到异步通知自查方案-支付宝接口常见错误系列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!