支付宝通知notify url处理


1) 获取APPID




notify_url是异步接口,支付宝会发多次,直到收到你的响应;

至于你说的重复问题,你的后台需要根据流水号、订单号等信息判断是否已经接收过请求并成功处理(insert 支付流水,update订单状态等),处理过就直接返回;
另外notify_url是有次数限制的,如果系统上线后有严重bug或宕机了,恢复之后可能无法再收到通知,所以支付宝还提供了一个接口“单笔查询接口”-查询单笔交易是否支付成功;
支付这一块有很多异常情况必须考虑:比如防止一笔订单用户多次支付,多次支付后的退款处理等等;


排除常见错误的方法: 
1:错误信息提示为:ILLEGAL_SIGN,属于签名验证出错 
CreatUrl的方式参数不一致,编码问题都可以引起这个错误 
2:错误信息提示为:ILLEGAL_ARGUMENT,属于参数格式有问题 
查看接口发送页的参数是不是符合要求 
3:错误信息提示为:ILLEGAL_SERVICE,属于无效接口名称 
查看service参数 
4:错误信息提示为ILLEGAL_PARTNER,属于无效合作伙伴ID 
查看partner参数 
5:错误信息提示为ILLEGAL_SIGN_TYPE,属于无效签名方式 
sign_type是加密类型,一般为md5 
6:错误信息提示为DIRECT_PAY_AMOUNT_OUT_OF_RANGE,属于快速付款交易总金额超出最大值限制 
快速付款余额支付最大限制为:2000,用卡没限制 
7:错误信息提示为HASH_NO_PRIVILEGE,属于没有权限访问该服务 
查看service参数和卖家支付宝帐号所拥有的权限是不是一致 
8:错误信息提示为DONATE_GREATER_THAN_MAX,属于小额捐赠总金额超出最大值限制 
小额捐赠一般现在为100 
9:错误信息提示为OUT_TRADE_NO_EXIST,属于外部交易号已经存在 
外部交易号重复 
10:错误信息提示为TRADE_NOT_EXIST,属于交易不存在 
11:错误信息提示为ILLEGAL_PAYMENT_TYPE,属于无效支付类型 
查看有没有PAYMENT_TYPE参数,是不是对的 
12:错误信息提示为BUYER_NOT_EXIST,属于买家不存在 
查看buyer_email的帐号是不是支付宝帐号 
13:错误信息提示为SELLER_NOT_EXIST,属于卖家不存在 
seller_email的帐号是不是支付宝帐号 
14:错误信息提示为BUYER_SELLER_EQUAL,属于买家、卖家是同一帐户 
同一个支付宝帐号不能同为买家和卖家 
15:错误信息提示为ILLEGAL_LOGISTICS_FORMAT,属于无效物流格式 
只有三种物流类型:EMS,POST,EXPRESS,即为EMS,平邮,其他快递 
16:错误信息提示为TOTAL_FEE_LESSEQUAL_ZERO,属于交易总金额小于等于0 
price或者total_fee不能小于等于0 
17:错误信息提示为TOTAL_FEE_OUT_OF_RANGE,属于交易总金额超出范围 
18:错误信息提示为ILLEGAL_FEE_PARAM,属于非法交易金额格式 
price或者total_fee的值是否规范


某商户设置的通知地址为https://api.xx.com/receive_notify.htm,对应接收到通知的示例如下:

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&notify_time=2016-07-19 14:10:49&subject=大乐透2.1&sign_type=RSA2&charset=utf-8&notify_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&notify_id=4a91b7a78a503640467525113fb7d8bg8e

第一步: 在通知返回参数列表中,除去sign、sign_type两个参数外,凡是通知返回回来的参数皆是待验签的参数。

第二步: 将剩下参数进行url_decode, 然后进行字典排序,组成字符串,得到待签名字符串:

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值