微信开发(一) 服务器配置

因为最近需要写一个微信的小东西去参加比赛,所以今天就开始正儿八经的写一下博文,号之前申请了,就不说申请号的一部分了。

之前使用的都是未加密的明文模式,由于比赛要求,必须使用加密模式,所以只好学学加密模式。

先是服务器配置,先将服务器如图配置

配置微信响应文件:

define("TOKEN", "hmcome"); //设置token

define("AppID", "wx4***********");//设置APPID

define("EncodingAESKey", "x2q***************************");//设置加密密钥

require_once(‘wxBizMsgCrypt.php‘);//引用消息加密解密包  注意:加密解密包里又引用了多个文件

当用户向公众账号发送消息时,微信公众账号将会在URL中带上signature、timestamp、nonce、encrypt_type、msg_signature等参数,如下所示

http://www.xxx.com/index.php?signature=35703636de2f9df2a77a662b68e521ce17c34db4&timestamp=1414243737&nonce=1792106704&encrypt_type=aes&msg_signature=6147984331daf7a1a9eed6e0ec3ba69055256154

加密解密原理简单,就是在微信给你响应的时候是一串密文信息,当到了开发者这里就先解密,解密进行处理了过后再用密文的方式返回给用户。

检查签名的完整代码:

public function responseMsg()
{
$timestamp = $_GET[‘timestamp‘];
$nonce = $_GET["nonce"];
$msg_signature = $_GET[‘msg_signature‘];
$encrypt_type = (isset($_GET[‘encrypt_type‘]) && ($_GET[‘encrypt_type‘] == ‘aes‘)) ? "aes" : "raw";
//检查加密否

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){
//如果是加密的文本,就将他先解密
if ($encrypt_type == ‘aes‘){
$pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID);
$decryptMsg = ""; //解密后的明文
$errCode = $pc->DecryptMsg($msg_signature, $timestamp, $nonce, $postStr, $decryptMsg);
$postStr = $decryptMsg;
}
//解密结束
$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
$RX_TYPE = trim($postObj->MsgType);

//消息分离,判断是文本还是事件
switch ($RX_TYPE)
{
case "text":
$resultStr = $this->receiveText($postObj);
break;
case "event":
$resultStr = $this->receiveEvent($postObj);
break;
default:
$resultStr = "";
break;
}
//响应完了过后再把消息加密
if ($encrypt_type == ‘aes‘){
$encryptMsg = ‘‘; //加密后的明文
$errCode = $pc->encryptMsg($resultStr, $timestamp, $nonce, $encryptMsg);
$postStr = $encryptMsg;
}
//加密结束
echo $resultStr;
}else {
echo "";
exit;
}
}

时间: 2024-10-17 12:31:41

微信开发(一) 服务器配置的相关文章

微信开发 ---- 设置服务器配置

配置服务器: ①  进入个人公众号------>开发----->基本配置-------->设置我们的服务器配置 URL是我们的服务器页面,我们有的操作都是需要在这个页面完成的,我们只有去访问这个页面微信才会给我们回应. 你现在直接点提交是不会成功的. ②编写代码 创建一个Mvc项目.添加一个 WeixinController  控制器 其中:  WeixinConfig配置 BaseAPI则是一个类,在类库里面 然后发布该项目到服务器上.域名是在www.sealee.xin下 ③点击提交

微信开发服务器配置

首选上传一个测试用的文件用来配置微信开发服务器例如: <?php define("TOKEN", "weixin"); ?> 命名为weixn.php URL(服务器地址)填写网站 http://test.com/weixin.php Token(令牌) 填写上面weixin.php 定义的值 EncodingAESKey(消息加解密密钥)默认生成即可 位置在个人中心,设置 ,开发者中心 找到服务器配置 参考网址:http://www.cnblogs.c

带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服务器 1.我购买的是阿里云服务器,购买后要设置一下服务器密码,默认用户名是administrator,购买好后如下: 2.申请好后,copy一下此服务器的IP地址(公有),在本地ping一下看看是否可用,j键盘Win+R,输入cmd,输入ping+IP回车,如下即为成功: 二.配置服务器 1.下载远

微信开发订阅号(ASP.NET MVC4+jquery mobile+AppHarbor发布)

首先应该去微信公众平台注册一个账号,因为我是用的个人,所以只能注册订阅号,然后需要提供身份证照片,这些大家慢慢折腾.然后在微信管理面板中选择高级功能,进入开发者模式. 在服务器配置中需要提供最重要的url,用来接收微信发过来的消息和回复消息,token这个随便填一个就行了,主要是用来验证消息来源. 如果你是java php开发者,那么你可以选google AppEngin 或者sina app engine 来部署你的应用,但是很不幸,我是.net,这里我们使用国外的AppHarbor,appH

微信开发配置文档

微信开发配置文档 请求SDK接口 1, 绑定域名 公众号设置 菜单 --> 功能设置 绑定域名 : http://www.xxxxx.com2, 记录应用ID : AppID(应用ID)wxd9c94eba232190a1 应用密码: 8ff9f1fd268bdb643fc27354811d973a3, 找到开发者工具 --> 开发者文档 -->微信网页开发 -->JS-SDK说明文档 页面底部 下载 sample.php 示例DEMO 打开sample.php 设置 APPID

记微信开发(接口篇)

记微信开发(接口篇) 刚从哥们儿那弄到了个带认证的微信号,恰巧能部署到我的ECS上,来玩玩微信开发(php编程-.) ECS环境:centos7+XAMPP+drupal(已部署了一个drupal网站) 1. wx_sample.php文件 就在微信公众号开发者文档处,接入指南里面有PHP示例下载 下载完成后,看见 把第7行的weixin改成任意你喜欢的字符,记下来(譬如我这里改成jiekou,这就是你接下来要在服务器配置里面填的Token(令牌)项,这个暂且不提) 2. 上传到php服务器 这

【微信开发】02.搭建一个属于自己的微信公众平台

概述 公司年会上同事开发了一个微信企业号,包含了投票,抽奖,祝福墙功能,还开了一个Session,跟我们讲了下公司的企业号开发过程和抽奖中奖率,觉得蛮有兴趣的,就自己开始了微信公众平台的开发. 目前开发了以下功能: 成语接龙/笑话/留言板/抽奖/祝福墙 1.申请微信公众号 进入微信公众平台https://mp.weixin.qq.com/ 账号类型分三种:服务号/订阅号/企业号 最简单的区别是:订阅号菜单功能和支付功能没有,申请服务号和企业号需要交300块钱进行工商局审批通过才能申请得到 我选择

微信开发调试工具

首先,微信公众号分两种类型和两种情况,两种类型分别是订阅号和服务号,两种情况是,已认证或未认证的订阅号.他们分别具体的接口权限大家可以在微信后台的"开发者中心-接口权限"看到. 如下图所示是我的接口权限: 以上显示"未获得"的接口状态,就是需要订阅号或服务号微信认证之后才有拥有的权限. 简单说,未认证的订阅号只有基础支持.自动回复和发送回复消息的接口,只有实现一些较简单的数据交互功能,例如本公众号(需要特别说明一下,本公众号也是未认证的订阅号,关于自定义菜单是一个微

C#微信开发小白成长教程二(新手接入指南,附视频)

距离第一讲又已经过去了一个多星期了,本打算一周更新一讲的,奈何实在太忙.最近也在群里发现有一部分人已经可以熟练调用微信的部分接口但却不是很清楚微信公众平台接收消息的一个处理机制.本讲就来介绍下怎么接入开发者的服务器. 接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 举个形象的例子:比如在抗战时期,各个军队之间需要进行通讯,在战场上军情的保密是很重要的.所以A.B两个军队事先约定好了接头的暗号(token),所有的书

微信开发关注回复 oauth2(1)

服务器配置 第一步:服务器选择: 我选的是新浪的 http://sae.sina.com.cn/ ,具体如何配置就不用细说了,就相当于租用一台服务器一样 第二步:上传代码:共三个件,分别是index.php,oauth2.php,redirectUri.php index.php 代码如下: <?php /** 微信公众平台 */ define("TOKEN", "weixin");//与管理平台的TOKEN设置一致 $wechatObj = new wech