美文网首页00-OC服务器开发服务端开发实战
005-移动支付03-微信支付-服务器开发注意事项

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

作者: AncientMing | 来源:发表于2017-05-29 22:32 被阅读29次

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    三、进行二次签名

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

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

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

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

    四、总结

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

    相关文章

      网友评论

        本文标题:005-移动支付03-微信支付-服务器开发注意事项

        本文链接:https://www.haomeiwen.com/subject/saugxxtx.html