微信发送模板消息

一、将 createObj(),modelMessage(),https_request()几个函数放在公共函数中,tp3 放在common下的function.php,tp5放在common.php

/**
    * @param string $value 值
    * @param string $color 颜色
    * @return 对象数组
    */
    function createObj($value, $color) {
      	$data = new stdClass;
      	$data->value = $value;
      	$data->color = $color;
     	return $data;
    }
    /**
     * 模板消息方法
     * @param [type] $touser      用户的openid
     * @param [type] $template_id 模板消息ID
     * @param [type] $url         可选 是否有连接可以点击查看详情
     * @param [type] $data        详细数据
     */
    function modelMessage($touser,$template_id,$url,$data) 
    {
      	$jsonObj = new stdClass;// 创建一个没有成员方法和属性的空对象
      	$jsonObj->touser = $touser;
      	$jsonObj->template_id = $template_id;
      	$jsonObj->url = $url;
      	$jsonObj->data = $data;
      	return json_encode($jsonObj, JSON_UNESCAPED_UNICODE);//后面参数确保不会产生原始编码
    }
    
    function https_request($url,$data=null)//如果数据为空(即需要自己get)就是get请求,如果有数据就用post
    {
 	$curl = curl_init();//获取curl资源
        //get方式的curl设置
  	curl_setopt($curl, CURLOPT_URL, $url);//设置
 	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
  	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);//https协议需要设置这两个verify
  	if(!empty($data))//data不为空
  	{ 
  	      //data不为空即有值post过来,下面为curl的post设置
          curl_setopt($curl,CURLOPT_POST,1);
          curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
  	}
  	curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//设置为1就不能直接输出,0就直接输出
  	$output = curl_exec($curl);
  	curl_close($curl);//关闭curl
  	return $output;
     }

二、在控制器中发送模板消息

/**
 * 模板消息方法
 * @param [type] $openid         用户的openid
 * @param [type] $template_id 模板消息ID
 * @param [type] $url                可选 是否有连接可以点击查看详情
 */
public function Modelnews($openid,$template_id,$url)
{
	$access_token =  get_access_token();
	$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$access_token}";
	$data = new stdClass;
	$data->name = createObj('恭喜你购买成功!', '#173177');
	$data->money = createObj('100元', '#173177');
	$data->date = createObj(date('Y-m-d H:i:s'), '#173177');
	$jsonstr = ModelMessage($openid, $template_id, $url,$data );
 	$result = https_request($url,$jsonstr);//利用curl实现接口对接,传输数据,返回的也是json数据包
 	$json = json_decode($result);//对json数据包进行解码
 	print_r($jsonstr);
   }

有疑问的,下方评论区见。有更好的欢迎私信哟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值