通用场景
小程序通过openapi给用户触达消息,主要为支付后的触达(通过消费id)、用户提交表单后的触达(通过formid)、刷脸后的触达(通过ftoken)以及用户订阅消息模板后的触达。
公共请求参数
业务请求参数
user_template_id|消息模版id必选string(64)
【描述】商家在商家自运营中心选用的消息模板id,详情参见 。
【示例值】mdi4yzixmde2m2i5ytqzyjuxnwe4mja4nmu1mtiyymm=
data|消息模板变量内容必选string(2048)
【描述】模板消息内容。商家/开发者将模板占位符替换为自定义内容
【注意事项】选用模板时配置的关键字顺序与keyword_x相互对应,填写时需注意。
自定义消息内容仅需替换 value 后内容即可,其余内容请勿修改。如 {"keyword1": {"value" : "2021年01月"}。表示第一个关键字数据为"2021年01月"。
value 最长为 50 个字符。
自定义消息内容仅需替换 value 后内容即可,其余内容请勿修改。如 {"keyword1": {"value" : "2021年01月"}。表示第一个关键字数据为"2021年01月"。
value 最长为 50 个字符。
【示例值】{"keyword1": {"value" : "12:00"},"keyword2": {"value" : "20180808"},"keyword3": {"value" : "支付宝"}}
以下参数 二选一 传入
to_user_id|支付宝useridstring(20)
【描述】接收模板消息用户支付宝 user_id,可通过 用户授权 获取
新商户建议使用to_open_id替代该字段。对于新商户,to_user_id字段未来计划逐步回收,存量商户可继续使用。如使用to_open_id,请确认 应用-开发配置-openid配置管理 已启用。无该配置项,可查看openid配置申请。
【注意事项】要求小程序发生交互行为的用户,例如触发实际支付、刷脸、的用户
【示例值】2088102122458832
to_open_id|支付宝openidstring(128)
【描述】支付宝openid,用于支付宝用户在当前应用下的用户标识。 详情可查看 openid简介
【示例值】074a1cctg1lelxke4xqc0zgndid0nxi95b5lsnpazwyoco5
form_id|支付宝交易号/表单号/ftoken条件必选string(1024)
【描述】支付消息模板:需传入用户发生的交易行为的支付宝交易号 trade_no;
表单提交模板:需传入用户在小程序触发表单提交事件获得的表单号;
刷脸消息模板:需传入在iot刷脸后得到的ftoken等,用于信息发送的校验。
表单提交模板:需传入用户在小程序触发表单提交事件获得的表单号;
刷脸消息模板:需传入在iot刷脸后得到的ftoken等,用于信息发送的校验。
【必选条件】说明:订阅消息模板无需传入本参数。
【示例值】2017010100000000580012345678
page|小程序的跳转页面地址条件必选string(128)
【描述】小程序的跳转页面。用于用户点击模板消息 进入小程序查看 按钮后,跳转至商家小程序对应页面。
【必选条件】小程序必须传入,小游戏类型可以不传
【示例值】page/component/index
常见请求示例
非表单消息发送
默认示例
curl 'https://openapi.alipay.com/gateway.do?charset=utf-8&method=alipay.open.app.mini.templatemessage.send&format=json&sign=${sign}&app_id=${appid}&version=1.0&sign_type=rsa2×tamp=${now}' \
-f 'app_auth_token=${app_auth_token}' \
-f 'biz_content={
"data":"{\"keyword1\": {\"value\" : \"12:00\"},\"keyword2\": {\"value\" : \"20180808\"},\"keyword3\": {\"value\" : \"支付宝\"}}",
"page":"page/component/index",
"to_user_id":"2088102122458832",
"to_open_id":"074a1cctg1lelxke4xqc0zgndid0nxi95b5lsnpazwyoco5",
"user_template_id":"mdi4yzixmde2m2i5ytqzyjuxnwe4mja4nmu1mtiyymm="
}'
说明:本示例仅供参考。
公共响应参数
业务响应参数
无业务响应参数
响应示例
正常示例
异常示例
{
"alipay_open_app_mini_templatemessage_send_response": {
"code": "10000",
"msg": "success"
},
"sign": "eritjkeijkjhkkkkkkkhjereeeeeeeeeee"
}
说明:本示例仅供参考。
公共错误码
业务错误码
错误码 | 错误描述 | 凯发app官方网站的解决方案 |
---|---|---|
app_no_avaiable | 小程序暂不能提供服务 | 请检查当前小程序是否支持消息推送 |
app_type_error | 应用类型错误 | 请确认应用id为小程序应用id |
biz_content_format_error | biz_content参数格式错误,请检查是否为合法json | 请检查入参格式,或使用alipaysdk组装入参 |
data_content_format_error | data参数非json格式 | data参数不是json格式 |
data_is_empty | data参数不合法 | data参数未传,请检查参数 |
data_sensitive | 发送的数据存在敏感词 | 请调整发送数据 |
form_id_invalid | formid不合法 | 1、请确认formid的合法性,如果确认是formid是真实合法的(formid的来源可以有三个,一个是通过小程序form表单页获得;或者是用户发生付款的交易号;或者iot刷脸得到的ftoken),请稍后再次发起请求。(注意,支付类的模板消息只允许只用tradeno进行发送;表单类的模板消息只允许使用表单组件生成的formid进行发送;刷脸类模板只允许使用ftoken进行发送)
2、formid需要和被触达的用户匹配,如果formid是通过小程序表单生成的,则只允许发送给触发表单的用户;如果formid是交易号,则只允许发送给付款人员;如果formid是ftoken,则只允许发给刷脸人员。 |
form_id_not_match_appid | formid和appid不匹配 | formid如果是点击表单产生的,则只允许提供当前表单的小程序允许使用该formid发送;如果是tradeno,则允许第一次使用这个tradeno的小程序使用;如果是ftoken,则允许第一次使用这个ftoken的小程序使用。 |
form_id_over_time | formid超时 | 一个formid的发送有效期为七天(如果是用户提交表单的formid,则以用户提交表单的时间开始计算),如果是tradeno则以发生付款的时间开始计算。 |
form_id_send_limit | formid已经到达发送限制,请换formid进行发送 | 每个formid、tradeno或ftoken对于发送是有次数限制的(3次),该异常代表formid已经到达发送上限,无法再进行发送 |
illegal_argument_params | 参数非法,请检查入参 | 请检查输入参数 |
message_send_auth_error | 用户未关注公众号或未授权该小程序 | 请确认推送的该用户已经授权您的小程序,或者该用户已经关注您小程序绑定的生活号 |
message_template_keyword_illegal | 系统模板关键词不合法 | 系统模板关键词已被删除,需要申请新的模板进行发送 |
msg_content_not_interested | 消息内容不被感兴趣,发送消息失败 | 消息内容不被感兴趣,发送消息失败 |
msg_rejected | 用户已拒收,发送消息失败 | 用户已拒收,发送消息失败 |
msg_send_error | 消息发送异常 | 消息发送异常 |
msg_single_sd_over | 消息发送超过频次限制 | 请确认消息发送频次是否满足规则 |
msg_template_id_valid | user_template_id为空或未传入 | 模板id参数未传或存在空字符串,请检查参数 |
msg_unauthorized | 用户未授权 | 用户未授权,发送消息失败 |
msg_unsubscribed | 用户未订阅,发送消息失败 | 请确认用户是否订阅该消息 |
no_bind_public_app | 无绑定的生活号 | 在小程序详情页的生活号管理中绑定生活号 |
no_place_order_record | 用户最近未在该小程序下过单 | 请确认用户最近是否在该小程序下过单 |
no_recent_visit_record | 用户最近未访问过该小程序 | 请确认用户最近是否访问过该小程序 |
page_over_limit | page参数超长 | openapi里面的page参数最多为128字节 |
query_consumer_reqeust_error | 查询消费记录入参错误 | 当模板类型是交易类时,如果userid的格式错误,或者tradeno的格式错误(这里一定要用支付宝的订单号),会返回该错误码 |
template_illegal | 模板不合法,该模板已经被禁止或者模板不存在 | 重新申请新的模板进行发送消息 |
trade_no_not_match_userid | tradeno只能发送给实际付款人 | tradeno只能发送给实际付款人,不允许发送给不相关人员 |
user_id_invalid | 输入的user_id不合法 | 检查输入的user_id |
user_keyword_length_error | 消息模板变量内容参数,或page不合法,无法发送 | 消息模板变量内容参数为空或超长,每个关键词的value值长度不得大于50个字符;或page为空,请检查参数和page是否正常。当前已经支持在线诊断,请 |
user_template_illegal | 模板非法 | 确认templateid 是否和申请的模板id匹配;同时需要确认该模板是否已经被删除。当前已经支持在线诊断,请 |
user_template_lack_keyword | 缺少关键词 | 申请的模板关键词必须和上送的关键词匹配,例如在申请模板中选择了5个关键词,则data数据域必须有keyword1~keyword5的对象和value |
user_template_status_illegal | 用户模版状态错误 | 请确认您的用户模版是否已经生效 |