关于支付宝异步通知的那些事

简介: 一、如何指定接收异步通知的地址     对于支付产生的交易,支付宝会根据原始支付API中传入的异步通知地址notify_url,通过POST请求的形式将支付结果 作为参数通知到商户系统。     以app支付为例,支付请求中notify_url参数的(如下图):     二、异步通知返回参数介绍     支付宝通过POST请求的形式将支付结果作为参数通知到商户系统。

一、如何指定接收异步通知的地址 

    对于支付产生的交易,支付宝会根据原始支付API中传入的异步通知地址notify_url,通过POST请求的形式将支付结果 作为参数通知到商户系统。 
    以app支付为例,支付请求中notify_url参数的(如下图): 

    



二、异步通知返回参数介绍 

    支付宝通过POST请求的形式将支付结果作为参数通知到商户系统。各接口返回的异步通知参数可能会略有不同,具体请参见支付宝开放平台文档中各接口的异步通知参数的详细说明。 
以app支付为例,返回的异步通知参数如下(以下示例报文仅供参考,实际返回的详细报文请以实际返回为准): 
    复制代码

1
https: //api.xx.com/receive_notify.htm?total_amount=2.00&buyer_id=2088102116773037&body=大乐透2.1&trade_no=2016071921001003030200089909&refund_fee=0.00¬ify_time=2016-07-19 14:10:49&subject=大乐透2.1&sign_type=RSA2&charset=utf-8¬ify_type=trade_status_sync&out_trade_no=0719141034-6418&gmt_close=2016-07-19 14:10:46&gmt_payment=2016-07-19 14:10:47&trade_status=TRADE_SUCCESS&version=1.0&sign=kPbQIjX+xQc8F0/A6/AocELIjhhZnGbcBN6G4MM/HmfWL4ZiHM6fWl5NQhzXJusaklZ1LFuMo+lHQUELAYeugH8LYFvxnNajOvZhuxNFbN2LhF0l/KL8ANtj8oyPM4NN7Qft2kWJTDJUpQOzCzNnV9hDxh5AaT9FPqRS6ZKxnzM=&gmt_create=2016-07-19 14:10:44&app_id=2015102700040153&seller_id=2088102119685838¬ify_id=4a91b7a78a503640467525113fb7d8bg8e


三、异步通知的验签 
    为了帮助开发者调用开放接口,我们提供了开放平台服务端sdk和demo,包含JAVA、PHP和.NET三语言版本,封装了签名&验签、HTTP接口请求等基础功能。为了避免验签出错强烈建议先下载对应语言版本的SDK并引入您的开发工程进行快速接入。 

   
其验签步骤为: 
    第一步: 在通知返回参数列表中,除去sign、sign_type两个参数外,凡是通知返回回来的参数皆是待验签的参数。 
    第二步: 将剩下参数进行url_decode, 然后进行字典排序,组成字符串,得到待签名字符串: 
    第三步: 将签名参数(sign)使用base64解码为字节码串。 
    第四步: 使用RSA的验签方法,通过签名字符串、签名参数(经过base64解码)及支付宝公钥验证签名。 
    第五步:在步骤四验证签名正确后,必须再严格按照如下描述校验通知数据的正确性。 

    1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号; 
    2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额); 
    3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email); 
    4、验证app_id是否为该商户本身。 

    上述1、2、3、4有任何一个验证不通过,则表明本次通知是异常通知,务必忽略。在上述验证通过后商户必须根据支付宝不同类型的业务通知,正确的进行不同的业务处理,并且过滤重复的通知结果数据。在支付宝的业务通知中,只有交易通知状态为TRADE_SUCCESS或TRADE_FINISHED时,支付宝才会认定为买家付款成功。 

四、无法接收到异步通知怎么办 

    自查方案一:[url]https://openclub.alipay.com/read.php?tid=1677&fid=25&page=1[/url]
    自查方案二:[url]https://openclub.alipay.com/read.php?tid=675&fid=2[/url]

五、异步通知中的交易状态介绍 
   请参考这个详情帖子:[url]https://openclub.alipay.com/read.php?tid=1295&fid=25[/url] 

六、为什么会重复不断的收到支付宝的异步通知
 
每当交易状态改变时,服务器异步通知页面就会收到支付宝发来的处理结果通知,程序执行完后必须打印输出success。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)。 
其中,若退款期限是3个月可退款,支付成功后,支付宝会发送trade_success的支付成功状态的异步通知,在3个月后支付宝会再次发送trade_finished的交易结束状态的异步通知,表示交易结束不允许退款。 

  返回success代码示例: 
   JAVA:复制代码

out.println("success");​

 PHP:复制代码

echo "success";​

 .NET:复制代码

Response.Write("success");​

 其他开发语言也是直接输出success即可 

    直接访问你的异步页面应该是输出(如下图)中的success这7个字符 
注意:浏览器上点击查看页面源代码,看到的是这个7个字符,有空格或者其他字符都会导致重复收到通知(建议大家做一下简单的验证) 
   

目录
相关文章
|
SQL 前端开发 Oracle
mysql合并查询(多张表) union 和 union all
简介 小序 :今天写首页动态业务的时候,用到了两张表,还需要分页查询,刚开始以为需要关联查询,后来发现关联的话不会放到一个实体,然后我就上网找方法,然后发现了一个我没学过的sql语句union,union all,卧槽 还是得好好学习啊,前端我想学,mysql我想学,真的时间不够用啊,还得给学弟学妹拍趣味编程课看的视频,真的是烦啊! 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
2152 1
mysql合并查询(多张表) union 和 union all
|
视频直播
【视频直播篇五】vue-cli3集成vue-aliplayer-v2
本文着重介绍vue-cli3集成vue-aliplayer-v2
1193 0
|
数据采集 API 开发工具
项目支付接入支付宝【沙箱环境】
该博客文章详细介绍了如何在PC端项目中接入支付宝支付功能,特别是在沙箱环境中的配置和实现步骤。文章提供了详细的配置指南,包括获取支付宝公钥和私钥、配置沙箱应用环境、生成密钥、设置服务端代码以及调用支付接口等步骤,并附有相应的代码示例和说明。
项目支付接入支付宝【沙箱环境】
|
10月前
|
人工智能 运维 监控
从代码到生产推理服务:DevPod 全流程部署 DeepSeek-OCR 模型实战指南
DevPod 重塑 AI 工程化流程,实现从开发、调试到生产部署的全流程闭环。依托云端 GPU 环境与一键镜像构建,打通代码到服务的“最后一公里”,让模型真正高效落地。
|
9月前
|
UED
1688店铺数字营销启动指南:四大关键指标助你有效提升流量
本文系统梳理了1688店铺启动数字营销的四大关键指标:店铺层级达L3以上、新灯塔评分4.5+、层级排名前100、金冠产品占比超30%。达标后投放更易获流量加权,提升推广效能,助力商家实现可持续增长。
|
人工智能 安全 网络安全
阿里云亮相2025国家网安周 | 首次提出AI全栈安全
了解阿里云最新的AI安全产品技术
2110 1
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
2536 4
|
人工智能 新能源 BI
关于举办"2025年第五届全国大学生技术创新创业大赛"的通知
大赛已连续举办四届,举办以来大赛始终以“创新驱动,赋能就业”为目标,促进学生的创新创造能力,普及创新创业知识,拓宽就业创业渠道,挖掘创新人才,培育多元化的未来产业推进力量。自开赛以来,赛事受到百余所学校关注,十几所高校已立项,参赛人次达上万人,征集优秀商业计划书上千余份。本届新赛事将继续全面贯彻党的二十大精神,完整、准确、全面贯彻新发展理念,加快构建新发展格局,以传统产业的高端化升级和前沿技术的产业化落地为主线,以创新为动力,第五届赛事将开展优秀项目落地北京计划。
3278 4
|
人工智能 监控 算法
基于蓝牙iBeacon定位技术与3DCIS技术的室内定位导航系统,助力智慧空间管理
**维小帮室内定位导航系统**采用3D可视化、蓝牙iBeacon、AI路径规划及物联网技术,提供精准室内导航。系统支持3D/AR导航、实时定位、电子围栏功能,广泛应用于商场、医院、办公楼和园区,提升用户体验并优化管理。例如,商场中的精准营销,医院的智能导诊,办公楼的效率提升,园区的综合管理。通过智能路径规划,确保用户在复杂环境中无碍通行。
993 1
基于蓝牙iBeacon定位技术与3DCIS技术的室内定位导航系统,助力智慧空间管理
|
存储 缓存 前端开发
聊聊公众号联动扫码登录功能如何实现
【10月更文挑战第30天】公众号联动扫码登录功能的实现涉及前端、后端与微信平台的交互。前端设计二维码展示区和轮询机制,后端负责生成二维码、处理微信推送、用户身份验证及登录。整个过程需确保数据交互安全顺畅,提升用户体验。
805 1

热门文章

最新文章