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

本文主要是介绍记一次支付宝接口收不到异步通知自查方案-支付宝接口常见错误系列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这篇关于记一次支付宝接口收不到异步通知自查方案-支付宝接口常见错误系列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/413597

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

Python使用asyncio实现异步操作的示例

《Python使用asyncio实现异步操作的示例》本文主要介绍了Python使用asyncio实现异步操作的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录1. 基础概念2. 实现异步 I/O 的步骤2.1 定义异步函数2.2 使用 await 等待异

电脑多久清理一次灰尘合? 合理清理电脑上灰尘的科普文

《电脑多久清理一次灰尘合?合理清理电脑上灰尘的科普文》聊起电脑清理灰尘这个话题,我可有不少话要说,你知道吗,电脑就像个勤劳的工人,每天不停地为我们服务,但时间一长,它也会“出汗”——也就是积累灰尘,... 灰尘的堆积几乎是所有电脑用户面临的问题。无论你的房间有多干净,或者你的电脑是否安装了灰尘过滤器,灰尘都

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论