小程序發送模板消息記錄

小程序官方限制:發送模板消息必須由用戶自己觸發一個表單提交才能發送。

小程序:

<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);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章