微信小程序发送模板消息

 
 

首先说明推送消息的条件

  1. 支付

    当用户在小程序内完成过支付行为,可允许开发者向用户在7天内推送有限条数的模板消息(1次支付可下发3条,多次支付下发条数独立,互相不影响)

  2. 提交表单

    当用户在小程序内发生过提交表单行为且该表单声明为要发模板消息的,开发者需要向用户提供服务时,可允许开发者向用户在7天内推送有限条数的模板消息(1次提交表单可下发1条,多次提交下发条数独立,相互不影响)

下面说明如何发生模版消息
1.用code换取openid
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code


参数说明

参数 是否必须 说明
appid 公众号的唯一标识
secret 公众号的appsecret
code 填写第一步获取的code参数
grant_type 填写为authorization_code

2.获取 access_token

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

HTTP请求方式:

GET

参数说明 :

参数 必填 说明
grant_type 获取 access_token 填写 client_credential
appid 第三方用户唯一凭证
secret 第三方用户唯一凭证密钥,即appsecret
3.发送mobanx
$opendId = "oTCMT0VwenSbyNDlbTxccBR4mErM";
     // template_id  是   所需下发的模板消息的id
    $template_id = "5NV_S4ksH9Q5ek6W-7dsRg8j96UvtoG2Z9B7mtek8hY";
     // page 否   点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
    $page = " pages/index/index";
     // form_id  是   表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
     // $form_id = mparam('form_id/s');
    $form_id = 'f94f7f605baf096cf037909d6fa2a2ff';
     // data 是   模板内容,不填则下发空模板
    $data = [
         "keyword1"=>[
             "value"=> date( "Y-m-d"). "制定计划",
             "color"=> "#4a4a4a"
            ],      
         "keyword2"=>[
             "value"=> "时间快到了",
             "color"=> "#9b9b9b"
         ],
         "keyword3"=>[
             "value"=> "准备行动",
             "color"=> "#9b9b9b"
        ]    
    ];
     // color    否   模板内容字体的颜色,不填默认黑色
    $color = "#3f3f3f";
     // emphasis_keyword 否   模板需要放大的关键词,不填则默认无放大
    $emphasis_keyword = " keyword1.DATA" ;
    $content = json_encode([
         'touser'=>$opendId,
         'template_id'=>$template_id,
         'page'=>$page,
         'form_id'=>$form_id,
         'data'=>$data,
         'color'=>$color,
         'emphasis_keyword'=>$emphasis_keyword
    ]); 
    $access_token = getAccessToken();
    $url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={$access_token}";
    
    $result = json_decode(https_request($url, $content));




猜你喜欢

转载自blog.csdn.net/ywcsd/article/details/78604713