支付寶小程序:模板消息(升級版)

小編:啊南 219閱讀 2020.12.28

產品介紹概述

開發者可通過消息高效觸達用戶,通知用戶當前行為的結果及狀態等;同時可在消息中配置跳轉小程序指定頁面地址,當用戶查看消息時,在消息中點擊 進入小程序查看?返回小程序,進入開發者配置的小程序指定頁面。

用戶端消息呈現效果

模板消息功能適用于開發者高效觸達用戶的場景,比如:交易狀態、物流進度等。

用戶在小程序內產生頁面交互行為后,開發者可通過此能力給用戶發送消息,同時開發者可在消息中配置小程序地址或指定頁面地址,用戶收到消息后可通過消息點擊進入到小程序,目前僅支持文本消息。

支付寶消息入口:客戶端首頁?>?服務提醒(同步收到移動端的系統推送通知)。

1.png

高德消息入口:首頁?>?消息中心?>?小程序消息。

支付寶禁售類目 及以下服務主體不支持:?

  • 部分金融服務:典當行、電匯和匯票服務、個人資金借貸、貴金屬投資、金融機構-自動現金服務、小貸公司、支付機構、融資擔保公司。

  • 部分商業服務:債務催收機構。

  • 部分生活服務:財務債務咨詢、售賣成人用品類。

  • 部分數娛網游:彩票等博彩業務。

  • 部分娛樂票務:歌舞廳/夜店。

  • 部分專業服務:GCAS緊急服務(僅限Visa使用)、Visa信任服務、檔案、電子檔案、站內清算、測試實驗服務。

  • 部分政府服務:保釋金、法庭費用、行政費用和罰款。

  • 小程序需滿足所屬經營類目小程序準入標準,還需滿足 小程序經營類目及所需資質材料 要求,小程序商戶必須遵守?支付寶小程序運營規范。

  • 小程序業務合規,用戶體驗良好:90?天內無違規處罰,頁面流程順暢,服務通道暢通有效,平臺投訴糾紛率低,無首屏/強制/過度授權,無外鏈引導,無品牌侵權等。

  • 如果開發者需要通過 tradeNo 發送模板消息,則必須產生交易,從而生成交易號 tradeNo,如開通 小程序支付 和 資金授權 中的 凍結轉支付 功能等。消息類型為支付類型的只能通過 tradeNo 發送。

  • (二)用戶體驗原則
    • 同個業務場景同類用戶行為的通知不能有重復關系,如有則需將相同的通知模板合并為一。

    • 禁止內容違規:不得侵犯用戶隱私,不得有合規、公關、隱私相關風險。

    • 禁止模板濫用:禁止通知消息的內容與用戶觸發場景不一致。禁止用多個消息模板對同一個觸發場景通知。

    • 禁止消息騷擾:頻繁發送相同內容或性質的模板消息,有騷擾用戶傾向,引起用戶反感、退訂甚至引起用戶投訴。

    • 禁止外鏈或推廣下載:非支付寶端內產品不予申請,且消息提醒的承接頁需落在支付寶端內。禁止以任何形式外鏈到其他網站/服務或推廣其他 APP 下載。

    • 禁止涉及營銷相關內容,包括不限于:消費優惠類、購物返利類、商品更新類、價格更新類、優惠券類、代金券類、紅包類、會員卡類、積分類、活動類等營銷傾向通知。

    • 禁止惡意誘導用戶進行觸發操作,以達到可向用戶下發模板目的。

    • 禁止發送含有支付寶規定的禁售行業或需要特定資質行業的內容。

    計費模式

    免費。

    接入指引步驟一:選用模板,獲取模板 ID1. 入口
    1. 登錄 支付寶開放平臺 > 業務中心 > 小程序 > 進入小程序 > 運營中心 > 留存工具 > 模板消息。

    2. 點擊?添加消息模板,在 模板庫 列表頁可選擇對應的模板消息,若沒有合適的消息母版或者消息關鍵詞,可以申請新增母版或關鍵詞,審核通過后即可使用。

      • 商戶需要組裝模板內容、消息投遞端、發送規則,形成消息子板并獲得模板 ID。

      • 當選擇模板消息后,可在 我的模板 列表頁可獲取模板 ID。

    1. 選擇模板內容

    小程序模板消息提供支持多場景的消息母版,消息母版約定消息標題、消息候選關鍵詞集合。開發者可以選擇適合其場景的消息母版,從中選擇消息關鍵詞并排定優先級。

    (1)從公共消息母版庫選擇母版(必選)

    • 如果選定的母版中沒有合適的關鍵詞,可以基于此母版申請新消息關鍵詞。

    步驟二:通過 form組件 獲取 formId 或通過支付接口獲取 tradeNo

    formId??:頁面的<form/>組件,屬性report-submit為true時,可以聲明為需發模板消息,此時用戶點擊按鈕提交表單可以獲取?formId,用于發送表單類模板消息。

    示例代碼:

    <!--.axml--><form onReset="onReset" onSubmit="onSubmit" report-submit="true">  <view class="form-row-label">Input</view>        <view class="form-row-content">          <input name="input" class="input" placeholder="input something" />        </view>  <view><button type="ghost"  formType="reset">重置</button></view>  <view><button type="primary" formType="submit">提交</button></view></form>

    注意:使用 button 時請添加 formType屬性。

    //.js  onReset(){},onSubmit(e){    console.log(JSON.stringify(e));//打印表單提交信息  },

    tradeNo :當用戶完成支付行為時,可以獲取 tradeNo(即支付交易號) 用于發送交易類模板消息,如 小程序支付資金授權 中的 alipay.trade.pay 接口。消息類型為支付類型的只能通過 tradeNo 發送。

    步驟三:調用接口下發模板消息1. 集成并配置 SDK

    服務端 SDK 需要開發者集成在自己的服務端系統中,用于后續的服務端接口調用。

    (1)下載服務端 SDK

    為了幫助開發者調用開放接口,我們提供了 開放平臺服務端 SDK,包含 JAVA、PHP、NodeJS、Python 和 .NET 五種語言,封裝了簽名 & 驗簽、HTTP 接口請求等基礎功能。請先下載對應語言版本的 SDK 并引入您的開發工程。

    (2)接口調用配置

    在 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)作為請求參數傳入,實現代商戶發起請求的能力。

    2. 調用消息推送接口

    開發者調用消息發送接口 alipay.open.app.mini.templatemessage.send 需根據消息類型傳入不同的參數,同時可在接口 page 參數中配置跳轉到小程序的指定頁面 url,小程序頁面地址可在代碼中的 app.json 中獲取。

    接口英文名

    接口中文名

    接口描述

    alipay.open.app.mini.templatemessage.send

    小程序發送模板消息

    小程序通過 openapi 給用戶觸達消息,主要為用戶完成支付后的的消息觸達(通過 tradeNo)和用戶提交表單后的消息觸達(通過 formId)

    入參列表

    名稱

    類型t

    必填

    描述t

    示例值

    to_user_id

    String

    觸達消息的支付寶user_id。

    2088102122458832

    form_id

    String

    用戶發生的交易行為的交易號,或者用戶在小程序產生表單提交的表單號,用于信息發送的校驗。

    2017010100000000580012345678

    user_template_id

    String

    用戶申請的模板 ID號,固定的模板 ID會發送固定的消息。

    MDI4YzIxMDE2M2I5YTQzYjUxNWE4MjA4NmU1MTIyYmM=

    page

    String

    小程序的跳轉頁面,用于消息中心用戶點擊之后詳細跳轉的小程序頁面。

    page/component/index

    data

    String

    開發者需要發送模板消息中的自定義部分來替換模板的占位符。

    注意:占位符必須和申請模板時的關鍵詞一一匹配。

    {“keyword1”: {“value” : “12:00”}, “keyword2”: {“value” : “20180808”}, “keyword3”: {“value” : “支付寶”}}

    注意:data 參數中 value 后面的值為商家唯一需要自定義的部分,例如商家僅能改動 {"keyword1": {"value" : "12:00"} 中的數字“12:00”部分。占位符必須和申請模板時的關鍵詞一一匹配。

    示例代碼

    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","+//觸達消息的支付寶user_id""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("調用失敗");}
    3. 具體場景說明(1)使用 tradeNo 發送模板消息

    場景描述

    當小程序用戶發生了支付行為以后(例如 小程序支付),小程序開發者可通過 tradeNo 向付款人發送模板消息(小程序開發者通過 異步通知 中 buyer_id 和 trade_no 來發送模板消息)。tradeNo 通過 alipay.trade.create 接口獲取,傳入 alipay.open.app.mini.templatemessage.sendtradeNo 或者 表單號 formId )。

    注意:消息類型為支付類型的只能通過 tradeNo 發送。支付類模板消息的接收人必須與實際付款賬號主體一致。

    接口調用流程

    (2)使用 formId 發送模板消息

    場景描述

    當小程序用戶提交了表單之后,小程序開發者可通過 form表單組件 返回的 formId(需在聯網環境下),來發送模板消息。注意:消息類型為表單類型的只能通過 formId 來發送模板消息。

    使用 formid 發送消息之前,需先獲取會員信息中的 user_id,具體查看 獲取方式。

    接口調用流程

    API 列表

    開發者可通過以下接口給用戶發送模板消息:

    接口英文名

    接口中文名

    alipay.open.app.mini.templatemessage.send

    小程序發送模板消息

    如果您在調用 API 時出現報錯,您可以:

    • 在?公共錯誤碼 中根據錯誤碼的類型,查找相關錯誤碼及解決方案;

    • 在?螞蟻問答?問答頁面直接輸入您遇到的錯誤碼;

    • 在?云排查 中排查遇到的問題;

    • 您還可以在?文檔中心 直接搜索您要的答案。

    六、快速接入 DEMO

    支付寶開放平臺還為開發者提供了模板消息 DEMO,開發者可以參考 模板消息快速示例 文檔進行體驗和實現快速接入。

    七、常見問題Q:重復給同一用戶發送模板消息是否能顯示多條?

    A:使用同一個 formId(“表單提交動作”消息)或者 tradeNo(“交易動作”消息)發送的模板消息只會顯示最新的一條,之后的消息會覆蓋之前的消息;使用不同 formId 或者 tradeNo 發送的消息則不會覆蓋。

    Q:模板消息有推送頻率限制嗎?

    A:小程序發送模板消息對用戶有疲勞度限制,對單個用戶有發送限制,商家需要控制發送頻率,單個用戶超過發送頻率后,后續發送的消息會被舍棄。對于同一個 formid,商戶 7 天內的發送次數不能超過 3 次。在調試時,開發者往往同時使用多個 formId 和 tradeNo 進行測試,即使使用多個不同的 formId 或 tradeNo 發送模板消息,一個小時內也只能給同一用戶發送 10 條模板消息。

    Q:發送模板消息的接口為何報錯 tradeNo 只能發送給實際付款人?

    A:傳參錯誤。對交易號進行推送模板消息,接口中傳入的消息接收方的 userId 與 tradeNo 必須來自同一個用戶。

    Q:小程序模板消息由商戶A觸發推送消息給顧客 B,是不是需要用 B 產生的 formID?

    A:是的,或者B產生的 tradeNo 。接口中傳入的消息接收方的 userId 與 formId/tradeNo 必須來自同一個用戶,保持對應。

    Q:模板消息是否提供查詢模板和刪除模板的接口?

    A:目前沒有支持刪除和查詢的 API 。

    Q:支付寶小程序的模板消息會自動下線嗎?

    A:不會下線,添加了消息模板后這個模板會一直存在除非商戶主動刪除。同時小程序不需要上線也可以測試發送模板消息。

    Q:發送消息時報錯 form_id 不合法(FORM_ID_INVALID)如何處理?

    A:

    1. “交易動作”?的消息子板只允許只用?trade_no?進行發送,“表單提交動作”的消息子板只允許使用 form 表單 組件生成的 formId 進行發送

    2. form_id 需要和被觸達的用戶匹配,如果 form_id 是通過小程序表單生成的,則只允許發送給觸發表單的用戶,如果 form_id?是交易號,則只允許發送給實際付款人員。

    Q:為什么使用模擬器調試返回的formId 會報錯?

    A:模擬器生成的 formId 暫不可用,請在真機調試。

    Q:小程序發送模板消息是否需要綁定生活號?

    A:發送模板消息無需綁定生活號。

    Q:發送模板消息是否需要先上線小程序?

    A:不需要,即使未上線的小程序只要添加了功能包也可以發送模板消息。

    Q:為什么支付寶小程序模板消息設置為高德盒子消息時,一直發送失?

    A:小程序需要在高德平臺上架,未上架高德平臺的小程序不能發送。

    Q:為什么小程序發送模板消息時報錯 TRADE_NO_NOT_MATCH_USERID ?

    A:需要支付成功的訂單交易號才能發送模板消息。

    Q:開發者開發同一個小程序同時在支付寶和高德上線,如果用戶僅僅使用支付寶端小程序產生formid,沒有使用高德端產生formid,能否允許通過高德端投遞消息?

    A:不可以。用戶在支付寶端小程序產生動作,開發者僅能使用“消息投遞端為支付寶”的消息子板向用戶發送消息;用戶在高德端小程序產生動作,開發者僅能使用“消息投遞端為高德”的消息子板向用戶發送消息。不存在“用戶僅在其中一個APP場景內(支付寶/高德)使用過小程序,可以同時向不同APP場景(支付寶/高德)投遞消息”的情況。

    關聯標簽:
    一款棋牌app多少钱 英雄联盟官方网站-Welcome 浙体彩20选5 吉林快3技巧稳赚 新时时彩开奖号码 - 点击进入 澳洲幸运5官网直播 皇冠彩票官方网站 广东快乐10分外围 浙江体彩20选5开奖号码是多少 pp真人代理 广西11选5计划在线网页 正牌免费资料大全2021三肖中特 AB视讯登录 韩国快乐8官网下载不了 河北快三走势图表走势图分布图高清 湖北11选5开奖查询下载安装到手机 北京pk10牛牛五元倍少