评论

初次对接微信支付你应该知道的“易错点” 拒绝踩坑

初次对接微信支付你应该知道的“易错点” 拒绝踩坑

  • 温馨提示:收藏一下,点个赞,后面慢慢看

前言

负责对接微信支付类产品已经很多年了,现在就来给准备接入微信支付的朋友提个醒,避免因为过多的踩坑导致影响产品进度,基本上,基于微信生态下的产品,想要接通支付功能,那么无论如何也避免不了的一个环节就是接入微信支付产品。

我就想吐槽几句

相信大多数对接过微信支付的人都有体会:这个过程“很不爽”。
微信支付官方文档「真 真 真」的很不好( V2和V3都一样),一不小心就会踩坑,耽误产品研发进度。

  • 发现之前:文档很坑、很坑、真的很坑,这文档「文明用语」
  • 发现之后:真特么简单,很多属于细节问题(是我不认真吗,明明是没有给出详细的错误)

易出错点一、 APPID(踩了坑就是300块)

  • 画重点,先写前面,看清楚可以省300:除了APP支付以外,其他场景接入和开放平台没有关系,记住了,是一点关系都没有
    在微信体系中,虽然移动应用、订阅号、服务号、小程序、网页应用都有APPID,实际并不能通用,如果涉及多种场景支付对接,比如APP支付、公众号支付、小程序支付、H5支付等,一旦用错,你还真不知道错在哪里。
    第一点「公众号支付」,虽然名字叫了个「公众号支付」,实际上只有认证的服务号可以使用微信支付,订阅号是不可以的(部分特殊订阅号可以申请微信支付)。
    其次,除了APP支付以外,其他场景接入和开放平台没有关系,开放平台的「网页应用APPID」不能用于支付时使用,这里需要使用服务号的APPID。
    最后,APPID绑定了是不能解绑的,除非你走迁移流程,千万别手贱乱绑定客户商户号(说多了都是泪)
    分享一个某网友的案例:
    某网友想为自己的网站接入微信扫码支付,也没有多想,跑去去微信开放平台注册相关的信息,又是提交资料,创建网页应用,又是等待审核,不亦乐乎。结果审核一通过,傻眼了,在微信支付商户后台才发现绑定不了。实际上PC网站如果要接入微信支付是使用的公众平台服务号的APPID,别再跑去开放平台申请了。

易出错点二、APPID与MCH_ID不匹配

  • 此类问题一般多出现在,公众号、小程序与商户号是分别进行申请的。
    微信支付发起支付有个前提条件就是,APPID要与商户号要存在绑定关系,如果在公众号/小程序后台申请开通支付,那么微信支付开通后会自动进行一个绑定关系建立,而分别进行申请的,则需要自己手动进行关系绑定,很多人就容易忽略这一点,以为自己申请了商户号了,公众平台也认证通过了,就可以直接使用了,实际上不是的。
    APPID绑定指引:https://kf.qq.com/faq/1801116VJfua1801113QVNVz.html

易出错点三、total_fee

微信支付统一下单请求时订单总金额字段「total_fee」金额单位为“分”,这也是新手常踩的坑之一,在社区也不少新手提问类似的问题,在测试下单时传参<total_fee>0.01</total_fee> ,报错了就跑来问,我明明计算签名对了,为什么还会报错签名错误呢? 这个问题就是属于典型的「看文档不认真」

易错点四、get_brand_wcpay_request

  • 这个问题也是属于典型的「看文档不认真」+ 偷懒
    在开发文档中已经有明确写明“
if(res.err_msg == "get_brand_wcpay_request:ok" ){
      // 使用以上方式判断前端返回,微信团队郑重提示:
            //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。

恰恰就还有那么一些人不接受建议,喜欢偷懒,依靠这个返回来判断订单支付是否成功。这里会存在一种情况:当用户支付成功后,没有点击完成按钮而是把微信客户端关闭了,或者微信意外闪退了,那么此时由于你没有得到“get_brand_wcpay_request:ok”返回,你把该笔订单处理为了失败,就会出现订单对不上的情况,所以不要为了偷懒,接收微信支付的异步支付结果通知,进行正常业务流程处理,不要觉得概率小就没事,这种情况还是时有发生的,出现用户投诉就不好了哦,说不准你年终奖就没了。

写在最后

对接微信支付时,你还遇到过哪些“坑”呢?欢迎讨论

最后一次编辑于  2021-05-07  
点赞 1
收藏
评论
登录 后发表内容