先说怎么用,然后使用成功了自己研究代码,驱动式学习多好。首先将这个PHP程序的文件放在你 自己的服务器里面注意php程序里的APP_ID的值改成你自己的appid。还有APP_SECRET 的值改成你自己的appSecret。还有记好配置的token令牌,等会配置用到。然后打开消息推送在小程序后台“开发”->“开发设置”->下拉有一个消息推送,打开。服务器地址填写这个PHP文件的位置https://**********.phpTOKEN(令牌) —-这里随便写,反正与PHP程序里的开头那里我 的是dertertsdfdefine(“TOKEN”,“dertertsdf”);//自己设置的Token密钥随机生成然后模式选兼容模式接受类型选“XML”这是配置,然后如果你急着提交会发现“taken(令牌) 失效”。。。。。就对了验证在250行左右有一个代码,这是验证用的,因为当你打开消息推送的时候腾讯的服务器会给你写的地址发送一个请求进行验证只有你返回正确的信息才能验证成功,提交才不会出现“taken(令牌) 失效”字样。然后才会提交成功,所以当提交时不要注释PS:建议把绑定的客服都解绑,因为我发现有时候会出现bug,会把用户联系 客服的消息转发给客服了不发送给服务器也就是自动回复那里收不到。//注意:第一步验证时打开,验证完成之后就可以注释了//$wechatObj->isValid();修改顺利完成了上面的步骤后你打开客服应该会有自动打招呼了。然后就自己看代码发挥了,对应封装一个$data变量调用官方文档说的发送接口就可以了如果想发送图片,需要先把图片发送给腾讯服务器,然后腾讯服务器会返回一个媒体的ID,用这个ID调用发送接口就可以了。程序里我也写好了输入上传图片地址返回ID的函数了。不过我偷懒直接调用系统指令curl,所以需要PHP的shell_exec()这个函数。为了安全起见这个函数一般默认禁用的,所以需要在php配置文件里该一下,百度就可以。over下面时所有代码。可以直接复制粘贴用【手动滑稽】<?php define(“TOKEN”,”dertertsdf”);//自己设置的Tokenclass wechatAPI{ const APP_ID = ‘wx***********’; //你自己的appid const APP_SECRET = ‘017ec3*****************’;//你自己生成的appSecret //用于小程序第一步验证返回 public function isValid(){ $echoStr = $_GET[“echostr”]; if ($this->checkSignature()) { echo $echoStr; exit; } } public function checkSignature(){ $signature = $_GET[“signature”]; $timestamp = $_GET[“timestamp”]; $nonce = $_GET[“nonce”]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } public function send($data){ $url = “https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=”.$this->getAccessToken(); $data = urldecode(json_encode($data)); $this->curl_post($url,$data); } //xml数据转数组 public function xml2Array($contents = NULL, $encoding = ‘UTF-8’, $get_attributes = 1, $priority = ‘tag’){ if (!$contents) { return array(); } if (!function_exists(‘xml_parser_create’)) { return array (); } $parser = xml_parser_create(”); xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $encoding); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, trim($contents), $xml_values); xml_parser_free($parser); if (!$xml_values) return array(); $xml_array = array (); $parents = array (); $opened_tags = array (); $arr = array (); $current = & $xml_array; $repeated_tag_index = array (); foreach ($xml_values as $data) { unset ($attributes, $value); extract($data); $result = array (); $attributes_data = array (); if (isset ($value)) { if ($priority == ‘tag’) $result = trim($value); else $result[‘value’] = trim($value); } if (isset ($attributes) && $get_attributes) { foreach ($attributes as $attr => $val) { if ($priority == ‘tag’) $attributes_data[$attr] = $val; else $result[‘attr’][$attr] = $val; //Set all the attributes in a array called ‘attr’ } } if ($type == “open”) { $parent[$level -1] = & $current; if (!is_array($current) || (!in_array($tag, array_keys($current)))) { $current[$tag] = $result; if ($attributes_data) $current[$tag . ‘_attr’] = $attributes_data; $repeated_tag_index[$tag . ‘_’ . $level] = 1; if (isset($tag) && $tag && isset($current[$tag])) { $current = & $current[$tag]; } } else { if (isset ($current[$tag][0])) { $current[$tag][$repeated_tag_index[$tag . ‘_’ . $level]] = $result; $repeated_tag_index[$tag . ‘_’ . $level]++; } else { $current[$tag] = array ( $current[$tag], $result ); $repeated_tag_index[$tag . ‘_’ . $level] = 2; if (isset ($current[$tag . ‘_attr’])) { $current[$tag][‘0_attr’] = $current[$tag . ‘_attr’]; unset ($current[$tag . ‘_attr’]); } } $last_item_index = $repeated_tag_index[$tag . ‘_’ . $level] – 1; $current = & $current[$tag][$last_item_index]; } } elseif ($type == “complete”) { if (!isset ($current[$tag])) { $current[$tag] = $result; $repeated_tag_index[$tag . ‘_’ . $level] = 1; if ($priority == ‘tag’ && $attributes_data) {
微信小程序客服自动回复——PHP实现
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序客服自动回复——PHP实现
最新评论
不错的小程序案例
优秀的团队,不错的服务!
讲的很好
主播长的帅气
好系统好服务
优秀的团队
好服务,值得信赖
不错的服务