微信小程序 发送模版消息

微信小程序开发之发送模板消息

1,小程序wxml页面form表单添加 report-submit="true" 

<form bindsubmit="sub" report-submit="true">
     <button formType="submit">确认发布</button>
</form>

2,小程序js代码 (formId唯一且只有提交表单时产生,只能使用一次)

Page({
  // 页面的初始数据
  data: {},
  sub: function (e) {
    console.log(e.detail.formId); // 获取formId,发送至服务器端
  }
});

3,php程序代码

// 发送get请求
function curlGet($url){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    if(curl_errno($curl)){
        return 'ERROR ' . curl_error($curl);
    }
    curl_close($curl);
    return $output;
}

// 获取小程序用户access_token
function getToken(){
    $appid = '小程序公众平台中的APPID'; // 注意!!!
    $appsecret = '小程序公众平台中的APPSECRET'; // 注意!!!
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
    $output = curlGet($url);
    $result = json_decode($output, true);
    return $result['access_token'];
}
// 发送通知
function sendNotice(){
    $access_token = getToken();
    $url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' . $access_token;
    $post_data = [
        'touser'           => 'openid', // 用户的 openID,可用过 wx.getUserInfo 获取
        'template_id'      => 'SNZQnzYFJMwwgRp3Oh2fvI_PHp_SQWqZzpiXLP3pSJI', // 小程序后台申请到的模板编号
        'page'             => '/pages/index/index', // 点击模板消息后跳转到的页面,可以传递参数
        'form_id'          => $formid, // 第一步里获取到的 formID
        'data'             => [
            'keyword1' => ['value' => '信息1'],
            'keyword2' => ['value' => '信息2'],
            'keyword3' => ['value' => '信息3']
        ],
        'emphasis_keyword' => '' // 需要强调的关键字,会加大居中显示
    ];
    $data = json_encode($post_data, true);
    $options = [
        'http' => [
            'method'  => 'POST',
            'header'  => 'Content-type:application/json', // header 需要设置为 JSON
            'content' => $data,
            'timeout' => 60 // 超时时间
        ]
    ];
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    return $result;
}

 

posted @ 2018-06-29 18:20  HUI9527  阅读(1690)  评论(0编辑  收藏  举报