zoukankan      html  css  js  c++  java
  • 微信支付细节说明(服务商版本)

    官方文档

    统一下单: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=9_1
    查单: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=9_2
    签名: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=4_3
    工具: https://pay.weixin.qq.com/wiki/tools/signverify/

    统一下单

    根据上面列出的统一下单文档,将必填的参数准备就绪后,计算出一个签名sign,就可以发送到微信服务器了。

    计算签名sign就开始有些坑了,请先参考签名文档。如下是一些注意点:

    • 字段排序是靠key的ascii编码来排序的
    • 没有值的字段不参与签名,比如拼接后的字符串为xxx=&yyy=1&qqq=2,那么应该将xxx字段去掉。
    • 计算签名用的是二进制,而且是经过utf8编码的(如果不含中文、特殊字符,一般没编码问题)
    • 参与计算的key应该看好是哪个(我使用小程序支付,所以用的小程序的密钥)
    • 支付类型trade_type别选错,小程序就是JSAPI
    • 每个字段要看好别填错了,特别是appidmch_idsub_mch_id

    查单

    根据上面列出的查单文档,将必填的参数准备就绪后,计算出一个签名sign,就可以发送到微信服务器了。

    请求的数据中,sign的计算方式和统一下单的请求是一样的。但是响应报文在校验签名时有些注意点:

    • 响应报文中的数据编码是ISO-8859-1,所以签名的时候要用这种编码来计算(别用utf8了,巨坑)
    • 微信发的nonce_str和你发过去的'nonce_str'是不一致的,不要混淆了
    • 微信响应的xml中已经含有sign字段,得先去掉,再计算签名
    • 微信响应的xml中有些字段的值是空的,要去掉这些字段后才能计算签名(巨坑)
  • 相关阅读:
    Docker镜像和容器
    Docker介绍
    Ansible实战:部署分布式日志系统
    Ansible之roles介绍
    Ansible之tags介绍
    Ansible之迭代、模板
    linux jenkins安装(四)
    linux maven安装(三)
    linux tomcat安装(二)
    linux JDK安装(一)
  • 原文地址:https://www.cnblogs.com/xcw0754/p/13891382.html
Copyright © 2011-2022 走看看