• 下载
  • 社区

模板消息

产品介绍


概述

开发者可通过消息高效触达用户,通知用户当前行为的结果及状态等;同时可在消息中配置跳转小程序指定页面地址,当用户查看消息时,在消息中点击 进入小程序查看 返回小程序,进入开发者配置的小程序指定页面;具体配置方式见 接入指引


模板消息有两类:交易类和表单类,两种类型分别有不同的下发条件,详见 下发条件说明。

模板消息入口:客户端首页 > 服务提醒。

image.png

绑定生活号后,小程序下发的服务提醒将同步发送到生活号中,用户可以在 朋友 页签的生活号栏目中看到对应的消息。

image.png

在绑定生活号的情况下,小程序在获得了用户授权后,可在后台申请发送渠道为生活号的模板消息,向生活号发送粉丝引导消息,在消息尾部自动增加引导关注模块,为生活号粉丝沉淀提供工具。


image.png


场景介绍

模板消息功能适用于开发者高效触达用户的场景,比如:交易状态、物流进度等;
用户在小程序内产生页面交互行为后,开发者可通过此能力给用户发送消息,同时开发者可在消息中配置小程序地址或指定页面地址,用户收到消息后可通过消息点击进入到小程序,目前仅支持文本消息。


使用说明

步骤一:绑定生活号

生活号作为商家触达用户的通道,小程序绑定生活号能够帮助开发者更好的触达用户;也是小程序下发模板消息的前提条件;登录 https://open.alipay.com,进入小程序详情页 生活号管理 页面,选择已关联的生活号作为下发消息的通道进行绑定;绑定完成后即可选用模板。


步骤二:选用模板,获取模板 ID
进入小程序详情页“模板消息”页面,点击 添加模板消息,在 模板库 列表页可选择对应的模板消息,若没有合适的模板消息关键词,可以申请新增关键词,审核通过后即可使用。如在此步骤之前未绑定生活号,则会在选择模板时提示绑定生活号,跳转到步骤一完成绑定后方可选择消息模板;
当选择模板消息后,可在 我的模板 列表页可获取模板 ID 。


步骤三:通过 form组件 获取 formIdtradeNo

formId  :页面的<form/>组件,属性report-submittrue时,可以声明为需发模板消息,此时用户点击按钮提交表单可以获取formId,用于发送表单类模板消息。

tradeNo :当用户完成支付行为时,可以获取 tradeNo 用于发送交易类模板消息。


步骤四:调用接口下发模板消息
下发模板消息的接口名称为:alipay.open.app.mini.templatemessage.send


下发条件说明


重要:下发消息需绑定生活号

开发者需要绑定上线可运营的生活号,由生活号来承接服务提醒的消息。


下发消息场景

  1. 交易类
    当用户在小程序内完成支付行为,可允许开发者向付款用户在 7 天内推送有限条数的模板消息(同个订单号只能发送 3 条消息,不限制模板数),当开发者调用交易类的模板消息时,必须要传入 tradeNo

  1. 表单类
    当用户在小程序内发生过提交表单行为且该表单为要发模板消息的,可允许开发者向用户在 7 天内推送有限条数的模板消息( 1 次提交表单可下发 3 条,不限制模板数),当开发者调用表单类的模板消息时,必须要传入 formid


下发消息时效性

开发者获取 formIdtradeNo 后,可在 7 天内向用户推送消息,超出后 formIdtradeNo 将失效,无法推送消息。


获取发送生活号模板消息授权

如模板消息选择发送到生活号渠道,需要在 用户授权 时增加对于用户发送生活号的授权;

即在小程序的授权权限值( scope )中增加生活号标准模板消息授权:auth_life_msg ;配置 scope 后,获取用户信息时会展示通用生活号授权文案“允许生活号推送服务通知消息”。


scope

授权文案

通用生活号消息模板授权

auth_life_msg

允许生活号推送服务通知消息

电信运营商类的消息授权

auth_life_msg_tele

向运营商查询您的话费、宽带服务信息,通过生活号向您推送服务通知

my.getAuthCode({
      scopes: 'auth_life_msg',
      success: (res) => {
        console.info('sss', res)
      }
    })


授权样例:

image.png


关键词申请

若选用的模板中没有合适的关键词,可以在小程序后台管理中以下路径申请添加关键词:模板消息 > 模板,任意一个已有模板消息操作栏中点击 选用,点击弹出的对话框下方 点击申请,在关键字和示例内容框中输入相应内容,点击 提交

image.png



image.png


关键词申请规则

  1. 每个自然月可提交5次关键词申请;

  1. 在同一标题下,申请的关键词不能存在相同;

  1. 在同一标题下,申请的关键词不能存在过度相似;

  1. 关键词不能带特殊符号、个性化字词等没有行业通用性的内容;

  1. 关键词示例内容必须与关键词对应匹配,且描述清晰;

  1. 关键词申请审核结果将以站内信方式通知,审核通过后,关键词将纳入到模板中。


准入条件

开发者需要绑定上线可运营的生活号,由生活号来承接服务提醒的消息。

计费模式

不收费。

接入指引


第一步:创建小程序


在您的小程序内使用 小程序模板消息,您需要首先完成 开发者入驻 并 创建小程序


第二步:添加功能

 

小程序创建完成后,开发者可以在小程序后台管理中参照如下路径完成添加功能: 功能列表 > 添加功能勾选 小程序模板消息 功能后,点击左下角 确定


第三步:集成并配置 SDK


服务端 SDK 需要商户集成在自己的服务端系统中,用于后续的服务端接口调用。


下载服务端 SDK

为了帮助开发者调用开放接口,我们提供了 开放平台服务端 SDK,包含 JAVA、PHP、NodeJS、Python 和 .NET 五种语言,封装了签名 & 验签、HTTP 接口请求等基础功能。请先下载对应语言版本的 SDK 并引入您的开发工程。

接口调用配置

在 SDK 调用前需要进行初始化,以 JAVA 代码为例:

AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,ALIPAY_PUBLIC_KEY,SIGN_TYPE);


关键参数说明:

配置参数

示例值解释

获取方式/示例值

URL

支付宝网关(固定)

https://openapi.alipay.com/gateway.do

APPID

APPID 在创建应用后生成

点此查看 获取方式

APP_PRIVATE_KEY

开发者私钥,由开发者自己生成

获取详见上面 接口加签方式

FORMAT

参数返回格式,只支持 JSON

JSON(固定)

CHARSET

编码集,支持 GBK/UTF-8

开发者根据实际工程编码配置

ALIPAY_PUBLIC_KEY

支付宝公钥,由支付宝生成

获取详见上面接口加签方式

SIGN_TYPE

商户生成签名字符串所使用的签名算法类型,目前仅支持 RSA2

RSA2


接下来,就可以用 alipayClient 来调用具体的 API 了。alipayClient 只需要初始化一次,后续调用不同的 API 都可以使用同一个 alipayClient 对象。


注意:

ISV /开发者可以通过 第三方应用授权 得到商户授权令牌(app_auth_token)作为请求参数传入,实现代商户发起请求的能力。


第四步:调用接口

开发者调用消息发送接口需根据消息类型传入不同的参数,同时可在接口 page 参数中配置跳转到小程序的指定页面 url,小程序页面地址可在代码中的 app.json 中获取

接口英文名

接口中文名

接口描述

alipay.open.app.mini.templatemessage.send

小程序发送模板消息

小程序通过 openapi 给用户触达消息,主要为用户完成支付后的的消息触达(通过 tradeNo)和用户提交表单后的消息触达(通过 formId)。



代码示例

Java 示例代码如下:


AlipayClient alipayClient =newDefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayOpenAppMiniTemplatemessageSendRequest request =new AlipayOpenAppMiniTemplatemessageSendRequest();
request.setBizContent("{"+
"\"to_user_id\":\"2088102122458832\","+
"\"form_id\":\"2017010100000000580012345678\","+
"\"user_template_id\":\"MDI4YzIxMDE2M2I5YTQzYjUxNWE4MjA4NmU1MTIyYmM=\","+
"\"page\":\"page/component/index\","+
"\"data\":\"{\\\"keyword1\\\":{\\\"value\\\":\\\"12:00\\\"},\\\"keyword2\\\":{\\\"value\\\":\\\"20180808\\\"},\\\"keyword3\\\":{\\\"value\\\":\\\"支付宝\\\"}}\""+
"}");
AlipayOpenAppMiniTemplatemessageSendResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
}else{
System.out.println("调用失败");
}


场景说明

场景1:使用 tradeNo 发送模板消息

场景描述

当小程序用户发生了支付行为以后(例如 小程序支付),小程序开发者可通过 tradeNo 向付款人发送模板消息。(小程序开发者通过异步 通知 中 buyer_idtrade_no 来发送模板消息)注意:消息类型为支付类型的只能通过 tradeNo 发送。


接口调用流程

调用流程图:


场景2:使用 formId 发送模板消息

场景描述

当小程序用户提交了表单之后,小程序开发者可通过 form表单组件 返回的 formId(需在联网环境下),来发送模板消息。注意:消息类型为表单类型的只能通过 formId 来发送模板消息。


使用 formid 发送消息之前,需先获取会员信息中的 user_id,具体查看 获取方式


接口调用流程

调用流程图:


API 列表

开发者可通过以下接口给用户发送消息:

接口英文名

接口中文名

alipay.open.app.mini.templatemessage.send

小程序发送模板消息