支付宝网站支付验签的坑。

当客户发起支付,收到支付通知,咱为了安全,必须对数据进行验签。

不验签的话,万一哪个捣蛋鬼,自己编了条数据发给咱们,那损失可就大了。

结果可想而知,不然也就没有这篇文章了。

验签这个事儿,折腾了我整整一天,

当客户支付成功后,会按照return_url跳转到你设置的连接中,并返回响应的参数,什么app_id啦,trade_no啦等等等等等等。

如果咱要验签的话,大坑出现。

当时,给我个人感觉,这就应该是同步验签。

按照同步的方法,反复验签,永远返回一个false。

与阿里技术经过多轮的友好而又细致的会谈,技术经过多次失败的实验后,最终告诉我,应该用异步验签的方式验签。

参阅异步验签文档得知,需要将返回的字符串中的sign、sign_type剔除才可以

立刻将这俩参数干掉,再次验签。

当我看到验签返回位true的时候,顿时泪奔。

现在回想,估计是自己文档看的不够细致。

得亏阿里技术有耐心,最终问题是解决了。

重新说一下流程吧

收到数据后,先取出来sign参数值

再先他娘的干掉sign和sign_type这俩参数。

然后urldecode数据

再把数据按照abcd升序排序。

最后,准备好你的支付宝公钥,整理好的数据,sign值进行验签,只要你的验签函数没问题,百分比能验签通过。

还有,return_url,notify_url是不可以加参数的。

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值