微信开发相关,了解一下

前言:

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

主要平台:

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

  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。  目前小程序无法迁移。

结语

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

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "Helvetica Neue" }

原文地址:https://www.cnblogs.com/1wen/p/9024873.html

时间: 2024-12-29 06:46:23

微信开发相关,了解一下的相关文章

微信开发相关图书推荐

微信公众平台开发最佳实践(第2版) 作      者 方倍工作室 编 出 版 社 机械工业出版社 出版时间 2015-05-01 版      次 2 页      数 359 印刷时间 2015-05-01 开      本 16开 纸      张 胶版纸 印      数 1 I S B N 9787111499756 专家点评:微信公众平台开发经典之作全新改版,精心挑选最经典的商业项目开发,成千上万人次微信公众平台开发者从中受益 购买地址:购买优惠通道 微信公众平台开发基础与实战 作  

微信开发相关文档

企业号开发者接口文档: http://qydev.weixin.qq.com/wiki 微信公众平台开发者文档 http://mp.weixin.qq.com/wiki/home/index.html 企业号登录地址: https://mp.weixin.qq.com/ https://qy.weixin.qq.com

微信开发学习路线

凭借大量活跃用户,微信已成为商家重要营销平台之一.商家为庞大用户群提供定制化服务的迫切需求,吸引了大量开发者/开发商投入到微信公众平台开发中.学习和掌握微信公众平台开发技术,已成为开发者淘金的另一重要选择. 在CSDN站内,拥有大量与微信开发相关的资源,包括技术博客.问题讨论.工具资源等.CSDN邀请多位微信开发专家对这些资源取其精华,按照微信开发的学习路线展示站内优质资源,从基础入门到高级开发,帮你全面掌握微信开发. 这里,我们为您推出的是微信开发的基础入门及高级进阶部分. 基础入门 认识微信

CSDN专家精选,微信开发学习路线大有看头!

1999年成立至今,CSDN积累了丰富的IT专业技术内容.现在,我们邀请了数百位各领域专家,深入挖掘CSDN站内优质资源,按照从基础到高阶的学习路径,逐步打造覆盖热门技术领域的学习路线,并结合CSDN产品家族(视频学院.技术问答.交流社区等),为广大开发者和IT从业人员提供最为便捷与专业的在线学习平台. CSDN推出的开发技术精品资源合集,按照技术领域,分为不同的学习路线.内容涵盖入门.进阶.实战三个阶段,以帮助开发者系统学习掌握专项技术,快速提升开发水平. 截止目前,已经上线了Rust开发技术

C#微信开发之旅(九):JSAPI支付(V3)(相关代码待补全)

微信开发遇到最复杂的就是支付了,无论V2还是V3.这篇文章将给出全套的V3版本JSAPI支付代码,包括预支付->支付->订单查询->通知->退款,其中前三步已经上线应用,退款只是简单测试了一下,大家要用的话需要谨慎... 一.预支付&支付 实际就是讲订单信息交给微信端,返回给我们一个预支付id(与V2app支付相似),支付时将预支付id交给微信处理.注意:预支付id 需存储,每个out_trade_no(我们自己的订单号)只能对应一个预支付id.代码奉上:(mvc demo

微信支付服务商开发相关的那点事

项目背景 不是什么大项目,使用微信服务商来管理多个子商户,并使用服务商的接口替子商户下单,服务商后台才能接收到回调 使用场景是web扫码支付 准备 域名应该要在服务商所归属的公众号内“网页授权域名”设置好(不知此操作是否需要?) 在支付服务商后台设置好回调地址(子商户应该是不用设置) 项目使用apache+php为后台服务,下载官方支付php demo(native) 我们直接先按照demo的目录结构来玩,直接把解压的example和lib,2个目录都到服务器根目录 在example目录下,创建

Java企业微信开发_09_身份验证之移动端网页授权(有完整项目源码)

注: 源码已上传github: https://github.com/shirayner/WeiXin_QiYe_Demo 一.本节要点 1.1 授权回调域(可信域名) 在开始使用网页授权之前,需要先设置一下授权回调域.这里瞬间想到之前做JSSDK的时候,也设置过一个域名.二者本质上都是设置可信域名. 当用户授权完毕之后,请求将重定向到此域名(或者子域名)下的执行者(jsp页面或者servlet等).如何设置授权回调域,请见第二节. 1.2 获取Code https://open.weixin.

夺命雷公狗---微信开发23----客服消息接口基础和推送文本

我们这边课程里面一共用到了三个文件,分别是WeChat.class.php和common.php以及index.php 我们在写这个功能之前也要学会查手册,手册我们可以在微信开发这里找到,如下所示: 点击进去后我们将会看到客服接口,我们可以点击下进去看看里面有什么动动 这里有一个发送文本消息的,我们点击进去看下 这里很明显就看到文本消息是通过一个json数据来进行实现的,废话不多说,开工 这里我们先来写一个WeChat.php的文件,这里作用主要适用于封装一个CURL上传类的,代码如下所示: <

Java企业微信开发_03_通讯录同步

一.本节要点 1.获取通讯录密钥 获取方式: 登录企业微信—>管理工具—>通讯录同步助手—>开启“API接口同步”  ; 开启后,即可看到通讯录密钥,也可设置通讯录API的权限:读取或者编辑通讯录. 获取通讯录密钥的目的: 通过企业ID(CorpId)和 通讯录密钥可以获取通讯录相关接口的使用凭证(AccessToken).有了AccessToken,就可以使用通讯录相关接口了. 凭证的获取方式有两种(此处暂时存疑,以待勘误): 通讯录AccessToken:CorpId+通讯录密钥 其