005-移动支付03-微信支付-服务器开发注意事项

上一篇:004-移动支付02-微信支付-服务器开发

一、服务器订单签名(第一次签名)

注意事项一:定单号产生,由服务器产生
订单号产生由服务器产生,不应由客户端产生。

注意事项二:生产订单的算法(采用微信提供的算法)
算法写在服务器,且遵循微信提供的方式,不应写在客户端。写在客户端不好维护且不安全。

注意事项三:生成的随机字符串(采用微信API提供DEMO算法)
生成的随机字符串也应由服务器生成。

注意事项四:商品描述格式(有规范和格式)

注意事项五:商品价格单位(分)
价格的单位是分, 不要误以为是元哦。

二、服务器调用统一下单接口,获取prepay_id

API地址:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

注意事项一:商户秘钥必须参与第一次签名

注意事项二:签名的参数按照顺序进行签名(微信开发文档参数列表进行排序)(重点!)
签名有严格顺序要求,需严格按照文档及要求。否则签名不过。
服务器处理顺序,客户端不用处理。

注意事项三:拼接基本参数,秘钥参数排序在最后

注意事项四:请求参数时候,格式必须是XML格式(微信服务器要求)
原始数据格式是Key-Value格式,需转成XML格式后,然后访问微信统一下单接口

注意事项五:拼接XML参数,也需要严格排序

注意事项六:签名信息放在最后拼接进XML文件

注意事项七:return_code和result_code返回都必须是SUCCESS,表示统一下单接口成功

三、进行二次签名

注意事项一:支付签名信息随机字符串,必须采用微信返回的随机字符串

注意事项二:二次签名参数名称必须小写

注意事项三:二次签名,秘钥放在最后

注意事项四:返回客户端数据,必须是二次签名(不能是一次签名,也就是说必须是支付签名不能是订单签名)

四、总结

签名参数放在最后且前面参数有严格顺序要求,一定按照文档严格写,切忌自己想当然就行。
下一篇:006-移动支付04-微信支付-iOS客户端开发

你可能感兴趣的:(005-移动支付03-微信支付-服务器开发注意事项)