协议规则

  • 采用HTTPS传输
  • POST提交
  • MD5签名,请求和接收数据均需要校验签名,详见
  • 调用申请退款、撤销订单接口需要商户证书

安全规范

  • 签名算法
    1. 设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
    2. 在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue
  • 生成随机数算法

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

  • 商户证书

    • 获取商户证书

      微信支付接口中,涉及资金回滚的接口会使用到商户证书,包括退款、撤销接口。

    • 使用商户证书

    • 商户证书安全
  • 商户回调API安全

    在普通的网络环境下,HTTP请求存在DNS劫持、运营商插入广告、数据被窃取,正常数据被修改等安全风险。商户回调接口使用HTTPS协议可以保证数据传输的安全性。所以微信支付建议商户提供给微信支付的各种回调采用HTTPS协议。请参考:HTTPS搭建指南

参考资料:微信支付