微信代扣踩坑日记(微信自动续费)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/52107.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端做app连续会员包月功能 -- IOS连续订阅 支付宝周期扣款

IOS连续订阅总结 如何判断后续用户是续费 1. 服务端轮询续费表,会员到期的前一天,根据用户id。去苹果服务器检验用户是否续费成功a. 查询的状态应有:等待扣费、扣费失败b. 扣费失败 , 对于扣费失败的用户, 苹果仍会尝试扣款60天, 此时应该标…

Stripe订阅模式(类似于会员,按月按年自动扣款)

文章目录 stripe订阅模式与普通支付模式的区别支付成功回调支付失败回调订阅生命周期 一、区别 创建stripe订单时(支付接口)的区别: 1.普通订阅模式创建session前需要先创建价格对象,订阅需要在价格对象中多添加一个recurringPar…

论文投稿指南——中文核心期刊推荐(新闻事业)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

论文投稿指南——中文核心期刊推荐(社会学)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

想用Python赚钱?——安排!

利用Python进行网络抓取,本文会告诉你最显而易见的赚钱办法,还有隐藏的最不明显的赚钱方法。 数据是一种非常有用的资源。有人甚至称数据为21世纪的石油。 这就是为什么不仅是公司,而且普通人也会花钱在电子表格中获得干净的数据,…

微信小程序数据请求

微信小程序的数据请求 一、常用的数据请求方式 JS原生实现 第一种:let xhrnew XMLHttpRequest()xhr.open()xhr.send()第二种:fetch() 支持promisefetch(接口地址).then(function(response) {return response.json();}).then(function(myJson) {consol…

如何用Stata完成(shui)一篇经济学论文(十一):分组和去重

文章目录 分组去重 不出意外的话,这应该是stata有关数据处理的最后一篇。emmm,其实我一开始只打算写数据处理部分的stata教程,因为我觉得对于我来说,数据处理才是最头疼的部分。不过关于后面回归,还是有些东西想跟大家…

卷积神经网络之父的强人工智能路线图:自监督,推理,规划

导读 2023 年 6 月 9 日,智源大会第一天。在这场众星云集的盛会中。目前「深度学习三驾马车」中最活跃的 Yann LeCun 教授带来了重磅演讲「朝向能学习, 思考和计划的机器进发( Towards Machines that can Learn, Reason, and Plan&#xff09…

双色球彩票训练任务含对比

玩法规则:“双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码 组成。红色球号码从 1—33 中选择,蓝色球号码从 1—16 中选择。 package section_6_1008;import java.util.Random; import java.util.Scanner;public class section_6_1008 {publ…

一文读懂 OpenAI 创始人的「世界币」

作者 | 美漪 大概所有人,都曾经有这样一个梦想:「啥也不干,天天躺着就有人给发钱。」 现在,这个从各种角度看起来都是绝对的「白日梦」,真的有机会实现了。 当地时间 7 月 24 日,OpenAI 掌门人 Sam Altman …

书中自有黄金屋系列9:值得反复阅读的一本书《向上生长》

如果要说哪一本书对我影响最大,那肯定是这本我反复读了五遍以上九边写的《向上生长》了。很多深刻的人生道理被作者用通俗易懂的方式讲解说明,这才是最发人深省的。下面是我读书的一些笔记和思考: 1.人为什么要学习 就像人不吃饭就会死亡&…

Gavin老师Transformer直播课感悟 - Rasa对话机器人项目实战之保险行业Insurance Bot架构设计、流程分析、状态管理及智能对话实验剖析(五十五)

本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之保险行业Insurance Bot架构设计、流程分析、状态管理及基于Rasa Interactive的智能对话实验进行分析。 一、Rasa对话机器人项目实战之保险行业Insurance Bot架构设计、流程分析、状态管理及基于Rasa Inte…

GPT3.5之模仿例子完成任务

首先导入open_ai key import openai import os from dotenv import load_dotenv, find_dotenv # 导入第三方库_ load_dotenv(find_dotenv()) # 读取系统中的环境变量openai.api_key os.getenv(OPENAI_API_KEY) # path1.api_key os.getenv(path) print(openai.api_key) # p…

与 ChatGPT 进行有效交互的几种策略

在这篇文章中,您将了解即时工程。尤其, 如何在提示中提供对响应影响最大的信息什么是角色、正面和负面提示、零样本提示等如何迭代使用提示来利用 ChatGPT 的对话性质 废话不多说直接开始吧!!! 提示原则 快速工程是有…

随机森林(Random Forest)通俗教程

目录 1 什么是随机森林?2 随机森林的特点3 随机森林的相关基础知识4 随机森林的生成5 袋外错误率(oob error)6 随机森林工作原理解释的一个简单例子7 随机森林的Python实现8 参考内容 1 什么是随机森林? 作为新兴起的、高度灵活的…

加密流量分类-论文9:DarknetSec: A novel self-attentive deep learning method for darknet traffic.....

加密流量分类-论文9:DarknetSec: A novel self-attentive deep learning method for darknet traffic classification and application identification 0、摘要1、文章核心观点引入2、模型结构2.1 模型总览2.2 预处理层2.4 特征提取层 4、实验5、总结与思考 0、摘要…

陌陌X-SIGN算法HOOK

文章目录 前言应用到的工具java 层分析frida hook aesEncode,a,sign 这三个方法总结预告: 下章节我们讲:陌陌X-SIGN还原 前言 学习是必然的,一路并不是平台的到道路,总要有点意外和惊喜。人嘛!…

152.网络安全渗透测试—[Cobalt Strike系列]—[会话管理/派生]

我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!!! 文章目录 一、会话管理1、实验环境2、会话派生(1)128的cs会话派生给128的cs本身(2)128的cs会话派生给…

森林攻略

1.存档攻略 C盘/ Users / Administrator / AppData / LocalLow / SKS / The forest / 一列数字 你保存的存档,就在那个名称全是数字的文件夹中,只需把其中的存档文件保存在U盘或网盘中,下次玩时,把保存的存档文件放到存档文件夹…

Isolation Forest孤立森林(二)之sklearn实现,源码分析

孤立森林算法sklearn实现,源码分析 算法一: 首先初始化一些参数 class sklearn.ensemble.IsolationForest(n_estimators100, max_samples’auto’, contamination’legacy’, max_features1.0, bootstrapFalse, n_jobsNone, behaviour’old’, random_stateNone, v…