zoukankan      html  css  js  c++  java
  • 微信小程序 发送模版消息

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

    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;
    }
  • 相关阅读:
    unicode字符集
    534,rgba()和opacity的透明效果有什么不同?
    1004,js中的fliter
    1003,js array map()方法
    JavaScript 数据类型和数据结构
    JavaScript实现浮点数运算问题
    Chrome浏览器不能正确加载更新后JavaScript和Css文件原因及解决方法
    MySQL安装版与压缩版安装方法
    VUE列表渲染 FOR-IN和FOR-OF的区别
    for、for-in、for-of、forEach的区别
  • 原文地址:https://www.cnblogs.com/hui9527/p/9242071.html
Copyright © 2011-2022 走看看