美文网首页Android架构合集
微信自动扣费对接总结及其填坑记录

微信自动扣费对接总结及其填坑记录

作者: 爱你为你做饭 | 来源:发表于2019-05-25 16:11 被阅读7次

    1. 微信自动扣费名词解释

        * appid:app在微信开放平台注册后获取到访问微信的唯一码,后续的微信登录,分享,支付都需要这个

        * mch-id:商户号id,开通微信支付后,在微信后台填写公司信息后,微信提供的商户唯一码,后续通过这个唯一码进行收费等。

        * plan-id:模板ID,自动扣费,用户并不能自定义扣费的费用,需要按照微信的约定针对某项服务,服务期限需要收费的费用进行添加注册,微信审核通过后会生成唯一标识码。

        * 需要注意的是微信自动扣费并没有对外公开,需要联系微信的bd进行权限授权。

        * 在进行签约对接前要保证上面提到的appid,商户id(mchid)绑定且模板id审核通过

    2. 微信自动扣费对接方式包括sdk对接,h5签约对接,支付中签约对接方式,对接不麻烦,对接参考下面的对接文档即可,麻烦的是里面的各种坑,此时吐槽一下这些三方太她妈的没有大厂风范了,写得文档那个简单,写得详细一点能死啊!有点用的还藏在问题中或者论坛中去,连个导航链接都没有,只能呵呵了。

    2. 微信自动扣费填坑记录

        * 签约中商户号id(mchid),appid,模板id(planid)匹配且planid审核通过,磨刀不误砍柴工,在开发对接前反复确认这一项,不然后续开发中使用的时间更长。

        * app sdk签约模式在app中不能成功拉起微信签约页面,但是微信支付没有问题,一直提示跳转失败,原因是app sdk 拉起微信的签约页面需要额外申请权限,这个需要和对接bd确认,让其帮忙找微信支付去开通。

        * app sdk签约模式拉起签约页面一直提示非法

            * 首先确认第一条说的三个id是否绑定并审核通过

            * 确认传递的参数签名是否正确,notifyurl签名时不使用url编码,传递时进行url编码,其他参数存在特殊字符或者中文字符最好也url编码,还有ios切记两次url编码

            * 参数url编码后%3A,%2F等需要大写

            * 其他参数要严格遵循接口文档定义,有的是int,特别注意时间戳是10位,不是java常见的13位

        * app h5签约模式一直提示签约非法

            * H5签约需要app开发后台准备好参数访问微信后台获取到对应的签约链接,然后通过链接拉起微信的签约页面进行签约

            * 首先需要注意的是换回的链接不能直接在webview或者浏览器中访问

            * 在h5权限授权后台时会配置一个授权域名,需要用这个授权域名写一个重定向的空页面,然后在webview或者浏览器中访问这个空页面,微信会校验域名

            * 在重定向访问微信返回链接后,需要以refer的方式将授权域名添加到访问header中去

            * 访问接口换取拉起微信链接同样需要微信授权以后才行

        * app h5签约成功后返回分析

            * H5签约成功后分为三种:留在微信,识别拉起的ua后回到浏览器,回到app

            * webview或者浏览器都存在ua标识一些信息,微信识别后签约成功会回到浏览器,鉴于通常会安装多个浏览器app,实测会弹窗让用户选择回到那个浏览器

            * 回到app需要换取链接的时候加上return-appid参数并设置上一个正式的appid,还有app得有返回到自己app的权限,这个权限没有找到设置的地方,对接bd也是一知半解,建议开发中就不要考虑这个了

            * 没有设置appid也没有识别ua,签约成功后留在微信,用户手动返回

            * 由于webview也设置了ua,通常和浏览器的ua相同,所以webview拉起签约成功后同样会弹窗选择返回浏览器,此处一个小的窍门,在自己的webview设置ua为一串特殊字符,让微信不能识别留在微信即可

        * app h5签约生命周期分析(针对activity套用fragment分析)

            * 尼玛,微信你还能做的更坑一些么,成功拉起签约页面和不能成功拉起签约页面(没有登录微信)自己app走的生命周期不一样,想在onresume中监听结果的懵逼了吧

            * 可以成功拉起微信签约页面,会在签约完成回到自己页面前反复两次走自己页面的onresume和onpause

            * 不能成功拉起页面,在签约完成前不会走页面的onresume

            * 懵逼孩子,告诉你无论成功与否都只走页面activity的onrestart一次,柳暗花明了吧

            * 满心高兴的在activity的onrestart中写监听,没问题了吧,测试签约前没问题,可你妈签约后→连续两次调用onrestart,尼玛哭的心都有了,经历前面这些坑后估计也折腾不起来了,你两次就两次吧,反正都是签约后还是很快连续两次,自己代码逻辑控制一下就好了

            * 有兴趣的可以分析一下这个生命周期,还是蛮有趣的,研究研究原理么的(闲的蛋疼)

    3. 针对对接方式微信使用场景,鉴于开发对产品了解也不是很明白,简单分析一下当前自动扣费的使用场景。

        * 连续包月,签约后,后续会每月发起扣费

        * 一系列的运营活动,比如首月低价包月

        * 免密支付,减少支付流程

    资料汇总:

        微信自动扣费产品说明文档

        微信自动扣费官方文档(懵逼还不能不看的文档)

        微信模板id申请文档(看看吧,多少有点用)

        微信签约常见问题文档(救命文档)

        委托代扣常见问题文档

    小伙伴们,若是把你从坑里拉出来,别忘了赞赏一下小弟,加个关注也好奥

    相关文章

      网友评论

        本文标题:微信自动扣费对接总结及其填坑记录

        本文链接:https://www.haomeiwen.com/subject/yahzzqtx.html