发送订阅消息 微信小程序

功能描述

        小程序单次授权后,用于发送订阅消息。

调用方式 HTTPS 调用


POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN

 入参格式        

{
  "touser": "OPENID",
  "template_id": "TEMPLATE_ID",
  "page": "index",
  "miniprogram_state":"developer",
  "lang":"zh_CN",
  "data": {
      "number01": {
          "value": "339208499"
      },
      "date01": {
          "value": "2015年01月05日"
      },
      "site01": {
          "value": "TIT创意园"
      } ,
      "site02": {
          "value": "广州市新港中路397号"
      }
  }
} 

请求参数

属性类型必填说明
access_token / cloudbase_access_tokenstring接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一
其中access_token可通过getAccessToken接口获得;
如果是第三方代调用请传入authorizer_access_token
cloudbase_access_token可通过getOpenData接口获得
template_idstring所需下发的订阅模板id
pagestring点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转
touserstring接收者(用户)的 openid
datastring模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }的object
miniprogram_statestring跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
langstring进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN

 代码示例

private static final String WXAPPLETURl="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";

public void uniformMessageSend(OrderStateDto info) {
        RestTemplate restTemplate = new RestTemplate();
        //redis存储ACCESS_TOKEN,需要定时刷新,两小时失效
        String url =  WXAPPLETURl + redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY);
        //拼接推送的模版
        /**
         * {
         *   "touser": "oJkRK4_pWN0",
         *   "template_id": "Yk3_M11Pw5rabllnNwD9OKsyvUSoWg",
         *   "page": "index",
         *   "miniprogram_state":"developer",
         *   "lang":"zh_CN",
         *   "data": {
         *         "character_string1": {
         *             "value": "2022081214472943380"
         *         },
         *         "thing16": {
         *             "value": "22704967"
         *         },
         *         "thing9": {
         *             "value": "商品"
         *         },
         *         "thing13": {
         *             "value": "测试"
         *         },
         *         "phrase2": {
         *             "value": "已送达"
         *         }
         *   }
         * }
         */
        OrderStateMsgVo orderStateMsgVo = new OrderStateMsgVo();
        orderStateMsgVo.setTouser(info.getOpenId());//用户的openId
        orderStateMsgVo.setTemplate_id(info.getTemplateId());//订阅消息模板id
        orderStateMsgVo.setPage(info.getPage());
        Map<String, WxTemplateData> m = new HashMap<>(5);
        m.put("character_string1", new WxTemplateData(info.getOrderNo()));
        m.put("thing9", new WxTemplateData(info.getGoodsName()));
        m.put("phrase2", new WxTemplateData(info.getOrderState()));
        m.put("thing13", new WxTemplateData(info.getAddressArea()));
        m.put("thing16", new WxTemplateData(info.getTakeCode()));
        orderStateMsgVo.setData(m);
        String s = JSONUtil.toJsonStr(orderStateMsgVo);
        log.info(s);
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, orderStateMsgVo, String.class);
        log.info(responseEntity.getBody());
    }
import io.swagger.annotations.ApiModel;
import lombok.Data;

import java.util.Map;

@Data
@ApiModel(value = "OrderStateMsgVo", description = "订单状态通知")
public class OrderStateMsgVo {

    private String touser;//用户openid
    private String template_id;//订阅消息模版id
    private String miniprogram_state="developer";//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
    private String lang="zh_CN";//进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
    private String page;//默认跳到小程序首页
    private Map<String, WxTemplateData> data;//推送文字

}
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
public class WxTemplateData {
    private String value;
}
/**启动类中添加
**/


    @Bean
    RestTemplate getRestTemplate(){
        RestTemplate restTemplate = new RestTemplate();
        //解决中文乱码问题
        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
        return restTemplate;
    }

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>${hutool.version}</version>
        </dependency>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值