https://www.alipay.com/cooperate/gateway.do
协议参数 (与业务无关的参数)
HTTP参数签名机制
签名结构="email="+Email+"&"+"partner="+合作商ID号+"&"+"service="+服务参数+"&"+"_input_charset="+字符编码
注意
1,没有值的参数无需传递,也没有必要附加到签名数据中.
2,签名时将字符转化成字节流的时制定的编码方式要与 _input_charset 参数保持一致
3,如果传递了 _input_charset 参数,那么参数签名种也要包含此参数
例如:调用某接口需要以下参数:
service=user_query
partner=2088006300000000
email=test@msn.com
那么待签名数据就是:email=test@msn.com&partner=2088006300000000&service=user_query。
外部服务接口参数
字段名称 | 变量名 | 说明 |
接口名称 | service | 外部接口名称,如:user_query |
合作伙伴ID | partner | 合作伙伴在支付宝的用户ID |
通知URL | notify_url | 通知返回URL,仅适用于异步返回处理结果的接口。有些服务是无法立即返回处理结果的,那么需要通过这个URL将处理结果异步返回给合作伙伴。(见外部通知接口概述) |
返回URL | return_url | 结果返回URL,仅适用于立即返回处理结果的接口。支付宝处理完请求后,立即将处理结果返回给这个URL。 |
代理商ID | agent | 如果一些交易网站的交易,有一定的“代理”所属关系,代理商可以在交易中传递该参数,来表明代理的身份。这里传送的值,请使用代理商所属支付宝账户的PartnerID。 |
签名 | sign | 见HTTP参数签名机制 |
签名类型 | sign_type | 见签名方式 |
签名方式 :
1,MD5 -> 待签名数据+securityCode值(支付宝为合作伙伴颁发的安全校验码)的MD5摘要作为签名
2,DSA -> 密钥加密
支付宝外部通知接口概述
工作原理
通知系统交互流程说明:
1. 支付宝系统向外部系统发出通知,即访问合作伙伴提供的通知接收URL。
2. 外部系统接到通知请求,通过notify_id询问支付宝这个通知的真实性。
3. 支付宝系统判断通知是否是自己发送,如果是返回true,否则返回false。
4. 商户系统得到支付宝系统的确认后,对通知进行处理。处理完毕后,返回结果给支付宝系统,处理结果的值见通知返回结果枚举表。
5. 支付宝系统处理商户系统返回的处理结果。
通知系统
协议参数
字段名称 | 变量名称 | 类型 | 说明 | 是否为空 |
通知类型 | notify_type | String | 通知类型,如:trade_status_sync,表示交易状态同步通知 | N |
通知ID | notify_id | String | 支付宝通知流水号,合作伙伴可以用这个流水号询问支付宝该条通知的合法性 | N |
通知时间 | notify_time | Timestamp | 通知时间(支付宝时间),格式:YYYY-MM-DD hh:mm:ss | N |
签名 | sign | String | 见上述HTTP参数签名机制 | N |
签名方式 | sign_type | String | 见上述签名方式 | N |
验证通知接口1(https方式)
输入参数
字段名称 | 变量名 | 类型 | 说明 | 是否为空 |
接口名称 | service | String | notify_verify | N |
合作伙伴ID | partner | String(16) | 合作伙伴在支付宝的用户ID | N |
通知ID | notify_id | String | 支付宝发送的通知ID | N |
输出参数
true,false
验证通知接口2(http方式)
接口基本URL
http://notify.alipay.com/trade/notify_query.do
一个完整的AT请求例子:
http://notify.alipay.com/trade/notify_query.do?msg_id=24e596197be0dc9367502c3d598cd513&email=merchanttool@alipay.com&order_no=30944292
参数列表
输入参数 | ||||
字段名称 | 变量名 | 类型 | 说明 | 可否为空 |
通知任务ID | msg_id | String | 支付宝发送的通知ID (notify_id) | N |
交易买家ID | String | 对应交易买家的支付宝账户Email | N | |
商户系统订单号 | order_no | String | 对应交易在商户系统内的流水号 | N |
输出参数 | ||||
输出内容 | 说明 | |||
invalid | 传入的参数无效 | |||
true | 验证通过 | |||
false | 验证失败 |
提醒1:
为了保证该接口被合法利用,商户系统只能查找1分钟之内(目前为1分钟,以后若有调整,恕不另行通知)的通知。
提醒2:
从系统健康性角度考虑,在接收到支付宝系统通知以后,使用上述的通知验证接口验证支付宝系统通知的正确性(合法性)是非常有必要的。支付宝强烈建议您在系统中加入上述的应用。