微信订阅消息
侧边栏壁纸
博主昵称
404

  • 累计撰写 17 篇文章
  • 累计收到 0 条评论

微信订阅消息

404
404
2022-07-02 / 0 评论 / 8 阅读 / 正在检测是否收录...

小程序订阅消息推送
1.获取用户openid

2.用户授权消息推送(订阅几次可发送几次)

3.后端组合数据调用微信api发送订阅消息

  getTmplID: function () {
    wx.requestSubscribeMessage({
      tmplIds: ['模版id'],
      success(res) {
        console.log(res)
        if(res['模版id'] === 'accept') {
          console.log('授权成功')
          wx.showToast({
            title: '订阅OK!',
            duration: 1000,
          })
          /*****服务器主动推送的话,不需要调用***************/
          wx.request({
            method: 'POST',
            url: '后端接口',
            //不是josn格式
            header: {
              'content-type': 'application/json'
            },
            data: {
            },
            //调用接口成功
            success: function (res) {
              console.log("请求成功",res);
            }
          });
 
        }
      },
      fail(err) {
        //失败
        console.error(err);
        reject()
      }
    }) 
  }
<?php
declare (strict_types = 1);

namespace app\index\controller;
use think\facade\View;
use think\facade\Db;

use think\Request;
class Wx 
{
      
   public function sendMessage()
    {
        $appid = 'appid';
        $appsecret = 'appsecret';
        $touser = '用户openid';//用户openid
        $template_id = '订阅模板id';//所需下发的订阅模板id
        $page = 'pages/my/my';//跳转页面不填则模板无跳转。
        $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $appsecret;
 
        $res = json_decode(file_get_contents($url), true);
 
        $access_token = $res['access_token'];
 
        //请求url
        $url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token;
        //发送内容
        $data = [];
 
        //接收者(用户)的 openid
        $data['touser'] = $touser;
 
        //所需下发的订阅模板id
        $data['template_id'] = $template_id;
 
        //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
        $data['page'] = $page;
 
        //模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
        $data['data'] = [
            "character_string1" => [
                'value' => '46546546'
            ],
            "date2" => [
                'value' => '2022年6月30日 12:00'
            ],
            "thing3" => [
                'value' => '122'
            ],
      
            'thing6' => [
                'value' => '22'
            ],
        ];
        //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
        $data['miniprogram_state'] = 'developer' ;
        return self::curlPost($url,json_encode($data)) ;
    }
 
    //发送post请求
    static function curlPost($url,$data)
    {
        $ch = curl_init();
        $params[CURLOPT_URL] = $url;    //请求url地址
        $params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
        $params[CURLOPT_SSL_VERIFYPEER] = false;
        $params[CURLOPT_SSL_VERIFYHOST] = false;
        $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
        $params[CURLOPT_POST] = true;
        $params[CURLOPT_POSTFIELDS] = $data;
        curl_setopt_array($ch, $params); //传入curl参数
        $content = curl_exec($ch); //执行
        curl_close($ch); //关闭连接
        return $content;
    }

    
}
0

评论 (0)

取消