使用微信小程序新的订阅消息接口,主动推送。

小程序订阅消息,昨天刚上线,今天就体验了一下,遇到不少问题,不过还好都解决了。

首先:你需要在小程序后台,选择一个模板,和公众号差不多,不过这里一定要注意,选择模板和你的类目有关系,只出现你类目相关的,而且,还有就是感觉是微信那边的问题,我刚开始选了一个带彩票开奖字段的模板,后面推送消息总是:blackList!!!推送失败,换一个文字正常的就过了。

选好模板:记下ID就进行下一步:

小程序端如何操作呢,这点和公众号不一样,公众号需要一个FormID来消耗,而订阅消息不是,当用户通过事件触发:

我们主动向用户弹出申请,一会放图,下面是API使用,tmplids是模板消息列表ID,你可以放上多个,用户可以根据自己的选择来勾选,当用户勾选要接收的模板消息类型,会返回动态的字段(和模板消息ID一致),并且这个字段的值是:accept,这就代表你在后台,可以为这个用户,推送accept过的模板消息了。不过只能推送一次,如果用户多次点击,便可以多次推送,微信后台应该是记录了。我们也可以自己记录,不需要保存FormID这样的东西。

接口:wx.requestSubscribeMessage(Object object)

   wx.requestSubscribeMessage({
      tmplIds: ["XII_0By8D9WabnUjVPB_8S1itsm2d4_xxx"],
      success: function (res) {
        if (res.XII_0By8D9WabnUjVPB_8S1itsm2d4_xxxxx === 'accept'){
          wx.showToast({
            title: '订阅OK!',
          })
        }
        console.log(res)
        //成功
      },
      fail(err) {
        //失败
        console.error(err);
      }
    })
  },

 

使用微信小程序新的订阅消息接口,主动推送。_第1张图片

 一旦用户点击允许,我们可以后台记录该模板被允许了一次。

多次点击,是累计。

 

看看后端关键代码:PHP接口:subscribeMessage.send

这里注意就是:每个字段都有格式,一定要按照文档格式来

使用微信小程序新的订阅消息接口,主动推送。_第2张图片

/**
 * 发送订阅消息
 * @return [type] [description]
 */
public function sendSubMessage(
	$openId = "ofasP0XMXrT-8sZCoXcOTxxxxxxx",$tmpl = "XII_0By8D9WabnUjVPB_8S1itsm2d4_VsRxxxxxx"){

	$params['touser'] = $openId;
	$params['template_id'] = $tmpl;
	$params['page'] = "/pages/index/index";
	$params['data'] = [
		'date2' => ['value' =>'2019-10-12'],
	    // 'character_string7' =>['value'=>'121212'],
	    'thing1'=>['value'=>'开通完成']
	];

	// return $this->success('200',$params);
	 return $this->getCurl(self::$subMessageUrl.self::$accessToken,$params);

}

看看发送成功的内容:

使用微信小程序新的订阅消息接口,主动推送。_第3张图片

你可能感兴趣的:(微信小程序)