微信公众号支付

应用场景

  1. 商户网页端在微信内进行支付

支付配置

  1. 公众号类型须为服务号
  2. 微信公众号平台,配置登录授权目录,用于获取用户信息,最关键的openid
  3. 在微信支付平台配置支付目录。登录微信支付【商户平台->产品中心->开发配置】,设置后一般5分钟内生效。
  4. 微信支付平台配置apiKey(v3支付就配置v3key,v2支付配置v2key)
  5. 以上配置完成,就可以尝试调用支付了,签名正确的话,就可以调起公众号支付了

遇到问题总结

  1. 登录授权域名
    • 授权流程:

    • 授权域名已配置满了,不能新增了

      • 在一个已经配置的域名对应项目中增加一个方法做REDIRECT_URI,作为中转站。我用到的方案有2:
      • 方案一:REDIRECT_URI 上新增一个参数callback_url,进行urlencode,即&callback_url=urlencode(真实跳转地址),微信跳转REDIRECT_URI后,解析参数code和state、callback_url,携code、state参数直接跳转callback_url
      • 方案二:state值为真实跳转地址,微信跳转REDIRECT_URI后,携code直接跳转state地址
  2. 两个公众号,一个订阅号(流量大,入口所在),一个服务号(登录授权、支付等商户逻辑)
    • 入口在订阅号,逻辑在服务号,可以
  3. JS安全域名需不需要配置
    • 只是支付的话不需要,因为没配情况下,成功调起了公众号支付
    • 如果用到了分享等别的功能,因为用到了微信JS,所以需要配置上项目域名
  4. apikey该配置v3还是v2:
    • 如果新接微信支付,建议使用v3版,当然需要配置v3的apiKey了。v2版也可以继续使用,就需要配置v2的apiKey
    • 如果之前同一个商户下已经接入过其他微信支付(H5、APP等),apiKey当然已经配置过了,不考虑迭代升级的话,继续延用即可
  5. 签名失败问题:
    • 打印签名串,使用微信签名校验工具,发现了问题
    • 微信jsApi支付要求签名参数要严格大小写,我的问题就是都处理成小写后进行的签名导致签名失败
      微信支付

传送门

  1. 签名校验工具
  2. 微信支付平台
  3. 微信公众平台
  4. v3支付文档
  5. v2支付文档
posted @ 2023-05-06 18:27  老夫聊fa少年狂  阅读(259)  评论(0编辑  收藏  举报