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

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

说明:  
  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

相关文章

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果