支付寶小程序:1. 構建小程序版本
小編:啊南 520閱讀 2020.12.28
說明:實施商家小程序需要第三方應用代商家小程序調用 Open API 進行操作,代調用的操作詳情,請參見 代調用 OPEN API 說明。
通過三方模板構建商家小程序版本接口引導接口名:alipay.open.mini.version.upload ??根據模板上傳商家小程序版本
接口功能:系統服務商(ISV)基于小程序模板創建商家小程序。詳細的參數說明、示例代碼、錯誤碼等請參見 alipay.open.mini.version.upload。
說明:
-
不論是初次構建商家小程序版本還是升級商家小程序版本,都需要基于最新過審的小程序模板版本新構建一個商家小程序的版本。
-
構建商家小程序版本接口有所升級提速,相關說明請參見 模板構建升級指南,不論是何種模式構建小程序版本,都應在代調用構建版本的接口后 查詢構建狀態,查詢到構建成功再進行后續操作。
根據模板所構建的商家小程序的開發配置會繼承第三方應用和模板的開發配置(包括接口加簽方式、域名白名單、IP 白名單、支付寶網關、應用網關、接口內容加密方式、基礎庫最低版本、H5域名配置等),如果模板未設置開發配置,則商家小程序會繼承第三方應用的開發配置;如果商家小程序在代調用構建版本接口之前已有開發配置,則代調用構建版本接口后,在小程序原有的開發配置基礎上合并模板的開發配置一起生效。
參數說明
參數 |
說明 |
ext |
自定義參數,實例化的小程序會生成一個 ext.json 的文件,ext.json 會覆蓋 app.json 中的相同字段,不相同字段合并生效。 在小程序可以通過 my.getExtConfig() 或 my.getExtConfigSync() 獲取字段(建議支付寶版本 > 10.1.38,并使用 my.canIUse?做兼容處理)。 |
template_id |
小程序模板的 APPID,可登錄 開放平臺,在模板詳情中的模板圖標下方獲取。 |
app_version |
每次構建版本的版本號不可小于已有版本且不可重復。 |
為了方便第三方平臺的開發者引入 APPID 的開發調試工作,需要引入 ext.json 的概念。
ext.json是一個配置文件,放置在小程序項目的根目錄下。代調用接口時傳入 ext 參數,則實例化的商家小程序的根目錄下就會創建 ext.json 文件。
將商家的標識符(可自行決定采用何種標識,只要可以通過此標識查詢出之前記錄的該商家對應的app_auth_token即可)通過ext.json注入商家小程序中,以便小程序模板前端向系統服務商(ISV)的服務端發出的請求,都可以帶上商家標識符,從而服務端可以查詢出與商家對應的app_auth_token。
{ "extEnable": true, "ext": { "shopId": "2018050xxxxxx975978", "miniShopId": "1112xxxxxx9766", "appId": "201xxxxxx108305" }, "extPages": { "pages/face/index":{ "defaultTitle": "功能演示頁面" } }, "window":{ "defaultTitle": "支付寶接口功能演示" }, "tabBar": { "textColor": "#dddddd", "selectedColor": "#49a9ee", "backgroundColor": "#ffffff", "items": [ { "pagePath": "pages/index/index", "name": "首頁" }, { "pagePath": "pages/logs/logs", "name": "日志" } ] }}
ext.json中的配置字段分為兩種:
-
特有的字段
-
同app.json相同的字段
extEnable是一個 Boolean 類型的字段,用于規定當前的ext.json文件是否生效,開發者可以通過修改這個字段來開啟和關閉 ext 中的 APPID 的結合開發。
ext字段是開發自定義的數據字段,在小程序中可以通過my.getExtConfigSync進行獲取。自定義參數,實例化的小程序會生成一個 ext.json 文件,ext.json 會覆蓋 app.json 中的相同字段,不相同字段合并生效。
例如上面的例子中,通過my.getExtConfigSync就可以獲得ext字段的所有配置。
{ "shopId": "2018050xxxxxx975978", "miniShopId": "1112xxxxxx9766", "appId": "201xxxxxx108305" }
const extJson = my.getExtConfigSync(); let shopId = extJson.shopId; let miniShopId = extJson.miniShopId; let appId = extJson.appId;
extPages是一個對象,對象中的每個 key 應該是該小程序模板app.json中定義的頁面,每個 key 對應的 value 是 page.json 中所規定的各項配置。當開發者設置這個配置以后,小程序框架會對應的修改相對應的 page 的配置信息。
示例:
@Testpublic void buildByTemplate() { // 1、構建ext字段 Map<String, Object> extFields = new HashMap<String, Object>(); extFields.put("extEnable", true); Map<String, String> ext = new HashMap<String, String>(); ext.put("shopId", "2019201929019291"); ext.put("userSlogan", "這是商家自定義的標語"); extFields.put("ext", ext); // 2、構建請求 AlipayOpenMiniVersionUploadRequest request = new AlipayOpenMiniVersionUploadRequest(); Map<String, String> content = new HashMap<String, String>(); content.put("ext", JSONObject.toJSONString(extFields)); // ext字段轉換成json字符串格式 content.put("template_id", "2019121069217771"); content.put("app_version", "0.0.3"); request.setBizContent(JSONObject.toJSONString(content)); // 3、代調用的app_auth_toke request.putOtherTextParam("app_auth_token", APP_AUTH_TOKEN); try { AlipayOpenMiniVersionUploadResponse response = alipayClient.execute(request); printResponse(response); } catch (AlipayApiException e) { e.printStackTrace(); }}
常見報錯
報錯 |
解決方案 |
系統繁忙 |
檢查biz_content參數,傳入的參數應該為一個JSON 字符串,可以參考 alipay.open.mini.version.upload 文檔的示例。 |
商戶未簽約任何產品 |
商家小程序下線導致報錯,請確保商家小程序是已上線的狀態。 |
有關構建商家小程序的常見問題,請參見 三方業務 構建 FAQ。
查詢商家小程序構建狀態完成構建商家小程序后,需代調用該接口,輪詢小程序版本構建狀態。
接口引導接口名:alipay.open.mini.version.build.query? 查詢小程序版本構建狀態
接口功能:查詢小程序版本構建狀態,詳細的參數說明、示例代碼、錯誤碼等請參見?alipay.open.mini.version.build.query。
參數說明當返回結果中?create_status 為6,則說明小程序版本創建成功。
刪除商家小程序版本只有狀態為開發中的版本才能被刪除,默認最多允許 20 個開發中的版本。如果超出,代調用該接口刪除廢棄的版本。
接口引導接口名:alipay.open.mini.version.delete 刪除小程序版本
接口功能:刪除開發狀態的小程序版本,詳細的參數說明、示例代碼、錯誤碼請參見?alipay.open.mini.version.delete。
體驗構建的小程序當代調用查詢小程序版本構建狀態接口 alipay.open.mini.version.build.query 返回參數create_status為6后,可代調用小程序生成體驗版接口,生成體驗版小程序供系統服務商(ISV)和商家進行檢查預覽。
操作步驟-
生成商家小程序體驗版,代調用接口?alipay.open.mini.experience.create。
-
查詢商家小程序體驗版狀態,代調用接口?alipay.open.mini.experience.query。
通過接口響應參數exp_qr_code_url,獲得二維碼鏈接,點擊掃碼,即可體驗商家小程序。
說明:如果掃體驗碼提示沒有此功能,代調用接口?alipay.open.app.members.create,添加開發者或體驗者。
-
取消商家小程序體驗版,代調用接口?alipay.open.mini.experience.cancel。
相關推薦
- 支付寶小程序:入駐開放平臺 支付寶小程序是一種全新的開放模式,它運行在支付寶客戶端,是手機應用嵌入支付寶客戶端的一種方法。支付寶小程序開放給開發者更多的 JSAPI 和 OpenAPI,也可以提供給用戶多樣化的便捷服務。支付寶小程序可以被便捷地獲取和傳播,從而為終端用戶提供更優的用戶…
- Qt加載XPM圖像 XPM是一種基于ASCII編碼的圖像格式,一般用于創建圖標。由于它是ASCII編碼,很方便地在代碼中使用。 Qt的QPixmap類支持XPM格式,原型如下:QPixmap::QPixmap(const char *const [] xpm)摘取Qt源碼中的"嚴重警告"XPM圖標:static const char* const c…