2016-06-23 11:04:06 szk2021 阅读数 7400
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27832 人正在学习 去看看 秦子恒

微信自动回复图片 api标准接口的 php代码

实现的功能:客户在公众号上回复关键字,公众号自动回复一张图片

在微信开发的页面上,设置好触发的关键词,及触发后跳转到指定的接口地址,如http://www.aaa.com/picture.php

然后在网站服务器上创建picture.php文件,文件代码如下:

<?php
$wechatObj = new wechat();
$wechatObj->responseMsg();
class wechat {
        public function responseMsg() {

                //---------- 接 收 数 据 ---------- //

                $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取POST数据

                //用SimpleXML解析POST过来的XML数据
                $postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);

                $fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID)
                $toUsername = $postObj->ToUserName; //获取接收方账号
                $keyword = trim($postObj->Content); //获取消息内容
                $time = time(); //获取当前时间戳


                //---------- 返 回 数 据 ---------- //

                //返回消息模板
                $textTpl = "<xml>
                <ToUserName><![CDATA[%s]]></ToUserName>
                <FromUserName><![CDATA[%s]]></FromUserName>
                <CreateTime>%s</CreateTime>
                <MsgType><![CDATA[%s]]></MsgType>
                <Image>
                <MediaId><![CDATA[%s]]></MediaId>
                </Image>
                <FuncFlag>0</FuncFlag>
                </xml>";

                $msgType = "image"; //消息类型
                $contentStr = '填写你上传图片的MediaID'; //返回消息内容

                //格式化消息模板
                $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
                echo $resultStr; //输出结果
        }
}
?>

这样,在微信服务号上输入对应的关键字,服务号上就会返回对应的图片。

MediaID的获取方法:
登陆微信公众平台->开发者工具->在线接口调试工具
接口类型选:基础支持
先获取access_token
access_token每次登陆都会变更

获取access_token后,接口列表选择多媒体文件上传接口
填入access_token,type选择image,media选择要回复的图片,图片上传成功后,就会返回一个MediaID,把它填入上面的代码中就可以了。

2016-01-07 19:05:50 hoho_12 阅读数 500
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27832 人正在学习 去看看 秦子恒
<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
	public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
        	echo $echoStr;
        	exit;
        }
    }

    public function responseMsg()
    {
		//get post data, May be due to the different environments
		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

      	//extract post data
		if (!empty($postStr)){
                /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                   the best way is to check the validity of xml by yourself */
                libxml_disable_entity_loader(true);
              	$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
            
             	$type=$postObj->MsgType;
				$customevent=$postObj->Event;
            
                $latitude=$postObj->Location_X;
			    $longitude=$postObj->Location_Y;
            
                $textTpl = "<xml>
							<ToUserName><![CDATA[%s]]></ToUserName>
							<FromUserName><![CDATA[%s]]></FromUserName>
							<CreateTime>%s</CreateTime>
							<MsgType><![CDATA[%s]]></MsgType>
							<Content><![CDATA[%s]]></Content>
							<FuncFlag>0</FuncFlag>
							</xml>"; 
            //发送位置回复
            if($type=="location"){
                $contentStr="你的纬度是($latitude),经度是($longitude),我已经锁定!";
                $msgType = "text";
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;
                }  
            
               
           
            
            //关键字回复
            	if(!empty( $keyword ))
                {
              		$msgType = "text";
                    if($keyword=="1") {                       
                        $contentStr = "感谢关注泛IT!";}
                    if($keyword=="2") {
                        $contentStr = "联系QQ:,欢迎投稿以及提出宝贵意见";}
                    if($keyword=="3") {                       
                        $contentStr = "你的图片不错,还是输入文字吧!";}
                	$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;
                }else{
                	echo "Input something...";
                }
            
             
            //关注公众号后回复
               if($type="event" and $customevent="subscribe"){
                $contentStr="感谢关注泛IT\n您可以分别回复1、2、3";
                $msgType = "text";
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;
                }
            
             
             //图片回复
                if($type="image"){
                $contentStr="你的图片很棒!";
                $msgType = "text";
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;
                }  
//switch语句优化
<pre name="code" class="php"> /*
            		switch($type)
				{    
                        //处理文本
                        case "text":
                        //关键字回复
                        if(!empty( $keyword ))
                        {
                             //$msgType = "text";
                            if($keyword=="1") {                       
                            $contentStr = "回复1查看使用说明\n回复2查看联系方式\n回复3使用翻译字典\n回复4使用机器人聊天功能";}
                            if($keyword=="2") {
                            $contentStr = "联系QQ:,欢迎投稿以及提出宝贵意见";}
                         }else{                	
							$contentStr="此项功能尚未开发"; }                        
						break; 
                        //处理图片信息
                         case "image":
					$contentStr="你的图片不错,还是输入文字吧";
                        break;
                        //处理位置信息
                         case "location":
					$contentStr="你的纬度是($latitude),经度是($longitude),我已经锁定!";
					break;
                        //处理关注事件
                         case "event":
					if($customevent=="subscribe")
					{$contentStr="感谢关注泛IT\n回复1查看使用说明";}
					break;
                            default:
							$contentStr="此项功能尚未开发";						                       
                    }
            			$msgType = "text";
                        $resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
						echo $resultStr;                      
                        */

}else { echo ""; exit; }
 }
 private function checkSignature()
{ // you must define TOKEN by yourself if (!defined("TOKEN")) { throw new Exception('TOKEN is not defined!'); } $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN;$tmpArr = array($token, $timestamp, $nonce); // use SORT_STRING rulesort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}}?>




2018-04-19 20:17:45 chy_php 阅读数 1248
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27832 人正在学习 去看看 秦子恒

这篇文章主要为大家详细介绍了PHP微信开发之简单实现文本,图片以及图文自动回复的相关资料。

首先,先去微信公众平台注册一个账号,注册好之后,登录进去。可以看到左侧的“开发者中心”,开启开发者中心前好像还要你完善一些资料,按照步骤完善即可。进入开发者中心之后,先去编辑修改配置,修改配置的时候,注意:URL是你自己的域名下的PHP脚本。Token是上述脚本里的定义的一个常量,比如你的PHP脚本里定义了: define("TOKEN", "weixin");  那么,在填写Token时,你就填weixinEncodingAESKey是消息加密用。你可以自己写一个43为的数字和字母的组合,也可以选择“随机生成”,一般选择随机生成即可。填好之后,保存(如果保存时,提示Token验证失败,那么请确认token一致并多点几次保存试试)。 保存好之后,点击修改配置旁的:“开启”。然后,就可以编辑你的PHP脚本了。(如果你没有自己的域名,可以去阿里云官网买一个,并最好完成实名认证)。

我使用了Think PHP框架layui前端框架和Lanwechat(PHP微信开发框架)。

首先新建文件夹为控制器Autoreply.class.php,。

控制器添加文本回复参考代码如下:(新建添加页面addreplytext.html。)
//添加自动回复文本
	public function addreplytext(){
		if(IS_GET){
			$this->display();
		}
		$mp=getCurrentMp();
		$content=I('post.');
		$model=M('mp_reply_text');
		
		if($model->create()){
			$result=$model->add($content);
			// $this->success('添加成功');
			// exit;
			$user=M('mp_rule');
			$replyid=$result;
			$keyword=I('post.');
			$keyword['mp_id']=$mp['id'];
			$keyword['reply_id']=$result;
			$keyword['type']='text';
			if($user->create()){
				$result1=$user->add($keyword);
                 if($result1){
                 	$this->success('添加成功');
                 }else{
                 	$this->error('添加失败');
                 }
			}else{
				$this->error($user->getError());
			}

		}
	}

页面样式如下:

控制器添加回复图片参考代码如下:(新建添加页面addreplyimage.html。)

//文件上传
	public function upload(){
		$upload=new \Think\Upload();//实例化上传类
		$upload->maxSize=3145728;
		$upload->exts=array('jpg','gif','png','jpeg');
		$upload->rootPath='./Uploads/';
		$upload->savePath='';
		//上传文件
		$info=$upload->uploadOne($_FILES['file']);
		if(!$info){
			// $this->error($upload->getError());
			$this->ajaxReturn(array('code'=>1,'msg'=>$upload->getError()));
		}else{
			// $this->success('长传成功!');
			$file='/Uploads/'.$info['savepath'].$info['savename'];
			$this->ajaxReturn(array('code'=>0,'msg'=>'上传成功','url'=>$file));
		}
	}
//添加自动回复图片
	public function addreplyimage(){

		if(IS_GET){
			$this->display();
			exit;
		}
		$keyword=I('post.keyword');
		$media_id=I('post.media_id');
		$url=I('post.url');
		if(empty($keyword)|| empty($url)){
			$this->ajaxReturn(array('status'=>0,'msg'=>'必须输入关键字和选择图片'));
			exit;
		}

		//选择本地图片,需上传到公众平台
		if(empty($media_id)){
			$accessToken=getAccess_token();
			include APP_PATH . 'LaneWeChat/lanewechat.php';

			//上传永久图片
			$api="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";

			$file=realpath('.'.$url);
			$data['media']=Curl::addFile($file);
			$ret=Curl::callWebServer($api,$data,'post',1,0);
            // $this->ajaxReturn($ret);
            // exit;
			//上传成功
			if(isset($ret['media_id'])){
				$media_id=$ret['media_id'];
				$url=$ret['url'];
			}else{
				$ret['fail']='本地图片上传公众平台失败';
				$this->ajaxReturn(array('status'=>1,'msg'=>$ret));
				exit;
			}
		}

		$data['media_id']=$media_id;
		$data['url']=$url;
		$reply_id=M('mp_reply_image')->add($data);
		$mp=getCurrentMp();
		$mp=$this->mp;
		$arr['mp_id']=$mp['id'];
		$arr['type']='image';
		$arr['keyword']=$keyword;
		$arr['reply_id']=$reply_id;
		$ret=M('mp_rule')->add($arr);
		if($ret){
			$this->ajaxReturn(array('status'=>1,'msg'=>'添加成功'));
		}else{
			$this->ajaxReturn(array('status'=>1,'msg'=>'添加失败'));
		}
	}

控制器添加回复图文参考代码如下:(新建添加页面addreplynews.html。)

//回复图文
	public function addreplynews(){
		if(IS_GET){
			$this->display();
			exit;
		}
		$keyword=I('post.keyword');
		$title=I('post.title');
		$media_id=I('post.media_id');
		$content=I('post.content');
		$picurl=I('post.content_source_url');
		$url=I('post.url');
		if(empty($keyword)|| empty($url)){
			$this->ajaxReturn(array('status'=>0,'msg'=>'必须输入关键字和选择图片'));
			exit;
		}

		//选择本地图片,需上传到公众平台
		if(empty($media_id)){
			$accessToken=getAccess_token();
			include APP_PATH . 'LaneWeChat/lanewechat.php';

			//上传永久图片
			$api="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";

			$file=realpath('.'.$url);
			$data['media']=Curl::addFile($file);
			$ret=Curl::callWebServer($api,$data,'post',1,0);
            // $this->ajaxReturn($ret);
            // exit;
			//上传成功
			if(isset($ret['media_id'])){
				$media_id=$ret['media_id'];
				$url=$ret['url'];
			}else{
				$ret['fail']='本地图片上传公众平台失败';
				$this->ajaxReturn(array('status'=>1,'msg'=>$ret));
				exit;
			}
		}

		$data['media_id']=$media_id;
		$data['title']=$title;
		$data['picurl']=$url;
		$data['description']=$content;
		$data['url']=$picurl;
		$reply_id=M('mp_reply_news')->add($data);
		$mp=getCurrentMp();
		$mp=$this->mp;
		$arr['mp_id']=$mp['id'];
		$arr['type']='news';
		$arr['keyword']=$keyword;
		$arr['reply_id']=$reply_id;
		$ret=M('mp_rule')->add($arr);
		if($ret){
			$this->ajaxReturn(array('status'=>1,'msg'=>'添加成功'));
		}else{
			$this->ajaxReturn(array('status'=>1,'msg'=>'添加失败'));
		}

	}

图文页面如下:
图文页面参考代码如下:

<form class="layui-form" action="{:U('addreplyimage')}" style="padding-right: 10px;" method="post">
    <div class="layui-form-item">
        <label class="layui-form-label">关键词</label>
        <div class="layui-input-block">
            <input type="text" name="keyword" required  lay-verify="required"   placeholder="请输入关键词" autocomplete="off" class="layui-input">
        </div>
    </div>
   <div class="layui-form-item">
        <label class="layui-form-label">回复图片</label>
        <div class="layui-input-block">
            <input type="hidden" id="media_id" name="media_id">
            <input type="hidden" id="url" name="url">
            <img src="" id="img_logo" width="100" height="100" />
            <button type="button" class="layui-btn" id="btn_upload">
              <i class="layui-icon"></i>选择本地图片
            </button>
            <button type="button" class="layui-btn" id="btn_select">
              <i class="layui-icon"></i>选择素材库中图片
            </button>
        </div>
   </div>
    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="SBT">提交</button>
            <a href="{:U('keywords',['type'=>'image'])}" class="layui-btn layui-btn-primary">返回</a>
        </div>
    </div>
</form>
以上就是本文的全部内容,希望对大家的学习有所帮助,感谢您的浏览。
2015-10-26 12:19:42 misakaqunianxiatian 阅读数 816
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27832 人正在学习 去看看 秦子恒

首先,你需要去有道翻译API官网去申请key:http://fanyi.youdao.com/openapi?path=data-mode

得到key之后,就可以开始从该API获得查询的数据了


下面我直接把responseMsg方法里,实现翻译的代码给出。如果你第一次接触微信API,不懂这个方法是干什么的,可以参考:PHP微信开发--简单文本回复


   public function responseMsg(){
       
	//get post data, May be due to the different environments
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信发来的XML数据

      	//extract post data
		if(!empty($postStr)){
                
            //解析post来的XML为一个对象$postObj
        	$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        
        	$fromUsername = $postObj->FromUserName; //请求消息的用户
        	$toUsername = $postObj->ToUserName; //"我"(订阅号)的公众号id
        	$keyword = trim($postObj->Content); //用户发给订阅号的消息内容
            $time = time(); //时间戳
            $msgtype = 'text'; //消息类型:文本
            $textTpl = "<xml>
						<ToUserName><![CDATA[%s]]></ToUserName>
						<FromUserName><![CDATA[%s]]></FromUserName>
						<CreateTime>%s</CreateTime>
						<MsgType><![CDATA[%s]]></MsgType>
						<Content><![CDATA[%s]]></Content>
						</xml>";

            if($postObj->MsgType == 'event'){ //如果XML信息里消息类型为event
                if($postObj->Event == 'subscribe'){ //如果是订阅事件
                    $contentStr = "欢迎订阅misaka去年夏天!\n更多精彩内容:http://blog.csdn.net/misakaqunianxiatian";
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
                    echo $resultStr;
                    exit();
                }
            }

            $which = mb_substr($keyword, 0, 2, 'UTF-8');//获取要返回什么样的信息

            if($which== "翻译"){ //如果要进行翻译
                $fanyi = $which;
                $search = str_replace($fanyi, '', $keyword); //要翻译的关键字

                $key = ""; //在有道API申请的key
                $keyfrom = ""; //与key对应
                $url = 'http://fanyi.youdao.com/openapi.do?keyfrom=' . $keyfrom . '&key=' . $key . '&type=data&doctype=json&version=1.1&q=' . urlencode($search);//调用有道翻译API
                
                $json = file_get_contents($url);//也可以用curl来获取
                $res = json_decode($json, true);

                /**
                 * 以下从返回的数据中提取翻译结果
                 */
                $contentStr = '【查询】' . $res['query'] . "\n";
                $contentStr .= "【翻译】\n" . $res['translation'][0] . "\n";

                $str = '';
                foreach($res['basic']['explains'] as $v){
                    $str .= $v . "\n";
                }
                $contentStr .= "【基本释义】\n" . $str;


                if(isset($res['web'])){

                    foreach($res['web'] as $kk=>$vv){
                        sort($vv);
                        $res['web'][$kk] = $vv; //调节字段顺序
                    }

                    $str = '';
                    foreach($res['web'] as $v){
                        foreach($v as $k2=>$v2){
                            if($k2 == 0){
                                $str .= "【". $v2 ."】\n";
                            }else{
                                foreach($v2 as $v3){
                                    $str .= $v3 ."\n";
                                }
                            }
                        }
                    }
                    $contentStr .= "【网络释义】\n" . $str;                   
                }

                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
                echo $resultStr;
                exit(); 

            }


注:关注的订阅号返回的信息里要换行,要使用“\n”。在你的网站空间里,将你的代码修改一下,就可以给订阅号发送比如“翻译汉堡包”,订阅号会调用有道的API来返回翻译结果,可以中英文互译,也可以是句子。

2017-08-23 21:19:27 mengdc 阅读数 313
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27832 人正在学习 去看看 秦子恒
a.php
回复消息
<?php
file_put_contents('post.log',$GLOBALS['HTTP_RAW_POST_DATA']);//测试是否  接受post提交过来的数据写如到文件
$msg=$GLOBALS['HTTP_RAW_POST_DATA'];
$msgstr=(array)simplexml_load_string($msg, 'SimpleXMLElement', LIBXML_NOCDATA);
//对象强制转换数组(array)simplexml_load_string();
//写日志文件
//file_put_contents(time().rand(100,999).".log",file_get_contents("php://input"));
$com=com($msgstr);
$mp='http://59.110.153.61/wx/ll.mp3';
if($msgstr['MsgType']=='text'){
    //文本信息
    echo "<xml>
        $com
        <MsgType><![CDATA[text]]></MsgType>
        <Content><![CDATA[你好]]></Content>
        </xml>";exit;
}elseif($msgstr['MsgType']=='image'){
    //         {$msgstr['MediaId']}
//        <MediaId><![CDATA[{$msgstr['MediaId']}]]></MediaId>
    //        <MediaId><![CDATA[eYctzRtkNaSYYSjb-MdjBi_Fqehd3mwmWfU83RjGCIlJ_Xqt8TKKA7yMDXEmsbB1]]></MediaId>

    //图片信息
    echo "<xml>
        $com
        <MsgType><![CDATA[image]]></MsgType>
         <Image>
        <MediaId><![CDATA[8kQ2AH6Fgy88-Bf8_hG0i9_96DLbMSZp7aRpJuTHD1o]]></MediaId>
        </Image>
        </xml>";exit;
}elseif($msgstr['MsgType']=='voice'){
    //语音信息
    echo "<xml>
        $com
        <MsgType><![CDATA[voice]]></MsgType>
        <Voice>
        <MediaId><![CDATA[{$msgstr['MediaId']}]]></MediaId>
        </Voice>
    </xml>";exit;
}elseif($msgstr['MsgType']=='video'){
   //回复视频
    echo "<xml>
        $com
        <MsgType><![CDATA[video]]></MsgType>
        <Video>
        <MediaId><![CDATA[1VkhJyhTjbIz9ZL-7EPCMsLgS05FlGX86iOFgI_Bm7tTmGUqOpqQAXdn5VEUedAy]]></MediaId>
        <Title><![CDATA[不容易阿]]></Title>
        <Description><![CDATA[总算出来了]]></Description>
        </Video>
        </xml>";exit;

}elseif($msgstr['MsgType']=='file'){
    //回复音乐
    $musicTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Music>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<MusicUrl><![CDATA[%s]]></MusicUrl>
<HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
</Music>
</xml>";
    $msgType = "music";
    $time = time();

    $title = "断桥残雪";
    $description = "送给大家希望喜欢.";
    $musicUrl = "http://59.110.153.61/wx/ll.mp3";
    $resultStr = sprintf($musicTpl, $msgstr['FromUserName'], $msgstr['ToUserName'], $time, $msgType, $title, $description, $musicUrl, $musicUrl);
    echo $resultStr;
}

//公共头部
function com($msgstr){
    $str="
        <ToUserName><![CDATA[{$msgstr['FromUserName']}]]></ToUserName>
        <FromUserName><![CDATA[{$msgstr['ToUserName']}]]></FromUserName>
        <CreateTime>".time()."</CreateTime>";
    return $str;
}


die;
//var_dump(file_get_contents('http://59.110.153.61/wx/wx.php?signature=074bb9248377cde0218070a179879ee5550fa4f4&echostr=17014199334721273851&timestamp=1503374267&nonce=3278934949'));die;
/*var_dump(file_get_contents('http://taoo.ngrok.cc/wx/weixin.php?signature=24e2057c4840d2af899657a1ab494af80d161af9&echostr=457723958504712317&timestamp=1503316092&nonce=2054069204'));
die;*/
//file_put_contents("1.txt",json_encode($_GET));//必须手动配置成功是自动把值写入到1.txt里面,否则文件值为空
define("TOKEN","weixin1");//必须是字母加数字
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];

$tmpArr = array(TOKEN,$timestamp,$nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
//file_put_contents("2.txt", $tmpStr);//写入字符串
    if($tmpStr == $signature){
        echo $_GET['echostr'];
        exit;
    }else{
        echo 0;
    }
?>

b.php
自定义菜单,新增临时素材
<?php


$token=@file_get_contents('token.log');
//print_r($token);die;
if($token){
    $token=json_decode($token,true);

    if(time()-$token['time']>7100){

        $token=gettoken();
    }
}else{
    $token=gettoken();
}

//新增永久素材  //如果是语音type=voiceimage可以。/视频=video
//$sucai="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={$token['access_token']}&type=image";
//$sucai="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={$token['access_token']}&type=video&title=VIDEO_TITLE&introduction=INTRODUCTION";
$sucai="https://api.weixin.qq.com/cgi-bin/media/upload?access_token={$token['access_token']}&type=video";//临时的素材可以永久的不行
//图片地址
//$img=dirname ( __FILE__ ).'b.jpg';
//视频地址
$img='1.mp4';
$res=curla($sucai,$img);
//file_put_contents('img'.time().'.log',file_get_contents($sucai));
var_dump($res);die;
function curla($sucai,$img){
    $ch = curl_init();
    //判断curl类的扩展是否存在可用
    if(class_exists('CURLFile')){
        //存在就new
        curl_setopt($ch,CURLOPT_SAFE_UPLOAD,true);
        $data=array('media'=>new \CURLFile(realpath($img)));//必须加上realpath()否则读取不到文件的路径
//        $data['title']='123456';
    }else{
        //不存在
        if(defined('CURLOPT_SAFE_UPLOAD')){
            curl_setopt($ch,CURLOPT_SAFE_UPLOAD,false);
        }
        //realpath读取文件的所在的地址
        $data=array('media'=>"@".realpath($img));
    }
    curl_setopt($ch, CURLOPT_URL, $sucai);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //请求https协议时必须加上重点ssl安全验证
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

    // post数据
    curl_setopt($ch, CURLOPT_POST, 1);
    // post的变量
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

//新增永久素材结束




//echo $token['access_token'];
//$menurl="https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$token['access_token']}";
//
//$post_data=' {
//     "button":[
//     {
//          "type":"click",
//          "name":"今日歌曲",
//          "key":"V1001_TODAY_MUSIC"
//      },
//      {
//           "name":"菜单",
//           "sub_button":[
//           {
//               "type":"view",
//               "name":"搜索",
//               "url":"http://www.soso.com/"
//            },
//            {
//               "type":"click",
//               "name":"赞一下我们",
//               "key":"V1001_GOOD"
//            }]
//       }]
// }';
//
//$output=curla($menurl,$post_data);
//print_r($output);
//function curla($menurl,$post_data){
//    $ch = curl_init();
//    curl_setopt($ch, CURLOPT_URL, $menurl);
//    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//    //请求https协议时必须加上重点ssl安全验证
//    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
//    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
//
//    // post数据
//    curl_setopt($ch, CURLOPT_POST, 1);
//    // post的变量
//    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//
//    $output = curl_exec($ch);
//    curl_close($ch);
//    return $output;
//}

function gettoken(){
    //公网
//$url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxb80a467fde37f031&secret=53ec3e82276778ffb67bde51f1f8be58';
//海涛
$url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx7a0e406a86abd173&secret=2341de9161e535c6ffe7580bfb876fff';
$token=file_get_contents($url);
$token=json_decode($token,true);
$token['time']=time();
file_put_contents("token.log",json_encode($token));
return $token;

}

没有更多推荐了,返回首页