1.背景

最近接到一个产品支付功能,要求打通微信自动续费功能,类似腾讯视频的会员自动续费。原计划开发周期为一周左右,由于微信坑爹的接口文档以及蛋疼的审核程序,导致前后将近耗时近一个月,支付方式也是从支付中签约换成纯签约,对业务也是影响巨大,思虑再三决定做个老实人,把这过程中所受的磨难总结出来,希望对对同等遭遇的老铁有做帮助,哈哈!

2.基本概念梳理

签约方式:要是使用微信代扣功能,在开发过程中,需要打通微信的签约接口,签约有几种不同的类型,分为两大类:支付中签约和纯签约。支付中签约,就是在支付首期费用的时候同时完成了签约工作,签约页面有首期费用金额,页面底部有"支付并开通"按钮,即你调微信接口一次,微信回调你两次,一次为签约结果,一次为支付结果。笔者最开始对接的就是支付中签约,后转为对接纯签约,各种心酸在后续开发过程中说明。再说纯签约,纯签约又分了四种方式:公众号纯签约(针对微信浏览器环境下,如QQ,微信,企业微信除外),APP纯签约(针对APP场景),小程序纯签约(这对小程序),H5纯签约(针对H5浏览器,如手机自带的在微信环境之外的浏览器,如UC,百度等)。因为产品的是网页端程序,笔者同时对接了公众号纯签约和H5纯签约。

多账户签约: 微信默认一个手机微信在同一个代扣模板(后面解释)下,只存在一个有效的签约协议,即只能购买一单分期产品,在不关闭服务的情况下,再次申请会报错"当前账号已开通自动续费功能",要想实现多次购买,需要线下通过业务联系微信的BD进行多账户签约申请,待为你后台配置完毕后,会给一个私密文档,上面会说明如何传值。没错,这个秘密单靠技术开发人员不可能知道,官方文档没有找到任何说明。具体看业务场景,是否需要开通,要提前做准备工作。

接口文档地址:https://pay.weixin.qq.com/wiki/doc/api/wxpay_v2/papay/chapter3_1.shtml

签约方式效果图:

多账户签约效果图:

3.对接流程

先上个流程图,图是盗用别人的,但是因为比我自己画的好,暂时借用了

3.1线下流程

这个一般由公司物业或者产品负责人去操作,需要联系微信的BD,也就是业务人员于业务人员的沟通,可能需要公关,微信那边会发来整个详细如上提到的流程文档,技术最多提供协助,除了第四步,其他的没我们什么事,但是一定要注意一件事,信息共享,业务沟通的文档中有很多就是线上技术文档没有的东西,跟接口对接大有关系,如扣款模板,多账号签约,H5纯签约,支付中签约的开关问题申请流程等,另外申请代扣模板可能要技术支持,现在审核极其严格,一定要让微信的人给个模板过来,笔者申请了近8次才过,其中包括照抄了腾讯视频,爱奇艺视频,优酷视频,以及会滴保险等,全部被打回。

3.2线上对接

参照技术文档进行对接,比较坑的一点就是技术文档中可能存在表述不清的时候,然后各种找不到相关人员咨询,没有技术客服,可能一个小小的问题卡上你几天,心态爆炸。下面细数几处采坑记录:

(1)文档表述歧义

笔者最开始的对接的是支付中签约,接口极为简单,需要注意一下签名问题即可。但是文档中有这么一段话,坑人良久。

这里的步骤2,完全是一段让人懵逼的解释,整的我对了签约又对接了一遍支付,事实上他的意思是H5直接打开接口返回的页面地址接口,JSAPI则是需要手动按照要求拼接url打开。

(2)描述缺失

对于支付中签约的接口文档中,没有只言片语有描述支付中签约有个默认开关这么一回事,业务拿到的文档有,是别的公司的业务,特也不知道有什么用,没有发给到这边,所以一直不知道有这种线下文档的存在,包括多账户签约。导致技术对接过来的支付中签约的效果是这样的

那个开关模式是关着的,据说是监管的要求,没有任何参数控制,只能客户手动开启,不打开就是普通的支付,也就意味着就是收个首期的钱,而大部分客户是不会操作这个小开关的,对业务推广会造成巨大困扰。打开开关之后才会变成正常的签约页面。

但是一对比别人家的,卧槽,不是一个娘生得,人家升下来就长这样,生下来就灭有开关那回事。

这就回来开始的那种效果图,没错是业务资料里面的,要想去掉开关,得线下邮件申请,配置那边针对模板配置,配置周期一到两周。心态炸裂!

(3)消息通知不及时

上面说到不带开关的支付中签约得线下邮件申请,好,按照流程申请总可以吧,一个周的时间过去了,这次应该妥了吧,一问,卧槽,回复说现在不支持这种,国家监管,以后永不在不支持这种不带开关,而且也不支持首月比次月便宜的营销型产品。

跟微信相关的任何申请,建议能找到相关人微信联系。另外说一句截图中的第二点,代扣不支持营销型场景,实际扣款接口中并没有控制,否则以前申请的产品都不能用了,比如优酷视频的会员开通等,所以只需要在先关申请审核的流程图中不要体现就行,实际接口扣款金额暂时还是由商户控制的。

(4)描述不全

鉴于支付中签约的开关问题无法解决,只好退而求其次,对接纯签约,微信环境下对接给公众号纯签约,直接对接口即可,H5还需要线下申请过了技术接口对接才起作用否则会报错。

万事俱备之后,发现还是报错"签约失败","签名错误","参数构造错误",百思不得其解,后面发现是,回调地址的参数值没有URL编码的原因,当时文档中并没有任何描述,不过好在最新文档中已有相关提醒。

(5)名词解释

上述问题都解决完毕后,流程异常顺畅,测试的时候一不小心又发现个问题,一个手机一个微信签完一次,在不解约,关闭服务的情况下,再次签约时会报错"当前***已签约",这个是才发现多账户签约是个什么意思,默认情况下,一个代扣模板,一台手机只运行一个微信的情况同一时间只能存在一个签约服务,也就是说,在服务器内,你只能买一次代扣产品,我们是做保险的,很可能给自己买一份在给父母买一份,如果存在这个限制很影响业务推广。这才明白多账户签约的作用,就是为了支持这种场景,还给了个私密文档,在先上公开的接口文档中多传一个字段即可,前提是线下邮件申请,微信那边审核通过,配置周期,一到两周,吐血!!!

(5)

针对纯签约,无论是JSAPI还是H5签约,在企业微信中都会报错"参数构造错误",没有找到原因,微信官方无解释,放弃!

4.总结

以上是笔者打通微信代扣的惨痛经历,印象深刻,记录下来,希望能对同行老铁有所帮助,最大的建议是:1.有效的沟通高于一切;2.文档仔细看,微信的文档,重要的东西可能会出现在任何一个角落。针对未知的东西,保持谦逊,留点退路,这次单看文档简单的一匹,对接起来前后耗时近一月。微信不讲武德,希望各位老铁耗子尾汁!!!

另外贴上对接过程中对笔者有过很有价值的博客,供大家参考。

你真的了解微信代扣吗

【微信自动续费】委托代扣接口常见问题Q&A

微信代扣踩坑日记(微信自动续费)相关推荐

  1. 微信小程序踩坑日记-微信小程序首次加载样式错乱问题

    微信小程序踩坑日记-微信小程序首次加载样式错乱问题 在实际开发项目中,遇到了个棘手的问题,就是在某些因素下,进入小程序发现有些样式发生偏移.错乱等问题 问题原因:-未知(估计是组件的问题) ↓ 解决办 ...

  2. 调用微信jssdk踩坑日记

    1.IP白名单设置 调用微信jssdk需要初始化wx对象 wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可 ...

  3. 苹果怎么取消自动续费?官方给的取消流程,速看!

    苹果怎么取消自动续费?相信大家在充值各类会员或者购买应用的时候都有遇到过自动扣费的情况,想要取消这种自动扣费,担心自己的资金安全想要关闭扣费服务要怎么操作?首先需要我们明确的一点是,除非我们取消订阅, ...

  4. 怎么取消苹果手机自动续费_苹果怎么取消自动续费?官方给的取消流程,速看!...

    苹果怎么取消自动续费?相信大家在充值各类会员或者购买应用的时候都有遇到过自动扣费的情况,想要取消这种自动扣费,担心自己的资金安全想要关闭扣费服务要怎么操作?首先需要我们明确的一点是,除非我们取消订阅, ...

  5. 微信小程序开发踩坑日记

    2017.12.29  踩坑记录 引用图片名称不要使用中文,尽量使用中文命名,IDE中图片显示无异样,手机上图片可能出现不显示的情况. 2018.1.5  踩坑记录 微信小程序设置元素满屏,横向直接w ...

  6. 加入域时出现以下错误 登陆失败 该目标账户名称不正确_微信支付踩坑合集:微信小程序支付失败是什么原因?持续更新...

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

  7. 微信分享踩坑:config:invalid signature错误的解决方法

    微信分享踩坑:config:invalid signature错误的解决方法 一般出现这个错误多半是签名获取失败,而我根据我获取到的签名跟签名算法校验里面得到的签名是一样的,于是查找大量文档,核实可能 ...

  8. 酷狗计算机自动续费,怎么取消酷狗自动续费-APP自动续费关不了?可在微信支付宝这样操作!...

    现在,不少付费会员都会以首月优惠价格吸引消费者开通,然而在下面通常会附上一行小字:次月自动续费.开通的当时,不少人想着,一个月用完就关闭,可很多人往往用着用着就忘了,有的软件试用一下觉得不满意,还可能 ...

  9. 怎么打开微信支付管理中关闭的服务器,手机微信中如何关闭已经开启的自动续费服务...

    微信作为我们生活中的一款支付神器,不管是看电影.吃东西.买衣服等都是可以用到微信支付的,那么平时我们在使用手机的时候都经常有可能需要用到一些付费服务,所以就自然而然的就用到微信支付了,也有很多服务是需 ...

  10. ofo小黄车仍在自动续费!如何关闭微信自动扣费?

    刚看到一个热搜:ofo小黄车仍在自动续费???? 据北京日报消息:几天前,周女士的微信账户突然被扣了52元钱,莫名其妙的她查来查去,发现竟然是ofo季卡在自动续费.这款扣得让周女士哭笑不得. 这消息让 ...

最新文章

  1. asp.net的Ajax学习进阶
  2. 华为10年经验测试工程师,整理出来的python自动化测试实战
  3. 自学python需要买书吗-Python入门到精通学习书籍推荐!
  4. MQTT client id重复导致连接失败
  5. jQuery-helloWorld
  6. Android 多媒体视频播放一( 多媒体理解与经验分享)
  7. 32页,10米长的《BI建设地图》强在哪?我整理分享出来
  8. arcpy_intersectmerge
  9. Maven常用插件配置和使用
  10. idea卸载不干净怎么办_卸载删除面具(Magisk)后,手机不开机怎么办
  11. 231个web前端的javascript特效分享(仅供本人学习,非教程类型)
  12. Playwright之初体验
  13. java动画迷宫寻路_迷宫寻路算法
  14. BI神器Power Query(6)-- PQ从工作簿导入数据(2/2)
  15. netty初使用——实现http及https代理服务器
  16. 煤矿用计算机,煤矿安全生产中计算机的运用
  17. 【深入设计模式】装饰模式—什么是装饰模式?装饰模式在源码中的应用
  18. IEEE期刊投稿流程
  19. android 插入 百度移动联盟 banner广告,百度移动应用广告盟联ane使用教程.docx
  20. 解析DeFi“无常损失”

热门文章

  1. 英语----形容词和副词
  2. Apache配置文件中的deny和allow的使用
  3. A Feature Descriptor: Shape Context
  4. 二级域名分发系统源码
  5. google官方权限申请库EasyPermissions使用方法
  6. 读者问题答疑:4 个超级简单的 Linux 基础考试题!
  7. 算法:统计n以内素数个数--埃筛法
  8. acer台式电脑怎么重装系统_宏基台式电脑怎么重装系统
  9. 360视频:旋转球面投影RSP
  10. 2019年华为JAVA面试题系列