php实现发送微信模板消息的方法_php技巧

本文实例讲述了php实现发送微信模板消息的方法。分享给大家供大家参考。具体如下:

该方法基于thinkphp实现实现,具体OrderPush.class.php文件如下:

复制代码 代码如下:

<?php
namespace Org\Weixin;
/**
 * Created by PhpStorm.
 * User: StandOpen
 * Date: 15-1-7
 * Time: 9:41
 */
class OrderPush
{
    protected $appid;
    protected $secrect;
    protected $accessToken;
    function  __construct($appid, $secrect)
    {
        $this->appid = $appid;
        $this->secrect = $secrect;
        $this->accessToken = $this->getToken($appid, $secrect);
    }
    /**
     * 发送post请求
     * @param string $url
     * @param string $param
     * @return bool|mixed
     */
    function request_post($url = '', $param = '')
    {
        if (empty($url) || empty($param)) {
            return false;
        }
        $postUrl = $url;
        $curlPost = $param;
        $ch = curl_init(); //初始化curl
        curl_setopt($ch, CURLOPT_URL, $postUrl); //抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0); //设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_POST, 1); //post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
        $data = curl_exec($ch); //运行curl
        curl_close($ch);
        return $data;
    }
    /**
     * 发送get请求
     * @param string $url
     * @return bool|mixed
     */
    function request_get($url = '')
    {
        if (empty($url)) {
            return false;
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }
    /**
     * @param $appid
     * @param $appsecret
     * @return mixed
     * 获取token
     */
    protected function getToken($appid, $appsecret)
    {
        if (S($appid)) {
            $access_token = S($appid);
        } else {
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $appsecret;
            $token = $this->request_get($url);
            $token = json_decode(stripslashes($token));
            $arr = json_decode(json_encode($token), true);
            $access_token = $arr['access_token'];
            S($appid, $access_token, 720);
        }
        return $access_token;
    }
    /**
     * 发送自定义的模板消息
     * @param $touser
     * @param $template_id
     * @param $url
     * @param $data
     * @param string $topcolor
     * @return bool
     */
    public function doSend($touser, $template_id, $url, $data, $topcolor = '#7B68EE')
    {
        /*
         * data=>array(
                'first'=>array('value'=>urlencode("您好,您已购买成功"),'color'=>"#743A3A"),
                'name'=>array('value'=>urlencode("商品信息:微时代电影票"),'color'=>'#EEEEEE'),
                'remark'=>array('value'=>urlencode('永久有效!密码为:1231313'),'color'=>'#FFFFFF'),
            )
         */
        $template = array(
            'touser' => $touser,
            'template_id' => $template_id,
            'url' => $url,
            'topcolor' => $topcolor,
            'data' => $data
        );
        $json_template = json_encode($template);
        $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $this->accessToken;
        $dataRes = $this->request_post($url, urldecode($json_template));
        if ($dataRes['errcode'] == 0) {
            return true;
        } else {
            return false;
        }
    }
}

希望本文所述对大家的php程序设计有所帮助。

时间: 2024-08-06 20:07:28

php实现发送微信模板消息的方法_php技巧的相关文章

php实现发送微信模板消息的方法

 这篇文章主要介绍了php实现发送微信模板消息的方法,实例分析了php操作curl及自定义模板消息的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php实现发送微信模板消息的方法.分享给大家供大家参考.具体如下: 该方法基于thinkphp实现实现,具体OrderPush.class.php文件如下: 代码如下: <?php namespace OrgWeixin; /** * Created by PhpStorm. * User: StandOpen * Dat

php获取twitter最新消息的方法_php技巧

本文实例讲述了php获取twitter最新消息的方法.分享给大家供大家参考.具体实现方法如下: <?php function get_status($twitter_id, $hyperlinks = true) { $c = curl_init(); curl_setopt($c, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/$twitter_id.xml?count=1"); curl_setopt($c,

PHP快速推送微信模板消息

需要给关注用户发送模板消息,由于公众号关注用户比较多,所以采用普通的curl等方式太慢.由于模板消息发送不需要等待微信的结果,所以利用php的fsockopen()函数可以达到快速发送的效果.代码如下: $data = [ 'touser' => '11111111111111111', 'template_id' => '111111111111111111', 'url' => '11111111111111111111', 'data' => [ 'first' =>

微信模板消息推送,苹果手机没效果

问题描述 微信模板消息推送,苹果手机没效果 为什么我写的微信模板消息推送,消息提示安卓机子可显示,但是苹果手机就是空白的不显示呢? 解决方案 安卓微信和ios微信实现是有差别的,但微信服务器在收发消息时会弥补这些差别,你可以在开发平台中先测试一下你发消息的接口看看是否能正常显示.

用PHP实现多服务器共享SESSION数据的方法_php技巧

PHP 实现多服务器共享 SESSION 数据 /google 的广告条--> 一.问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的各个模块中都是可以登录使用的.各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可.但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这

php版微信开发之接收消息,自动判断及回复相应消息的方法_php实例

本文实例讲述了php版微信开发之接收消息,自动判断及回复相应消息的方法.分享给大家供大家参考,具体如下: 微信的api现在己经强大到可以随意调用我们网站或指定数据库的内容进行自能回复现推送消息了,这里就来给大家介绍一个微信开发的笔记. 发送1,2,3,7测试相应的消息,菜单模式需要升级为服务号,或者订阅人数超过500以上. 1. 用户发送的消息都是通过你提交的开发者URL来接收,这里订阅号就可以搞定,发送过来的都是xml格式数据,需要解析,代码如下: $data = $GLOBALS["HTTP

iphone微信撤回消息怎么查看?微信撤回消息查看方法

注意:此方法只能看到文字消息如果是图片的话撤回去是无法查看到的,因为iphone通知栏不会保存图片只会显示文字. 查看已撤回消息的方法: 这样在微信中我们是看不到的,如果说要看到以后可以如下设置 iphone打开设置后,点击通知 效果如下所示. 进入通知栏-到微信,点进去. 然后,点开"允许通知",-'通知中心'中显示",也要点开!点开!点开! 这就样,就大功告成了. 接下来,如果有朋友跟你私聊或者在微信群中撤回了一条信息 下拉打开通知栏,你就会惊喜的看到他/她/它说了什么!

微信分组发送-微信群发消息 出错,求大神

问题描述 微信群发消息 出错,求大神 请求图文消息 post的json {"filter":{"group_id":"103"},"mpnews":{"media_id":"NJdvqJn1PClTb6tFVrbnyOsLRsbIiumwvrlDO_Ty4j6OGiFQ495x- JFjFy0HKghN"},"msgtype":"mpnews"}

ThinkPHP在Cli模式下使用模板引擎的方法_php实例

本文实例讲述了ThinkPHP在Cli模式下使用模板引擎的方法.分享给大家供大家参考.具体如下: 关于Cli模式与模版引擎,2.1中的手册是这样说明的: Cli模式默认不使用任何模板引擎(可以自己在操作方法里面调用): 但是怎么调用,手册中没有提到.于是自己动手丰衣足食. 在介绍怎么调用之前,简单的说说什么情况可能需要用到模块引擎: 1. 利用dompdf在计划任务自动生成PDF或HTML报告 2. 计划任务发送HTML类型的邮件 3. 后台自动生成静态页面 4. 其他关于模板的后台操作 <?p