小程序发送模板消息记录

小程序官方限制:发送模板消息必须由用户自己触发一个表单提交才能发送。

小程序:

<form report-submit='true' bindsubmit="end">
    <button class='btn' type='primary' form-type="submit" >提交</button>
</form>

report-submit='true' 是必须设置的。否则获取不到formId

小程序js:

end:function(e){
    var formId = e.detail.formId;
    //向后台发起请求,并传递formId
   wx.request({
            url: 'test/end',
            method: 'post',
            data: {             
              "formId": formId
            },
            header: {
              'Content-Type': 'application/x-www-form-urlencoded'
            },
            success: function (res) {
               
            },
            fail: function (e) {
              
            }
          }) 
}

PHP后台:

public function end(){
        $appid = config('xcx_appid');
        $secret = config('xcx_appid');
        //获取access_token
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
        $result = file_get_contents($url);
        $result = json_decode($result,true);

                    $at = $result['access_token'];

                    $url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=".$at;
                    $p['touser'] = "ok2amqczqTFF335F8v1g-zncTeJs";//用户openid
                    $p['weapp_template_msg'] = array(
                        'template_id' => 'mvxoKq450n2Ft4jqy-8sTa4rX5quReOcx8ZXkmfmFYc',//模板消息ID
                        'page' => 'pages/warning/index',
                        'form_id' => $formId,
                        'data' => array(
                            'keyword1' => array(
                                'value' =>  date("Y年m月d日H时i分s秒")
                            ),
                            'keyword2' => array(
                                'value' =>  '您有一条信息,请查看'
                            )
                        ),
                        'emphasis_keyword' => '123'
                    );

                    $r = $this->curlPostJson($url,$p);
}

public function curlPostJson($url,$post_fields) {
    //自定义头信息
    $postJson = json_encode($post_fields);
    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER         => false,  //为true时会将将头文件的信息作为数据流输出。
        CURLOPT_POST           => true,
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_SSL_VERIFYHOST => 2,
        CURLOPT_CAINFO         => ROOT_PATH."public/assets/ssl/cacert.pem",
        CURLOPT_POSTFIELDS     => $postJson
    );

    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $result = curl_exec($ch);

    curl_close($ch);
    return json_decode($result,true);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P P PHP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值