PHP-小程序发布订阅信息

PHP-小程序发布订阅信息

一、先在小程序开发平台设置板信息,获取模板id以及模板的模块名称

二、小程序端代码

xcxSendMsg:function(){
    console.log('点击测试')    
    wx.requestSubscribeMessage({
      tmplIds: ['XXXXXXfM70VPu6kQO-oQtSRsui43lXZ2lM'],
      success(res) {
        console.log(res)
        if (res['XXXXXXcXBfM70VPu6kQO-oQtSRsui43lXZ2lM'] === 'accept') {
          console.log('用户同意了')
          wx.showToast({
            title: '订阅OK!',
            duration: 1000,
          })
          wx.request({
            url: app.globalData.url + '/admin.php/index/xcxDingYueMsg',
            data: {
              weichat_openid: app.globalData.userInfo.openid,
              template_id: 'XXXXXXXM70VPu6kQO-oQtSRsui43lXZ2lM'
            },
            header: {
              'content-type': 'application/json' // 默认值
            },
            success: function (res) {
              console.log(res.data);
              
            }
          })
        }
      },
      fail(err) {
        //失败
        console.error(err);
      }
    })
  },

三、PHP端代码

1、PHP端接收代码

 //测试小程序发送订阅信息
    public function xcxDingYueMsg(){
        //发送内容
        $data = [] ;
        $data['touser'] = $this->request->param('weichat_openid');
        $data['template_id'] = $this->request->param('template_id');
        $access_token = $this->getTestWxAccessToken();

        //模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
        $data['data'] = [
            "name1"=>[
                'value' => '测试陈小小'
            ],
            "thing3"=>[
                'value' => '测试温馨提示'
            ],
        ];

        //请求url
        $msgurl = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token ;
        $res1 =  $this->curl($msgurl,json_encode($data));
        return json($res1);
    }

2、以上代码中的方法代码

 /**
     * 获取公众号access_token
     */
    public function getTestWxAccessToken(){
        $appId = constant("APPID");
        $appSecret = constant("SECRET");
        $access_token = Cache::get('wx_access_token:'.$appId);
        if($access_token){
            return $access_token;
        }else{
            //1.请求url地址
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;
            $res = $this->curl($url);
            if(isset($res['errcode']) && $res['errcode']!=0){
                return ('获取access_token出错');
            }
            $access_token = $res['access_token'];

            Cache::set('wx_access_token:'.$appId,$access_token,5400);
            return $access_token;
        }
    }

 public function curl($url,$data = null){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        // 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
        // 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }

        $res = curl_exec($curl);
        curl_close($curl);
        $json_obj = json_decode($res,true);
        return $json_obj;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值