前端发起resultUrl请求,服务端收到后做逆向处理,校验sign后,执行originUrl逻辑

 

originUrl=http://test.com:8080/user/alipay_phone?uid=123&amount=21.3
第0步:
前后端约定32位密钥KEY
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
stringSignTemp="amount=21.32&key=KEY&nonce_str=abc32&uid=123"
第二步:签名:
sign=MD5(stringSignTemp).toUpperCase()
第三步:拼接、base64编码,生成加密后的url:
result=Base64Encode(stringSignTemp@sign)
resultUrl=http://test.com:8080/user/alipay_phone/result
前端发起resultUrl请求,服务端收到后做逆向处理,校验sign后,执行originUrl逻辑

 

密钥的管理可以通过专用的服务器实现

 

【微信支付】微信小程序支付开发者文档 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3

  

生成随机数算法

微信支付API接口协议中包含字段nonce_str,主要保证签名不可预测。我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。

 

posted @ 2018-10-05 15:57  papering  阅读(481)  评论(0编辑  收藏  举报