微信公众号开发实例详解微信公众号

07 实例讲解微信公众号开发-二维码信息识别

2016-12-31  本文已影响779人  yanndy

二维码信息识别

二位码现在随处可见,使用手机扫码可以非常方便获取到信息,减少手工输入的麻烦,每本书上也有二维码信息(图书上大部分是条形码信息),一般在书的背面。图书的条形码信息中主要包含了图书的ISBN,ISBN的具体含义说明请自行百度,这里不多介绍。

bookisbn.png

扫码消息格式

开发者文档中对扫码消息格式说明如下:
推送XML数据包示例:

<xml>
<ToUserName>
<![CDATA[gh_500c897fff56]]>
</ToUserName>
<FromUserName>
<![CDATA[ocYaSjoFCCS040XTfjQUiR2CLxw4]]
</FromUserName>
<CreateTime>1480516329</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event>
<![CDATA[scancode_waitmsg]]>
</Event>
<EventKey>
<![CDATA[rselfmenu_0_0]]>
</EventKey>
<ScanCodeInfo>
<ScanType>
<![CDATA[barcode]]>
</ScanType>
<ScanResult>
<![CDATA[EAN_13,9787540438845]]>
</ScanResult>
</ScanCodeInfo>
</xml>

参数说明:

参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 消息类型,event
Event 事件类型,scancode_waitmsg
EventKey 事件KEY值,是一个32位无符号整数,即创建二维码时的二维
ScanCodeInfo 二维码具体信息

调起微信测试号里面的扫码藏书菜单,扫描图书背面的条形码就可以获得图书的ISBN信息,其中前面7位是条形码的类型信息EAN_13,后面几位是具体的值。

这个地方只是简单的将这个值反馈给公众号界面,后续介绍怎么通过这个isbn获取图书的具体信息。

代码如下

private function receiveEvent($object) {
$content = "";
switch ($object->Event) {
case "subscribe":
$content = "欢迎关注wxbook公众号!";
break;
case "unsubscribe":
$content = "谢谢关注wxbook公众号!";
break;
case "scancode_waitmsg":
$isbn = substr($object->ScanCodeInfo->ScanResult, 7);
/*将isbn反馈到微信公众号上*/
$content = "isbn:".$isbn;
break;
default:
$content = "receive a new event: " . $object->Event;
break;
}
$result = $this->transmitText($object, $content);
return $result;
}

显示的结果如下:
qrcode.png
上一篇下一篇

猜你喜欢

热点阅读