说明:
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.其实已经收到(其实是验签失败返回为空),但是没有做日志记录或者没有记录到通知。
建议:大家优先使用云排查自查 [url]https://openclub.alipay.com/read.php?tid=1132&fid=25[/url]
自查流程:
1.直接访问自己配置的notify_url中的值
检查notify_url访问状态(不支持除200以外的状态) 选择和服务器不同域的一台电脑,在chrome浏览器右键「检 查」- >地址栏输入notify_url地址->查看Network中的Status是否是200
如果是http 0 请参考:[url]https://openclub.alipay.com/read.php?tid=516&fid=25[/url]
参考帖子:[url]https://openclub.alipay.com/read.php?tid=675&fid=2[/url]
2.检查自己notify_url传值.以app支付为例,
java传值:
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传值:
<?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)); ?>
错误传值方式(部分同学错误认为是填写在应用下面授权回调地址中)
3.其实已经收到误以为没有收到通知请参考验签失败帖子检查 :[url]https://openclub.alipay.com/read.php?tid=1598&fid=46[/url]
4.如果还是没有解决你的问题提问请按照下方正确格式提问(信息不完整不回复)
正确提问方式:使用环境(沙箱还是正式环境)+appid+接口名称(中文+英文)+异步地址(notify_url的值)+收不到异步通知的交易号+订单号
如果有什么疑问欢迎帖子下方追问,如果解决了你的问题欢迎评论点赞支持