信息整合
1$msg = [
2 'thing3' => ['value'=> '邀请好友购课奖励积分'],
3 'thing1' => ['value'=> $data3['integral']],
4 'thing2' => ['value'=> $welfare],
5 'date4' => ['value'=> date('Y-m-d H:i:s', time())],
6];
7//订阅格式请参照小程序订阅消息模板中的格式
发起消息接口
1345678
9public function sendSubscribeMessage($touser, $template_id, $page, $dataArray)
10{
11 //access_token 一般都存在缓存 ,
12 $access_token = $this->get_access_token();
13 //请求url
14 $url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token ;
15 //发送内容
16 $data = [] ;
17 $data['touser'] = $touser; //用户的openid
18 $data['template_id'] = $template_id; //所需下发的订阅模板id
19
20 //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
21 $data['page'] = $page;
22 //模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
23 $data['data'] = $dataArray;
24
25 //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
26 $data['miniprogram_state'] = 'formal';
27 $data['lang'] = 'zh_CN';
28 $json_data = json_encode($data);
29
30 return [
31 'openid' => $touser,
32 'data' => $this->curlRequest($url, $json_data)//这里面就是个curl请求 , 转成数组返回
33 ];
34}
获取微信AccessToken
13
4public function get_access_token1()
5{
6 $config = Db::name('cycling_config')->where('id',1)->field('wechat_appid,wechat_appsecret')->find();
7 $APPID = $config['wechat_appid'];// 小程序appid
8 $APPSECRET = $config['wechat_appsecret']; // 小程序appsecret
9 //获取access_token
10 $access_token ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET";
11
12 //缓存access_token
13 session_start();
14 $_SESSION['access_token'] ="";
15 $_SESSION['expires_in'] = 0;
16
17 $ACCESS_TOKEN ="";
18 if(!isset($_SESSION['access_token']) || (isset($_SESSION['expires_in']) && time() >$_SESSION['expires_in']))
19 {
20
21 $json = $this->httpRequest($access_token );
22 $json = json_decode($json,true);
23 if(empty($json['access_token'])){
24 $this->result('', 0, $json['errmsg']);
25 }
26 $_SESSION['access_token'] =$json['access_token'];
27 $_SESSION['expires_in'] = time()+7200;
28 $ACCESS_TOKEN =$json["access_token"];
29 }
30 else{
31
32 $ACCESS_TOKEN = $_SESSION["access_token"];
33 }
34 return $ACCESS_TOKEN;
35}
发起请求
1234
5 function curlRequest($url, $params)
6 {
7 $ch = curl_init();
8 curl_setopt($ch, CURLOPT_URL, $url);
9 curl_setopt($ch, CURLOPT_HEADER, 0);
10 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
11 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
12 curl_setopt($ch, CURLOPT_POST, 1);
13 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
14 curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
15 curl_setopt(
16 $ch, CURLOPT_HTTPHEADER,
17 array(
18 'Content-Type: application/json'
19 )
20 );
21 $data = curl_exec($ch);
22 curl_close($ch);
23 return ($data);
24 }