随着微信公众平台的开放,微信营销推广也越发受到重视。现在企业越来越注重求职者是否拥有“微信公众平台接口开发”的经验。
现在参考资料介绍下微信公众平台接口开发模式:
一、微信公众平台账号注册
首先你得有个微信公众平台账号,注册地址:http://mp.weixin.qq.com/
二、上传代码
开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
参数 |
描述 |
signature |
微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp |
时间戳 |
nonce |
随机数 |
echostr |
随机字符串 |
加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
以下代码是消息接口认证代码,将下列PHP代码保存为index.php(其中的mytoken改为你想要的的token名称),并上传到HTTP服务器指定的目录中,
valid();
class wechatCallbackapiTest
{
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); //进行字典序排序
//sha1加密后与签名对比
if( sha1(implode($tmpArr)) == $signature ){
return true;
}else{
return false;
}
}
}
?>
或者直接下载微信的示例代码。地址 http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip
三、启用消息接口
进入微信公众平台,选择 设置 – 关键词自动回复 ,选择启用 ,点击 公众平台消息接口 旁边的 编辑,进入接口配置界面:
按照要求如实填写下列选项。特别注意是URL是你上传index.php的路径,必须以http://开头,且为80端口。
四、进入公众平台开发
验证URL有效性成功后即接入生效,成为开发者。如果公众号类型为服务号(订阅号只能使用普通消息接口),可以在公众平台网站中申请认证,认证成功的服务号将获得众多接口权限,以满足开发者需求。
此后用户每次向公众号发送消息、或者产生自定义菜单点击事件时,响应URL将得到推送。
公众号调用各接口时,一般会获得正确的结果,具体结果可见对应接口的说明。返回错误时,可根据返回码来查询错误原因。
用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID。
此外请注意,微信公众号接口只支持80接口。
展望微信营销
做微信营销的公司很多,但是真正做精做好的却太少了。
正如全国最大的微信公众服务平台微盟weimob的ceo孙涛勇所言:“虽然微信营销起点不算高,但是操作上有非常多的细节需要把控,企业自己没有专业的团队和人才想要做好微信服务,实现企业盈利,还是比较困难的,与我们洽谈的企业也尝试了一段时间,但都没有效果,所以想与我们专业的微信代运营公司合作。”
对于企业来说,如果没有专业的微信开发团队和相关运营人才,最好和这方面专业的公司合作,实现共赢。
谢谢关注
websites博客!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
前言 目前的几个项目,业务方基本都使用POST方式请求接口,我们本机磁盘会保留一份请求的原始参数用于请求分析和问题排查使用,一般有问题,也会基于seqid(请求唯一id)捞到日志,copy参数模拟请求看是否复现,但一直有个比较蛋疼的问题,PHP的$_POST,…