江门制作公司网站,网站积分系统,沈阳化工大学建设工程网,小微宝安网站建设微信开发需要搭建PHP环境
参考链接#xff1a;Apache2.2与php5.3.5如何整合#xff1f;如何能够被使用_百度经验
搭建的过程出现了很多坑#xff0c;只能小心#xff0c;重复搭建了#xff0c;错误原因可能是VC9或VC11环境没有配置的原因#xff0c;多试试才行。
然后…微信开发需要搭建PHP环境
参考链接Apache2.2与php5.3.5如何整合如何能够被使用_百度经验
搭建的过程出现了很多坑只能小心重复搭建了错误原因可能是VC9或VC11环境没有配置的原因多试试才行。
然后通过基本配置修改微信服务器配置这样发送的消息就会发送到我们的URL而不是微信官方的从而实现自定义微信。
接入微信公众平台开发开发者需要按照如下步骤完成
1、填写服务器配置 2、验证服务器地址的有效性 3、依据接口文档实现业务逻辑
第一步填写服务器配置
登录微信公众平台官网后在公众平台后台管理页面 - 开发者中心页点击“修改配置”按钮填写服务器地址URL、Token和EncodingAESKey其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写用作生成签名该Token会和接口URL中包含的Token进行比对从而验证安全性。EncodingAESKey由开发者手动填写或随机生成将用作消息体加解密密钥。
同时开发者可选择消息加解密方式明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效请开发者谨慎填写及选择。加解密方式的默认状态为明文模式选择兼容模式和安全模式需要提前配置好相关加解密代码详情请参考消息体签名及加解密部分的文档。 此处的URL为自定义的云应用的IP或域名,而Token在index.php中定义为weixin由你自己定义也可以为其他的。EncodingAsKey 不用填可以直接生成
第二步验证服务器地址的有效性
开发者提交信息后微信服务器将发送GET请求到填写的服务器地址URL上GET请求携带四个参数
signature 微信加密签名signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 timestamp 时间戳 nonce 随机数 echostr 随机字符串
在开发者首次提交验证申请时微信服务器将发送GET请求到填写的URL上并且带上四个参数signature、timestamp、nonce、echostr开发者通过对签名即signature的效验来判断此条消息的真实性。
此后每次开发者接收用户消息的时候微信也都会带上前面三个参数signature、timestamp、nonce访问开发者设置的URL开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。
下面的代码实现了输入一个返回当前时间的功能其中valid的方法是用于验证接口的responseMsg方法用于返回消息
?php
/*方倍工作室 http://www.cnblogs.com/txw1958/CopyRight 2013 www.fangbei.org All Rights Reserved
*/define(TOKEN, weixin);
$wechatObj new wechatCallbackapiTest();
if (isset($_GET[echostr])) {$wechatObj-valid();
}else{$wechatObj-responseMsg();
}class wechatCallbackapiTest
{public function valid(){$echoStr $_GET[echostr];if($this-checkSignature()){header(content-type:text);echo $echoStr;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;}}public function responseMsg(){$postStr $GLOBALS[HTTP_RAW_POST_DATA];if (!empty($postStr)){$postObj simplexml_load_string($postStr, SimpleXMLElement, LIBXML_NOCDATA);$fromUsername $postObj-FromUserName;$toUsername $postObj-ToUserName;$keyword trim($postObj-Content);$time time();$textTpl xmlToUserName![CDATA[%s]]/ToUserNameFromUserName![CDATA[%s]]/FromUserNameCreateTime%s/CreateTimeMsgType![CDATA[%s]]/MsgTypeContent![CDATA[%s]]/ContentFuncFlag0/FuncFlag/xml;if($keyword ? || $keyword ){$msgType text;$contentStr date(Y-m-d H:i:s,time());$resultStr sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}}else{echo ;exit;}}
}
?
第三步依据接口文档实现业务逻辑 这里就在于自己开发了