• 微信开发相关,了解一下


    前言:

      从微信公众号到现在的小程序,涉及微信开发方面的内容越来越多,工作大多时候是需要我们更了解微信开发的,比如老大说要做个什么东西,涉及到微信的,我们能立马想到方案或者提出可行性的分析吗?  因为微信开发有它自己的一套规则,有它自己的一套框架,有一定它带来的便利,也就有它带来的限制。  这篇文章,不写入门,不写开发流程,主要聊聊最近的一些调研和细节。

    主要平台:

    • 开放平台            (文档:微信开放平台文)
    • 公众平台&小程序 (文档:微信公众平台文档&微信小程序文档)
    • 商户平台            (文档:微信支付文档)

      1)开放平台包含了:移动应用,网站应用,公众号和小程序,第三方平台。    

    1. 移动应用:在开放平台创建移动应用和app关联,为app提供微信支付、分享到微信等等功能
    2. 网站应用:使网站支持使用微信帐号来登录
    3. 公众号和小程序:在开放平台里,可以绑定公众号和小程序,绑定后会触发unionId机制,帮助不同公众号或者小程序打通用户体系。
    4. 第三方平台:代小程序和公众号调用接口,提供运营服务和行业解决方案

      2)公众平台包含:订阅号、服务号、小程序

      3)商户平台:主要支持微信支付,包括线上线下的支付应用场景

      三者关系如下图,所有应用都属于开放平台,开放平台可以绑定小程序和公众号使它们关联起来,商户平台为所有应用提供支付功能。

      如何更好的理解他们呢?  当然是走一遍所有的流程,所谓流程也包括了注册,微信文档在大多数时候并没有特别详细,文档告诉了我们几步流程,但每个流程里面含有什么内容我们不知道,我好几次在文档怎么也找不到我想要的一些细节点。  最后还是自己走一遍流程才理解,所以你想要更清楚细节,最好都能自己去注册一遍。  微信开发相关的内容很多,研发要关注的不只是怎么调用接口,而还需要关注平台相互之间的关系,运营规范,设计规范等等。  

    列举一些比较常遇到的问题

    微信授权OAuth2.0

      微信授权几乎是所有微信开发下应用入口接口,用户授权后,通过请求微信后端,我们才能拿到用户信息,授权流程大致如下:

      1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
      2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
      3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作

      官方文档:Appsecret 是应用接口使用密钥,泄漏后将可能导致应用数据泄漏、应用的用户数据泄漏等高风险后果;存储在客户端,极有可能被恶意窃取(如反编译获取Appsecret)。

      说起这个问题,当时也出现一个事故,在微信公众平台后台appsecret没有修改的功能,只能重置。微信后台也有统计功能,当时运营同事就要求给他们账户,他们方便实时查看。  第二天我们就发现业务功能出问题了,无法用了,前端查问题,后端查问题,怎么看业务逻辑都没有动过,不会是代码改出的问题,后端查日志就是微信那块报的错。  结果是一个运营同事皮,公众后台里面的所有功能都去点过一次,把appsecret给重置了。  结论是后台权限还是别给非研发同事吧,如果要给,也要提前提醒一下这些注意事项。

    消息分发相关

      产品是需要提醒用户的,消息通知在平时的开发中显得尤为重要,也常因为消息的规则可能会影响最初的产品需求。

    • 公众号可以以一定频次群发消息(订阅号为每天1次,服务号为每月4次)
    • 公众号模板消息可以用特定内容模板,主动向用户发送消息,可以带上链接,可以说没有次数限制
    • 小程序的模版消息需要用户有交互通过form组件拿到formId才能向用户发送模板

    微信分享

      在开放平台注册移动应用后申请的App通过审核后,即可获得微信分享及收藏权限。

      如果在网页中需要如下步骤:

        1.微信公众平台里填写“JS接口安全域名”

        2.在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js

        3.通过config接口注入权限验证配置(配置的签名需要后端获取)

      目前一个公众号可以填写三个js接口安全域名地址。  大部分公司的前端页面都部署到某一个域名下的,后端可以只提供一个公众号的签名接口作为公共服务,其他公众号的业务在同一个域名下都能调用这个接口,以完成jssdk签名配置。

    微信支付

      1)要使用微信支付,我们的商户号的公司主体必须和公众号小程序等注册主体一样,否则无法绑定商户号。

      2)如何实现测试公众号支付:

      生成一个字典,存储测试用户的测试公众号和正式公众号的openId,当测试用户在测试公众号唤起支付的时候,后端把测试公众号的openId替换为正式公众号,并使用同主体商户号,便可以正常支付。  其实就是走正式的支付,调用测试的回调。

      3)商户号绑定公众号:

      微信的开发者文档有时候某些文档不是很好找,入口比较深,比如最初我想找到商户号如何和多个公众号绑定,找半天没有相关文档,几个开发文档里搜索也没有。  而在微信公众平台后台的“微信支付”里,也找不到相关的文档和入口。  还好因为公司有商户号,我登录进去看了看才找到,如果是新手,在做技术调研的时候,可能会找不到文档。  最开始我还以为商户号和公众号后台都能相互申请绑定,但是确实只有商户号里面才有此功能。  商户平台新增了授权申请单以后,对应的公众平台后台便在【微信支付 ~ M-A授权】下能看到。

    •  商户号绑定申请页面:

    • 公众平台后台申请授权页面


    如何授权文档链接 https://pay.weixin.qq.com/static/pay_setting/appid_protocol.shtml,文档入口如下图(难找):

    关于支付,企业后端应该对每种支付实现后提供一个公共服务,每当有新的公众号需要支付的时候,只需要配置好相应的参数,调用公共服务下单即可。  如果有需要,前端也可以做一个钱包页面兼容多场景下的支付。  如果账户体系打通了,钱包里会有充值的余额,用户还可以直接选择扣除余额,如果是在非微信浏览器中,钱包理应也有支付宝等支付方式。  但是钱包页面的存在会多一次跳转,如果在微信里用钱包页面,用户体验没有直接唤起支付好。

      

    通过开放平台打通账户体系

    一个企业下面大部分的应用都希望拥有一个账户体系,相互之间的数据要能打通,而每一个公众号或者应用下面对应一个用户都有不同的openId也就无法在不同应用之间标识同一个用户,这个时候就需要用到微信开放平台。微信公众号、移动应用、小程序等都是通过openId来标识用户的唯一性,开放平台能够绑定这些应用,绑定之后同一个用户会生成unionid来体现用户的唯一性。详情UnionID机制

    目前一个开放平台下面可以绑定:

    • 50个移动应用(native)
    • 10个网站应用
    • 50个同主体公司公众号,5个不同主体公司公众号
    • 50个同主体公司小程序,5个不同主体公司小程序

    主体注册限制 

      我之前一直在找一个公司能注册多少公众号,在公众平台开发者文档就一直没找到有说明。  结果这块的内容在qq客服那个网站上http://kf.qq.com/faq/120911VrYVrA140428naUJVv.html

    账号迁移

      公众号主体一旦审核完成就不能更换。如果需要更换,只能新注册一个公众号做迁移,迁移只能迁移部分数据,一个用户在不同公众号openId不一样的原则,如果A公众号迁移到B公众号,需要进行一次openId转换,官方有接口,详情看:http://kf.qq.com/faq/170221aUnmmU170221eUZJNf.html。  目前小程序无法迁移。

    结语

      微信开发容易出现很多坑,不止于技术带来的,而其体量也越来越大,前后端都应该了解整个开发流程、开发配置、运营规则等等,否则容易出了问题不知道是谁的问题,解决问题的效率会非常低,甚至相互甩锅。  微信生态功能在不停的迭代,开发者技术文档、各种政策也时而变更,这些都是我们需要时刻关注的。

  • 相关阅读:
    P3387 【模板】缩点 tarjan
    P2831 愤怒的小鸟 状压dp
    交流帖
    P3959 宝藏 模拟退火。。。
    B1060 [ZJOI2007]时态同步 dfs
    P1850 换教室 概率dp
    树链刨分(待修改)
    B3403 [Usaco2009 Open]Cow Line 直线上的牛 deque
    B3402 [Usaco2009 Open]Hide and Seek 捉迷藏 最短路
    B5248 [2018多省省队联测]一双木棋 状压dp
  • 原文地址:https://www.cnblogs.com/1wen/p/9024873.html
Copyright © 2020-2023  润新知