博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信开发示例(图片信息的发送)
阅读量:7086 次
发布时间:2019-06-28

本文共 2774 字,大约阅读时间需要 9 分钟。

概述

这是示例主要用来获取公众号和用户进行图片信息传递时的解析方法

源码

valid();} else { $wechatObj->responseMsg();}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; //微信token $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); //对数组进行排序 $tmpStr = implode($tmpArr); //将一个一维数组的值转化为字符串 $tmpStr = sha1($tmpStr); //计算字符串的 sha1 散列值 if ($tmpStr == $signature) { return true; } else { return false; } } //发送信息 public function responseMsg() { /** * 基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的, * 你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等 */ $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); //用户发送的消息内容 $PicUrl = $postObj->PicUrl; //存储用户发来的图片链接地址,通过这个地址可以将图片另存为本地。 $MsgType = $postObj->MsgType; //消息的类型 $MediaID = $postObj->MediaId; //图片消息媒体ID,根据这个值,可以发送图片信息 $CreateTime = intval($postObj->CreateTime); //消息的创建时间,并且把这个时间转换成整数。 $formTime = date("Y-m-d H:i:s",$CreateTime); //返回给微信服务器的模版 $textTpl = "
%s
0
"; $time = time(); if ($MsgType == "image") { $msg = "开发者id: ".$toUsername."\n"; $msg .= "用户id: ".$fromUsername."\n"; $msg .= "消息id: ".$MsgId."\n"; $msg .= "消息发送过来的时间戳: ".$CreateTime."\n"; $msg .= "消息类型: ".$MsgType."\n"; $msg .= "图片消息链接地址 : ".$PicUrl."\n"; $msg .= "图片消息媒体的id :".$MediaID."\n"; $contentStr = $msg; $msgType = "text"; $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo $resultStr; exit; } } else { exit; } }}?>

转载地址:http://ldwql.baihongyu.com/

你可能感兴趣的文章
12月5日学习内容整理:Django的MTV模型,路由系统,请求对象和响应对象,模版语法的补充...
查看>>
找“1”的个数
查看>>
1389 乘积平均数
查看>>
小白的进阶之路9
查看>>
Microsoft Security Essentials
查看>>
Winfrom 提示消息框公共类
查看>>
深度解读 - Windows 7核心图形架构细致分析(转贴)
查看>>
[leetcode-92-Reverse Linked List II]
查看>>
Qt读写Json格式配置文件
查看>>
Cannot change version of project facet Dynamic web module to 2.5
查看>>
Excel 点滴积累
查看>>
写一个函数,能获取文件后缀
查看>>
HDU 4349 Xiao Ming's Hope 找规律
查看>>
原生JS编写getByClass、addClass、removeClass、hasClass
查看>>
svn老鸟转用git必须理解的概念
查看>>
wechat-注意事项
查看>>
Element-diag中遮罩
查看>>
【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!...
查看>>
在SUSE LINUX中如何用命令行关闭防火墙?
查看>>
IdentityServer4之Clients、Scopes、Claims与Token关联
查看>>