广州小程序开发

微信小程序模板消息推送开发实战 thinkphp5

作者:广州小程序开发 时间:2018-06-12 22:43
小程序模板消息推送如何开发,开发小程序模板消息推送首先要获取用户提交的,表单id(或者用户付款id)这里的表单id要在真机里面才获取的到,开发工具获取不到的
在表单form里 加 report-submit="true"
 
在表单提交方法里 获取表单id 发送到服务器保存
 
     let formId = e.detail.formId;
 
    this.FormIds(formId); //保存表单id
 
  FormIds方法如下
 
  collectFormIds: function (formId) {
    wx.request({
      url: app.globalData.baseUrl + "Api/my/formId", //仅为示例,并非真实的接口地址
      data: {
        openid: wx.getStorageSync('openid'),
        formId: formId
      },
      method: "POST",
      header: {
        'content-type': 'application/json' // 默认值
      },
      success: function (res) {
        console.log(res);
 
      },
      error: function (res) {
 
      }
    })
 
  },
小程序开发
thinphp5后台接收方法写入数据表
 
public function formId(){
        $openid = input('post.openid');
        $formId = input('post.formId');
        if(!$openid){
            return json_encode(array('code'=>2,'msg'=>'请先授权微信信息'));
        }
        if(!$formId){
            return json_encode(array('code'=>2,'msg'=>'请先授权微信信息'));
        }
      $data['openid'] = $openid;
      $data['formid'] = $formId;
      $data['create_time'] = time();
      $id = db('wx_temp')->insertGetId($data);
      if($id){
          return json_encode(array('code'=>1,'msg'=>'成功'));
      }
 
    }
   收取获取表单id后就可以发送模板消息推送啦,
 
  方法如下 
 
    //模板推送
    function sendtpl(){
        $accessToken = $this->getWxAccessToken(); //这是获取的小程序accessToken方法
        
        $postData = array(
            "touser"        =>'oT2Ym0SYlfb3snK74XHs-EI2A68WsI',      //用户openid
            "template_id"   =>'lXmpaHgzl2DAQVMLb2VMsexvmRkYPYeTDFyuN5vgJXs',  //模板消息ID
            "page"          =>'pages/index/index',
            "form_id"       =>'1528644943564',      //表单提交场景下,事件带上的 formId;支付场景下,为本次支付的 prepay_id
            "data"          =>array(
                'keyword1'  => array('value'=>'小程序模板推送'),
                'keyword2'  => array('value'=>'深圳小程序开发,广州小程序开发公司'),
                'keyword3'  => array('value'=>'广州山水居科技有限公司')
            ),
 
            'emphasis_keyword'=>''
        );
        
        $postData =  json_encode($postData,true); //这里是把postData转json ,不然入坑
   
        $url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={$accessToken}";
        $rtn = $this->http_curl($url,$postData);
 
        return $rtn;
    }
  小程序获取accesstoken方法
 public function getWxAccessToken( $appid, $appsecret){
        $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret;
        $AccessToken = $this->http_curl($url);
        $AccessToken = json_decode($AccessToken , true);
        $AccessToken = $AccessToken['access_token'];
        return $AccessToken;
    }
    //curl
    function http_curl($url, $data = null){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
 
这样就可以进行消息推送了,每个推送的表单id只能推送一次,7天内有效,可以多获取几个表单id就可以进行不端推送啦
 
欢迎转载,来源广州山水居科技有限公司,业务主要小程序开发定制,网站开发等业务。

上一篇:关于小程序获取用户信息的方法
下一篇:微信公众号自定义菜单添加小程序链接 thinkphp5开

您的疑惑,我们来解答

多年来我们为上百家企业提供了网站建设服务

感受专业服务,从来电咨询开始
广州:18814374480深圳:13480275394
在线咨询