对接流程
1、申请微信公众号测试账号
URL:https://mp.weixin.qq.com/debu...
2、登录,配置开发者服务器URL和Token
开发者服务器配置代码:
config.php
<?php
define("TOKEN", "weixin"); //TOKEN值
$wechatObj = new wechat();
$wechatObj->valid();
class wechat {
public function valid() {
$echoStr = $_GET["echostr"];
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;
}
}
}
?>
URL是config.php在你服务器的URL
Token是上面代码自己设置的Token
搞定之后,就能完成接口配置的绑定。
开发
清空config.php的代码,粘贴下方代码,保存。
<?php
// 页面编码
header("Content-type:text/html;charset=utf-8");
// 接收用户发送过来的XML消息
$postStr = file_get_contents('php://input');
// 使用SimpleXML进行解析XML
$postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
// 消息发送方
$fromUsername = $postObj->FromUserName;
// 公众号
$toUsername = $postObj->ToUserName;
// 内容
$content = trim($postObj->Content);
// 消息类型
$msgType = $postObj->MsgType;
// 时间戳
$time = time();
// 文本消息XML模板
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
// 图片消息XML模板
$imageTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Image>
<MediaId><![CDATA[%s]]></MediaId>
</Image>
</xml>";
// 图片素材ID
$media_id = "GHYb4PhayrbCAWgHCwkBQIAg_b46UI0Dl-xJukV-XoryFMp-t5c50_VqyId074_U";
// 图文消息XML模板
$newsTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
</Articles>
</xml>";
// 根据关键词恢复
if($content == '你好'){
// 将文本消息发送给用户
echo sprintf($textTpl,$fromUsername,$toUsername,$time,"text",$content);
}else if($content == '图片'){
// 将图片消息发送给用户
echo sprintf($imageTpl,$fromUsername,$toUsername,$time,"image", $media_id);
}else if($content == '图文'){
// 将图文消息发送给用户
echo sprintf($newsTpl,$fromUsername,$toUsername,$time,"news","这是一篇图文卡片消息","只需向公众号发送一条消息即可生成卡片!","https://d1.faiusr.com/2/AAEIABACGAAg_vuznQYogr-b2gIwuAg4uAg.jpg","https://www.qq.com");
}
?>
体验
希望帮到您。
WeChat:sansure2016
Web:likeyunba.com
Date:2019-12-20
Author:Tanking
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。