基于Bluemix的微信公共平台应用开发

2024-03-12 07:30

本文主要是介绍基于Bluemix的微信公共平台应用开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

而微信公共平台的账号已经达到了 200 多万,因此如果能利用 Bluemix 开发微信公共平台应用,笔者认为将为广大的微信开发者学习、部署、测试、直至形成商业应用带来福音,所以笔者通过研究,成功完成了基于 Bluemix 的微信公共平台应用开发,在此做一些简要的介绍,以便于微信公共开发者推进深化应用。

基本过程

在开发微信公众平台前,需要申请一个微信公共账号,此处不做赘述,笔者使用的微信公共账号名称为:"正海说知识创新",代号为:"zhszscx"。如何申请微信公共账号,笔者不做赘述。

在 Bluemix 中开发微信公众平台主要包括如下步骤:

  1. 申请 Bluemix 账号
  2. 下载并安装 Cloud Foundry 程序
  3. 编制一个应用的配置文件
  4. 在微信公众平台设置为开发模式
  5. 设置一个基于 Bluemix 的网址 URL
  6. 设置微信公众平台应用的令牌(Token)
  7. 下载微信公众平台的范例程序,笔者采用 PHP 语言,对该程序进行修改,设置令牌(TOKEN)
  8. 上传(push)PHP 文件,应用开始执行
  9. 在微信公众平台中,验证通过编辑模式。
  10. 利用手机微信,向微信公众平台发送信息,获得微信公众平台返回的信息。

至此,基于 Bluemix 的微信公众平台应用开发顺利完成,开发者可以在此基础上进行进一步的发展。

图 1.系统框架


基于Bluemix的微信公共平台应用开发

过程描述

  1. 申请 Bluemix 账号

    进入网址:www.bluemix.net

    图 2

    基于Bluemix的微信公共平台应用开发
  2. 下载并安装 Cloud Foundry 程序

    进入网址:https://github.com/Cloud Foundry/cli

    图 3

    基于Bluemix的微信公共平台应用开发

    根据开发者的程序操作系统下载对应的程序。

    图 4

    基于Bluemix的微信公共平台应用开发

    例如笔者下载地址是: Stable Installers 下的"Windows 64 bit"

    下载了一个文件,该文件为 installer-windows-amd64 .zip

    安装该文件后,在 C:\Program Files (x86)\Cloud Foundry 下产生了一个 cf.exe 文件。同时经过检查发现,在系统的 PATH 路径中,也增加了该目录,也就是说可以直接在 DOS COMMAND 环境下输入 CF 命令执行该文件。

  3. 编制一个应用的配置文件

    文件名为:manifest.yml 作为一个应用,需要设置应用的名称、应用产生的网址,范例的文件为:

    ---
    applications:
    - name: cf-php-mysql1memory: 256Minstances: 1host: lzhfirstphpdomain: ng.bluemix.netpath: .buildpack: https://github.com/dmikusa-pivotal/cf-php-build-pack.git

    说明:

    name 指定了应用的名称

    host 指定了应用的扩展域名,如上面的范例文件则生成域名:

    lzhfirstphp. ng.bluemix.net

    其他不做变动,修改完成后,将文件保存。

    编制该文件有三个注意事项:

    1. 文件格式需要指定为 UTF-8 的格式
    2. 设置应用名称时,需要注意不能重复。
    3. 设置 HOST 名称时,尽可能长一些,或者按照个人姓名、公司名称进行设置,笔者上传部署时曾经出现过错误,估计是名称重复,后来修改后,部署成功。
  4. 在微信公众平台设置为开发模式

    进入微信公众平台,登录后,进入高级功能,设置开始开发模式。

    图 5

    基于Bluemix的微信公共平台应用开发

    图 6

    基于Bluemix的微信公共平台应用开发

    在微信公众平台接口中,设置对应的 URL 及令牌。

    图 7

    基于Bluemix的微信公共平台应用开发
  5. 设置一个基于 Bluemix 的网址

    在 URL 中设置网址,注意此处的形式必须与前面设置的一致。

  6. 设置微信公众平台应用的令牌(token)

    设置一个令牌信息,该令牌信息是由自己指定的,一般采用特别的字符进行,以保证安全性。

  7. 下载微信公众平台的范例程序,笔者采用 PHP 语言,对该程序进行修改,设置令牌(token)等相关信息。开发者可以在微信公众平台开发者文档中下载 DEMO 文件。

    图 8

    基于Bluemix的微信公共平台应用开发

    清单 1

    <?php
    /*** wechat php test*///define your token
    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    $wechatObj->valid();class wechatCallbackapiTest
    {public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";             if(!empty( $keyword )){$msgType = "text";$contentStr = "Welcome to wechat world!";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}else{echo "Input something...";}}else {echo "";exit;}}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];	$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}
    }?>

    在这个文件中,有三处需要改动:

    第一:设置 TOKEN

    define("TOKEN", "abcdefg123");//第一处修改

    这里的数值,需要与前面网页中的 Token 的设置严格一致。

    第二:这个范例程序中只是设置了验证模式,而没有消息的响应处理,笔者将该文件进行了修改,当存在验证参数时进行验证,而不存在验证信息时,则调用响应方法。

    if   ( $_GET["echostr"] ){$wechatObj->valid();}else{$wechatObj->responseMsg();}

    第三:在范例程序中,对输入信息进行了一点处理,设置为返回信息。

    $contentStr = "Welcome to wechat world!".$keyword;

    也就是将微信粉丝输入的信息,加上"Welcome to wechat world!"后返回。

    另外需要注意的是该 PHP 文件的编码也必须是 UTF-8 的。上传(push)PHP 文件,如果上传正确,则等待应用执行。

    1. cf api https://api.ng.bluemix.net
    2. cf login

      此处输入申请的用户邮件、密码,执行至运行结束。

    3. cf push -f manifest.yml

    该文件名指定必须与前述的配置文件完全一致。

    在正常的配置结束后,就可以在 Bluemix 中看到该应用,该应用处于正常运行的状态。

    图 9

    基于Bluemix的微信公共平台应用开发
  8. 在微信公众平台中,点击提交,系统会提示验证通过。如果提示验证不通过,需要检查 URL、Token、程序中的 Token 以及程序代码的正确性。

    另外,需要注意的是,腾讯要求服务器响应必须在 5 秒以内,因此在网络环境不够好的情况下,也许需要多提交几次才可以完成。

    特别需要注意的是,笔者曾经进行过新浪的微博开发,新浪微博开发可以采取本地服务器,一样可以验证通过,而腾讯的这种验证必须使用外部可以访问的网址,笔者曾经为此很困扰,而且腾讯的验证必须使用 80 端口,不支持 URL 带端口号,这也曾经困扰过笔者。幸而 IBM 的 Bluemix 平台可以支持。

  9. 利用手机微信,向微信公众平台发送信息,获得微信公众平台返回的信息。

    设置成功后,例如手机微信关注该微信公众平台账号,例如笔者的"正海说知识创新",账号:"zhszscx"关注的方法可以是名称查询、代号查询,也可以扫描如下的二维码,进行体验。

    想该账号发送:hello!

    将会收到系统返回的:Welcome to wechat world! hello!

    这就表示基于 Bluemix 的微信公众平台开发顺利完成。

开发中注意事项

对于前面开发中介绍到的可能出现问题的地方再做一些总结:

  1. 正确设置 HOST 名称,不可以重复。
  2. HOST 名称加上域名,需要和微信公众平台中的 URL 相匹配。
  3. 程序中的 Token 的设置必须同微信公众平台中的设置相匹配。
  4. 配置文件必须使用 UTF-8 格式。
  5. Index.php 程序文件格式必须使用 UTF-8 格式。
  6. 系统未做说明,但是默认采用的是 index.php 文件作为入口,也就是说,如果按本文所叙述的程序编制方法,利用域名访问时,将没有结果展示。
  7. 在微信公众平台提交时,可能显示失败,需要提交多次,知道显示成功。

另外需要说明的是,目前的程序只对文本型微信信息进行了回复,其他信息未做处理。而开发者如果在开发中需要变更程序,则需要再次 PUSH 就可以,但是不需要在微信编辑模式再次提交。

发展展望

笔者在前述的基础上,又增加了数据库的链接,主要是 MYSQL 服务的建立、MYSQL 服务与应用的绑定,在 PHP 程序文件中实现服务的参数调用,数据表的创建、插入、显示,成功实现了数据库的处理,另外也成功部署了基于 PHP 的网站形式的应用,有了这样的基础,说明可以利用 IBM 的 Bluemix 平台实现开发微信公共账号应用。

笔者同时也必须要说明的是,本文只是对 Bluemix 的一个入门级应用的简要总结,算是抛砖引玉,对于 Bluemix 还只是冰山一角,有待更多研究,希望与广大开发者合作共进。

转载地址:http://www.ithov.com/server/136267.shtml

这篇关于基于Bluemix的微信公共平台应用开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/U272463590/article/details/43562989
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/800529

相关文章

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me