开发环境搭建
原创当开发微信公众号的应用后,需要将其部署到公网服务器进行测试,因为每当微信用户向公众号发起请求时,微信服务器都会先接收到用户的请求,然后转发到服务器上。也就是说,微信服务器要与服务器进行网络交互,所以必须保证服务器可以通过外网访问到。本节将要介绍怎样获取服务器资源、填写服务器配置信息与验证服务器地址的有效性。
接入指南1. 获取服务器资源
微信公众号所需的服务器种类包括云主机、虚拟空间、新浪 SAE(Sina App Engine)与百度 BAE(Baidu App Engine)等。云主机是指自己托管于互联网数据中心(Internet Data Center,IDC)机房的服务器或者第三方服务商提供的服务器,一般一个人使用一整台服务器;虚拟空间是第三方服务商将一台主机分成多个虚拟主机,供多人使用;而新浪 SAE、百度 BAE 可以申请免费使用,但是有一定条件限制。许多个人开发者和中小企业,可能没有属于自己的服务器资源。人们平时在个人计算机上部署的应用都在局域网环境中,只能供自己或局域网用户访问,公网用户无法访问。但公众平台上的程序需要与微信服务器进行交互,因此必须部署在公网环境中。
以下以新浪 SAE 为例介绍如何申请免费的 SAE 应用空间以及上传程序文件。
(1)申请账号
在浏览器的地址栏中输入网址 https://www.wechatadd.com/,进入新浪云首页,在该页面中可以选择微博登录或注册账号。注册过程中,在图 2-1 所示的界面中填写微博账号与密码,或扫描二维码登录后直接跳转到微博授权确认部分,新浪云注册页面如图 2-2 所示。

图 2-1 新浪云登录页面

图 2-2 新浪云注册页面
(2)创建应用
注册成功后的页面如图 2-3 所示,在最上方左侧找到控制台,并从下拉列表中找到云应用 SAE。在跳转后的图 2-4 所示的应用管理部分单击「创建新应用」按钮。

图 2-3 注册成功页面

图 2-4 创建应用页面
单击「创建新应用」按钮后将会提示禁止违规行为,单击「继续创建」按钮,弹出创建应用的部署环境、云空间配置、应用信息填写页面。在部署环境模块的运行环境中选择标准环境,如图 2-5 所示。

图 2-5 「部署环境」页面
(3)创建版本
应用创建后将直接跳转至「代码管理」页面,如图 2-6 所示,单击页面中的「创建版本」按钮,将会弹出图 2-7 所示的页面,填写创建的版本号。

图 2-6 「代码管理」页面

图 2-7 「创建版本」页面
(4)上传代码
在图 2-8 中,单击「上传代码包」链接将会弹出「代码上传」页面,如图 2-9 所示。人们只需将微信公众号开发的相关代码压缩包上传至该应用,就可以运行。而单击「编辑代码」链接就可以看到上传的代码文件,并进行编辑,如图 2-10 所示。需要注意的是,新浪云只支持 zip、gz、tar.gz 格式的代码包,其他格式的暂时不支持。

图 2-8 版本显示

图 2-9 「代码上传」页面

图 2-10 代码编辑页面
2. 填写服务器配置
在基本配置页面单击「修改配置」按钮,需要填写的配置信息有 3 个:URL、Token 和 EncodingAESKey。其中,URL 是开发者用来接收微信消息和事件的接口 URL,该 URL 必须正确响应微信发送的 Token 验证,上面申请的新浪 SAE 应用就可以用来验证 Token;而 Token 是由开发者任意填写的签名,该 Token 会与服务器接口 URL 中包含的 Token 进行比对,从而验证安全性;EncodingAESKey 是由开发者手动填写或随机生成的,主要是用于消息体加密解密的密钥。服务器配置页面如图 2-11 所示。

图 2-11 服务器配置页面
与此同时,开发者可以根据业务需要选择消息加解密方式:明文模式、兼容模式或者安全模式。这 3 种模式的安全级别有明显的区别,如图 2-12 所示。加解密默认模式为明文模式,选择兼容模式和安全模式时需要写好相关加解密代码。

图 2-12 消息加解密方式
3. 验证服务器地址的有效性
开发者提交配置信息后,微信服务器将发送 GET 请求到填写的 URL 上,从而验证消息的确来自微信服务器,GET 请求携带参数如表 2-1 所示。
表 2-1 GET 请求参数列表

获得 GET 请求的几个参数后,开发者就可以通过 signature 对请求进行校验。开发者开发的校验程序要能够处理 GET 请求,并对请求者进行身份验证,确保请求来自微信服务器。校验流程如下:
① 首先将 token、timestamp、nonce 这个参数进行字典序排序;
② 随后将 3 个参数字符串拼接成一个字符串并进行 sha1 加密;
③ 开发者获得加密后的字符串后可与 signature 对比,标识该请求来源于微信,原样返回 echostr 参数内容,则接入生效。
检验 signature 的 C#示例代码如下:
1. public void ProcessRequest (HttpContext context) 2. { 3. string s = 「」; 4. List<string>l = newList<string>(); 5. l.Add (「你填写的 token」); 6. l.Add (context.Request.QueryString[「timestamp」]); 7. l.Add (context.Request.QueryString[「nonce」]); 8. l.Sort (); 9. foreach (string_s in l) s +=_s; 10. s= FormsAuthentication.HashPasswordForStoringInConfigFiles (s,「SHA1」). ToLower(); 11. if (s == context.Request.QueryString[「signature」]) 12. { 13. context.Response.Write(context.Request.QueryString[「echostr」]); 14. } 15. } 16. public bool IsReusable{ 17. get{ 18. return false; 19. } 20. }
接入成功后将成为开发者,可以申请微信认证,获得更多开发接口,实现企业或个人业务需求。
接口测试号申请考虑到用户体验和安全性,微信公众号的注册设置了权限。某些高级接口权限需要微信认证后才可以获取,微信认证必须是企业或组织才能申请,个人是不可以的。所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,微信团队推出了微信公众号测试号,测试号的申请比较简单,通过扫描二维码就可以获得测试号。
(1)输入网址 https://www.wechatadd.com?t=sandbox/login,进入微信公众平台接口测试账号申请页面。
(2)在出现的页面中单击「登录」按钮即会跳转至图 2-13 左侧所示的微信二维码页面,使用手机微信扫一扫网页中的二维码,手机就会出现图 2-13 右侧所示的登录公众平台测试账号系统页面。

图 2-13 微信二维码页面及微信公众平台测试账号系统登录页面
(3)单击「确认登录」按钮,网页端将会进入测试号管理页面。在该页面中将会提供测试号信息、接口配置信息与测试号二维码,包括 AppID 和 AppSecret 的测试号信息。除此以外,还需要填写接口配置信息,包括微信账号连接的 URL 网址和 Token 令牌号。Token 是指任意字符串,该字符串必须与 URL 网页中的 Token 相同。若没有服务器,可以按照 2.1.1 小节中的步骤申请一个 SAE 免费空间。
输入完毕后,单击「提交」按钮。连接成功后,将看到图 2-14 所示的页面。图 2-14 所示的只是部分接口的截图,若要详细了解测试账号的接口权限,可申请一个测试账号进行体验。

图 2-14 测试账号接口权限表
版权保护: 本文由 李斯特 原创,转载请保留链接: https://www.wechatadd.com/artdet/9542
阅读推荐
更多...- 发个人爱好类信息,不断提高您的销售技巧和业绩 2023-04-14
- 卖家怎样加入农村淘宝?完整流程介绍 2022-07-29
- 声音要具有感染力,客户业绩增长了100% 2023-04-01
- 微博营销——伊利舒化奶联手新浪微博 2022-07-23
- 质疑客户:为什么 TA 就能帮你搞定一切?[销售秘籍建议收藏] 2023-05-22
- 销售团队激励的原则有哪些?建立客户信任,实现长期合作 2023-05-19
- LBS+物联网:带来清晰的商业模式 2023-07-14
- 打造自明星,微信创业事半功倍,借助媒体的力量 2023-07-12
- 即时通讯改变客户行为--实现业绩的突破 2023-04-01
- 要保持忠诚度就常常对客户进行投资,最大程度地优化销售资源和流程 2023-04-01
- .略解读与落地--实现业绩的突破 2023-03-23
- 移动互联网营销要有具有体验要素和快速迭代思维 2022-07-25
- 销售绝招:客户就在你身边,提升销售业绩 2023-03-08
- 及时回访、和跟踪客户,轻松实现您的销售目标 2023-04-01
- 如何用头脑风暴的方式做创意? 2022-07-29
- 让客户占便宜,你才能够有赚头「销售技巧」 2023-03-04
- 以上帝视角投小程序 2023-09-11
- 最好的商业模式就是「做买卖」 2023-07-16