记一次支付宝接口收不到异步通知自查方案-支付宝接口常见错误系列

说明:  
  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.其实已经收到误以为没有收到通知请参考验签失败帖子检查  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值