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

简介: 说明:   1.需http://或者https://格式的完整路径   例:https://您的域名/notify_url.php  ,支持ip地址方式。(推荐使用域名)   2.不能加?id=123这类自定义参数   错误示例:https://您的域名/notify_url.

说明: 
  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的值)+收不到异步通知的交易号+订单号 


如果有什么疑问欢迎帖子下方追问,如果解决了你的问题欢迎评论点赞支持

目录
相关文章
|
存储 Oracle 关系型数据库
postgresql数据库|wal日志的开启以及如何管理
postgresql数据库|wal日志的开启以及如何管理
2926 0
|
机器学习/深度学习 监控 数据可视化
训练损失图(Training Loss Plot)
训练损失图(Training Loss Plot)是一种在机器学习和深度学习过程中用来监控模型训练进度的可视化工具。损失函数是衡量模型预测结果与实际结果之间差距的指标,训练损失图展示了模型在训练过程中,损失值随着训练迭代次数的变化情况。通过观察损失值的变化,我们可以评估模型的拟合效果,调整超参数,以及确定合适的训练停止条件。
3330 5
|
前端开发 中间件
ThinkPHP6.0处理前端请求跨域问题AllowCrossDomain
ThinkPHP6.0处理前端请求跨域问题AllowCrossDomain
853 0
|
JSON 缓存 算法
Alibaba 国际站商品详情 API 核心参数拆解:productId、language 与 access_token 实战
Alibaba 国际站商品详情 API 核心参数拆解:productId、language 与 access_token 实战
|
前端开发 Java 数据库
2025 年 Java 学习完整步骤及详细路线指南
本教程涵盖Java从基础到高级的完整学习路径,包括环境配置、语法基础、面向对象编程、集合框架、多线程、网络编程、数据库操作、Spring Boot、微服务架构及项目实战。通过系统学习与实操,助你全面掌握Java核心技术与企业级应用开发。
1645 0
|
中间件 PHP
在ThinkPHP框架中解决跨域问题的三种方法
以上就是在ThinkPHP框架中解决跨域问题的三种方法。希望这些方法能帮助你解决你的问题。
1070 11
|
存储 缓存 物联网
MNN推理框架将大模型放进移动端设备,并达到SOTA推理性能!
随着移动端(手机/平板等)算力、内存、磁盘空间的不断增长,在移动端部署大模型逐渐成为可能。在端侧运行大模型,可以有一系列好处:去除网络延迟,加快响应速度;降低算力成本,便于大规模应用;不需数据上传,保护用户稳私。
3472 13
MNN推理框架将大模型放进移动端设备,并达到SOTA推理性能!
ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】
本文详解了在ThinkPHP框架中配置多应用的方法,包括安装扩展、删除默认controller文件夹、创建多应用、修改配置文件以启用多应用、测试访问以及如何配置不同域名访问不同应用的步骤。
ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】
|
存储 前端开发 Java
若依修改----数据字典,可以用于维护系统中常见的静态数据,为什么不写死,用字典维护?数据字典的好处是一个地方编写数据,在多个地方,复用他,静态选项这里填完,换其他,用户性别这里的男女,就转成而来字典
若依修改----数据字典,可以用于维护系统中常见的静态数据,为什么不写死,用字典维护?数据字典的好处是一个地方编写数据,在多个地方,复用他,静态选项这里填完,换其他,用户性别这里的男女,就转成而来字典