微信开发者配置微信服务器
2018-04-07 21:36
127 查看
初学微信二次开发首先我们要接入微信公众平台。我们首先要有一个开发微信的第三方平台。这个平台可以是自己写的代码,也可以使用已经发布的一些平台。我们选择用自己的域名和虚拟主机,来自己开发。
在域名和虚拟主机可以使用的情况下我们要完成三步:
填写服务器配置。
验证服务器地址的有效性。
依据接口实现业务逻辑。(暂时忽略)
填写服务器配置:
我们登录微信公众平台之后,找到开发者工具,打开公众平台测试账号。测试账号有一个接口配置信息。我们需要完全正确的填写才能配置成功。首先URL:此处的URL为开发者用来接收微信消息和事件的接口URL。Token:这是一个很重要的,由开发者任意填写,用作生成签名(该Token会和接口URL中包含的Token进行对比,从而验证安全性)。
验证消息是否来自微信:
微信服务器将发送GET请求到填写的服务器地址URL上。会携带4个参数,分别是signature,timestamp,nonce,echostr.将token,timestamp,nonce三个参数进行排序,将三个参数字符串拼接成一个字符串进行sha1加密,开发者获得加密后的字符串可与Signature对比。开发者通过检验signature对请求进行校验若确认此次请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者否则接入失败。<?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 , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>
我的域名是cjiele.top将上边的php文件放到了wx文件夹下名字为wx_sample.php。
这样我们就可以配置成功了。我们就走出了开发者的第一步。
我们可以在代码中加入自动回复功能这样我们就可以在公众号中收到回复了,这是一个自动回复代码。回复中的内容是xml类型的。 public function responseMsg()
{
//get post data, May be due to the different environments
// $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
$postStr=file_get_contents("php://input");
//extract 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 = "<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!";
$contentStr =$this->gjz($keyword);
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
exit;
}
}
public function gjz($keyword){
if ($keyword==="天气") {
$contentStr = "今天有雨!";
return $contentStr;
}else if($keyword==="你好"){
$contentStr = "你好呀!";
return $contentStr;
}else{
$contentStr = "对不起暂时不识别!";
return $contentStr;
}
}接下来我们就可以扫描测试号二维码,试着发一句自动回复吧。
在域名和虚拟主机可以使用的情况下我们要完成三步:
填写服务器配置。
验证服务器地址的有效性。
依据接口实现业务逻辑。(暂时忽略)
填写服务器配置:
我们登录微信公众平台之后,找到开发者工具,打开公众平台测试账号。测试账号有一个接口配置信息。我们需要完全正确的填写才能配置成功。首先URL:此处的URL为开发者用来接收微信消息和事件的接口URL。Token:这是一个很重要的,由开发者任意填写,用作生成签名(该Token会和接口URL中包含的Token进行对比,从而验证安全性)。
验证消息是否来自微信:
微信服务器将发送GET请求到填写的服务器地址URL上。会携带4个参数,分别是signature,timestamp,nonce,echostr.将token,timestamp,nonce三个参数进行排序,将三个参数字符串拼接成一个字符串进行sha1加密,开发者获得加密后的字符串可与Signature对比。开发者通过检验signature对请求进行校验若确认此次请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者否则接入失败。<?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 , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>
我的域名是cjiele.top将上边的php文件放到了wx文件夹下名字为wx_sample.php。
这样我们就可以配置成功了。我们就走出了开发者的第一步。
我们可以在代码中加入自动回复功能这样我们就可以在公众号中收到回复了,这是一个自动回复代码。回复中的内容是xml类型的。 public function responseMsg()
{
//get post data, May be due to the different environments
// $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
$postStr=file_get_contents("php://input");
//extract 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 = "<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!";
$contentStr =$this->gjz($keyword);
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
exit;
}
}
public function gjz($keyword){
if ($keyword==="天气") {
$contentStr = "今天有雨!";
return $contentStr;
}else if($keyword==="你好"){
$contentStr = "你好呀!";
return $contentStr;
}else{
$contentStr = "对不起暂时不识别!";
return $contentStr;
}
}接下来我们就可以扫描测试号二维码,试着发一句自动回复吧。
相关文章推荐
- 微信小程序,配置服务器地址的步骤及配置过程中遇到的问题和解决方案
- 开发者接入 基本配置 服务器配置 out.aspx
- 微信服务器在填写服务器的配置返回token验证失败
- C#微信开发(服务器配置)
- 微信服务器接口配置程序
- 微信公众帐号 服务器配置 代码
- 微信验证开发者代码,解决微信请求URL超时,你的服务器没有正确响应Token验证,请阅读消息接口使用指南
- 微信公众平台开发者中心服务器配置Token验证失败问题
- 微信小程序服务器配置https站点
- 微信公众平台开发者中心服务器配置Token验证失败问题
- Java微信开发-服务器配置等信息-
- 开发企业微信之接收消息服务器配置
- 微信开发者模式配置
- 在CentOS7阿里云服务器部署ThinkPHP5,并配置phpstrom实现同步开发(微信小程序及管理员后端)
- 微信公众平台开发者中心服务器配置Token验证失败问题
- 微信小程序购买配套的腾讯云服务器配置php文件方法
- 微信端服务器配置
- 微信开发之3-启用开发者模式,查看开放接口配置封装接口
- 用c#开发微信(1)服务号的服务器配置和企业号的回调模式 - url接入 (源码下载)
- 微信开发服务器配置环境