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

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

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

相关文章

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI