如何使用Golang来处理支付宝的回调

Golang处理支付宝的回调

支付宝的回调还是有蛮多坑的,当时我也搞了几天才算彻底的把这个问题搞定。
现在记录一下,以备忘。

1,支付宝的处理流程
支付宝的处理流程
2,上述图中第五步,异步发送支付通知“商户服务端”这里就是我们后台服务器需要处理的流程。
3,处理流程其实很简单,但是需要注意的是,支付宝的文档中写的是“在参数列表“里带入这些参数。

以下这段示例代码来自于支付宝的官方文档:

http://notify.java.jpxx.org/index.jsp?discount=0.00&payment_type=1&subject=测试&trade_no=2013082244524842&buyer_email=dlwdgl@gmail.com&gmt_create=2013-08-22 14:45:23&notify_type=trade_status_sync&quantity=1&out_trade_no=082215222612710&seller_id=2088501624816263&notify_time=2013-08-22 14:45:24&body=测试测试&trade_status=TRADE_SUCCESS&is_total_fee_adjust=N&total_fee=1.00&gmt_payment=2013-08-22 14:45:24&seller_email=xxx@alipay.com&price=1.00&buyer_id=2088602315385429&notify_id=64ce1b6ab92d00ede0ee56ade98fdf2f4c&use_coupon=N&sign_type=RSA&sign=1glihU9DPWee+UJ82u3+mw3Bdnr9u01at0M/xJnPsGuHh+JA5bk3zbWaoWhU6GmLab3dIM4JNdktTcEUI9/FBGhgfLO39BKX/eBCFQ3bXAmIZn4l26fiwoO613BptT44GTEtnPiQ6+tnLsGlVSrFZaLB9FVhrGfipH2SWJcnwYs=

但是这里有个巨大的错误,因为他的参数实际上并不是在HTTP Request的参数部分,而是在HTTP Body部分,这里要特别注意。

4,如何处理支付宝的签名,这个签名是用来验证请求的有效性,官方文档里有指明此签名用RSA算法进行签名。但是这个签名是怎么来的,实际上还经过了好几个步骤:

 1. 对参数[key,value]按照key进行排序
 2. 按照key1=value1&key2=value2...的顺序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值