当前位置:首页 > 杂谈 > 正文内容

SAP系统和微信集成的系列教程之一:微信开发环境的搭建-微信交友群2021

2023-07-21 02:57:59TONY杂谈89

本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上:

https://blogs.sap.com/2017/12/10/wechat-development-series-1-setup-your-development-environment/

最近有不少朋友在微信上向我咨询SAP系统和微信公众号集成的问题,因此我把当时写的英文版翻译成中文,重新发布在我的公众号上。

需要注意的是,时隔三年,微信公众号的开发流程可能有所变化,请大家自行鉴别。和微信公众号集成的系统,我三年前选择的是SAP Cloud for Customer.

搭建开发环境的前置条件

(2)这个教程里的微信消息服务器是用nodejs开发的,所以需要对nodejs的开发有一个基本的了解。

具体环境搭建流程

登录微信公众平台:https://mp.weixin.qq.com

进入公众号管理控制台:Development->Basic configuration

在下图的URL字段里,维护你的微信消息服务器地址。当我们使用微信app往某个微信公众号发送消息时,微信app会把该消息转发给微信公众号绑定到的微信消息服务器去。该消息服务器处理完毕后,将处理结果推送回微信app.

上图中我的微信消息服务器部署在heroku云平台上,当然你也可以把自己用nodejs开发的微信消息服务器,部署在其他的云平台,比如阿里云,腾讯云,SAP云平台等均可。

仅仅简单地将云平台上的微信消息服务器的url维护在上图的URL字段是不够的,我们必须遵循微信公众号开发指南里定义的一个校验流程,从而让消息服务器同微信公众号真正地建立绑定关系。

校验流程文档如下:

https://mp.weixin.qq.com/wiki?t=resource/resmain&id=mp147201749258YV5

点击下图的submit按钮之后,微信公众平台会发送一个HTTP请求到我们开发的微信消息服务器去:

HTTP请求的url格式如下:

https:///?signature=096abd439b41f9610aeabe2d7534084fd8dafa20&echostr=16168327802220428137×tamp=1512810825&nonce=384289189

我们的微信消息服务器,收到这个请求后,将微信公众号的账号令牌, HTTP请求里包含的时间戳和nonce字段作为输入,按照微信开发指南里的说明计算一个输出值,如果该输出值和HTTP请求传入的签名值(signature)相等,则该微信消息服务器通过验证,后续可以接收来自微信app的用户请求。

如果计算的输出值不等于HTTP请求传入的签名值,则验证失败,错误消息:Token authentication failed.

使用nodejs开发微信消息服务器的简要步骤:

(1)新建一个nodejs应用,package.json里定义依赖如下。定义启动脚本start执行的命令行为:

node server.js

(2)实现server.js,主要逻辑是接收前文描述的submit按钮点击之后,发送给微信消息服务器的HTTP验证请求,从请求中提取出时间戳(下图第17行)和nonce字段(下图第19行),使用SHA-1散列算法计算出一个哈希值(下图第29行),然后同HTTP请求传入的签名值比较(第31行).如果两个值相等,在第32行将HTTP请求传入的echostr返回给微信公众平台,验证通过。

之前有一些SAP从业者们,吐槽微信公众平台上给出的代码示例是基于Python的,而不是SAP生态圈内的朋友们更常用的Java或者JavaScript.如果想拷贝上图的nodejs源代码,可以在Jerry的SAP社区博客里获得:

https://blogs.sap.com/2017/12/10/wechat-development-series-1-setup-your-development-environment/

最后,将这个nodejs应用部署到云平台上,比如腾讯云,阿里云,SAP云平台等。

我2017年写作的时候,选择的是heroku云平台,部署应用的详细步骤参考我这篇文章:

Step by step to host your UI5 application in Heroku

https://blogs.sap.com/2017/12/09/step-by-step-to-host-your-ui5-application-in-heroku/

消息服务器部署到云平台之后,点击微信公众号后台控制台的submit按钮,从heroku的控制台上,能看到nodejs应用里用console.log打印出的日志,其中HTTP请求传入的签名值和nodejs应用里计算出的哈希值一致,所以验证通过。

验证通过后,微信公众号控制台的服务器配置字段,能看到is enabled的提示,说明该消息服务器已经能够接受用户使用微信app给微信公众号发送的消息了。

这个系列的下一篇文章,Jerry会介绍如何在微信消息服务器中接收用户用微信app发送给微信公众号的消息,处理之后如何推送回微信app.

感谢阅读。

“SAP系统和微信集成的系列教程之一:微信开发环境的搭建-微信交友群2021” 的相关文章

商用空气能热水器常见小故障,快看看你家的空气能出现了没有!

商用空气能热水器常见小故障,快看看你家的空气能出现了没有!

随着科技的发展,空气能热泵的应用已然变得愈发广泛,在商业领域上,空气能热泵在医院、商场、洗浴中心等场所十分常见,空气能热泵用于商用效果虽好,但难免也会出现一些小故障,接下来就让我们看一下空气能热泵的一些常见小故障吧!...

原创
            《我的叔叔于勒》:教材删去了3处关键信息,少了原著的灵魂

原创 《我的叔叔于勒》:教材删去了3处关键信息,少了原著的灵魂

原标题:《我的叔叔于勒》:教材删去了3处关键信息,少了原著的灵魂 《我的叔叔于勒》原本是法国著名作家莫泊桑所创作的脍炙人口的短篇小说,该书描述了菲利普夫妇在叔叔于勒穷困时对待他的心理以及当得知于勒叔叔摇身一变成为了“有钱人”后又亲眼得见落魄于勒的心理变化。 在被选为我国中...

统计局:3月70城房价上涨城市数量增加,武汉、昆明、徐州新房价格涨幅明显

统计局:3月70城房价上涨城市数量增加,武汉、昆明、徐州新房价格涨幅明显

本报记者 李凯旋 李贝贝 北京报道 4月15日,国家统计局发布了最新一期的70城房价指数。数据显示,2023年3月份,全国70个大中城市商品住宅销售价格上涨城市个数增加,一线城市商品住宅销售价格同比上涨,二三线城市同比降幅收窄。 业内认为,3月份房价整体延续上月的...

春运期间广东高速公路救援服务24小时待命

春运期间广东高速公路救援服务24小时待命

春运期间广东高速公路救援服务24小时待命。如需车辆救援服务,请拨打全省服务热线96533转2。广州日报全媒体记者李妍 通讯员曾晓青、肖建强、梁子格、曾令强 摄 广州日报讯 (全媒体记者李妍 通讯员粤交集宣、曾晓青)春运期间,广东省交通集团所属粤运拯救公司近1000名员工全员在岗,为...

一建废弃证书增至72.2万!中国建造师网不再提供查询服务?

一建废弃证书增至72.2万!中国建造师网不再提供查询服务?

10月30日,住建部官网公布第37批一级建造师注册人员名单,共8539人注册成功。 住房和城乡建设部关于2020年第三十七批 一级建造师注册人员名单的公告 根据《注册建造师管理规定》(建设部令第153号...

广西康全药业公司举办28周年庆典暨2022年度表彰会

广西康全药业公司举办28周年庆典暨2022年度表彰会

  本文转自:人民网-广西频道   人民网南宁4月26日电 (记者庞革平)4月18日,广西康全药业连锁有限公司在南宁举办了以“彰显经典力量  共筑康全辉煌”为主题的康全药业28周年庆典暨2022年度表彰大会。   康全药业董事长庞云表示,2022年是发展进程中极不...