在以用户体验闻名的腾讯,有一个特殊的产品体验烂的连吐槽的心情都没有,那就是微信支付。 接入背景 笔者在一年前负责一个违章查缴的H5产品,那时候开始接触微信支付。时隔一年后,我们又做了一款违章查缴的小程序,这次还是需要用到微信支付。基本上,基于微信生态下的产品,想要接通支付功能,那么无论如何也避免不了的一个环节就是接入微信支付产品。 下文,是笔者基于过往开发经验,总结的一个接入微信支付的避雷指南! 坑一:自动结算 1、什么情况 这里先解释一下什么是自动结算。当结算周期到了以后,微信支付会将微信支付商户号里面的未结算金额自动划走至商户号绑定的银行账户上面,并且收取约定的费率。简单来说就是:自动帮你提现了,并且还收手续费。 会产生什么样的问题呢? 当我需要退款给用户的时候,发现账户上的前全部被结算的银行卡上了,没有钱退款给用户!! 那么如何关闭自动结算这个差评功能呢? 打开微信支付商户后台,点击产品中心看下有没有关闭自动结算的功能。 然而并不是所有商家号都拥有这个功能的。 没有关闭自动提现功能的产品中心 有关闭自动提现功能的产品中心 如何拥有关闭自动提现的功能?我找了很久,终于发现了其中的奥秘,为什么一个商家号里面有这个功能,一个没有。 关键在:结算周期 商家号结算周期信息 只要你属于结算周期为T+n的,都是没有关闭自动提现功能的。而且在你注册的时候,选定了经营类目,那么你的结算周期就将无法进行修改!!因为关于结算的修改内容,微信只开放了修改结算银行账户。 修改账户信息 2、怎么避免踩坑 先看几个截图: 经营类目结算周期为:实时结算到基本户 经营类目结算周期为:T+n 也就是说,你选择的经营类目结算周期为实时结算到基本户才有关闭自动结算的功能,而结算周期为T+n的是没有这个功能的。 坑二:无法更换小程序绑定的微信支付商户号 1、什么情况 小程序后台里面关于微信支付的绑定方式有两种:1、利用现有小程序作为申请入口,申请一个新的微信支付;2、绑定已有的微信支付商户号。 无论选择哪种方式,都是一绑定终生!也就是没有入口进行更换绑定的商户号 小程序后台-微信支付页面 2、如何避免踩坑 (1)一定要慎重、慎重、慎重!想清楚是新注册还是绑定旧账户。推荐不同的业务最好分开结算,这样便于财务进行对账。 (2)如果条件允许一定要绑定能关闭自动结算的微信支付商户号,能省去许多麻烦。 坑三:关于退款来源 1、什么情况 微信支付API文档截图 微信支付api文档里面,退款申请接口列表,有一个叫退款申请的api。我们可以利用调取这个接口,从而在自己的后台开发出退款功能,而不用每对一个用户发起退款,都要登录微信支付的后台进行操作。而退款资金来源字段有两种资金来源:一种是未结算资金退款,一种是可用余额退款。 未结算资金:当你的账号是t+n的时候,只要结算周期没到,入账的所有资金都会算作未结算资金。 可用余额退款:可用余额一般是指你通过"充值"进入商户号里面的钱。 在开发的过程中,我们曾经遇到一个场景:明明今天有订单金额进账,但是怎么也不能对用户进行退款。原来我们是设置了退款资金来源为可用余额退款。从而系统退款的时候自动绕过了未结算资金退款。 2、如何避免踩坑 设计业务退款流程的时候,应该做一个逻辑判断:先判断未结算资金是否满足退款金额,如果可以,则用未结算金额退款。 不满足则再用可用余额退款,如果不满足则退款失败。 退款功能流程设计 为什么要这么设计? 可以先利用未结算资金退款的话,就能少收取一些结算时候的手续费,减少金额损耗。 第二,可用余额是充值进去,用一点少一点,微信支付的充值流程异常复杂,少用可用余额可以减少不必要的公司内部财务流程。 小结 微信支付作为小程序生态帮助商家实现商业化的一个必不可少的环节,优化用户体验还是十分必要的,希望能尽快迭代改进。