Mobile Plans 舊版回呼通知
注意
此頁面記錄行動方案舊版回呼通知。 請只使用此做為參考,且不會繼續實作此程序代碼。
嵌入式配置檔傳遞
下圖顯示行動計劃如何支援在不需要於控制上離開 MODirect 入口網站的情況下下載配置檔的高階流程。
當 MO Direct 入口網站準備好進行設定檔案下載、安裝和啟用時,入口網站應該呼叫 MobilePlansInlineProfile.notifyInlineProfileDownload
。
MobilePlansInlineProfile.notifyInlineProfileDownload
參數名稱 | 類型 | 描述 |
---|---|---|
purchaseMetadata | 物件 | 此物件包含使用者購買的相關元數據。 這包括使用者帳戶的詳細資訊、購買方式或支付工具的詳細資訊、使用者是否要新增一條新線的詳細資訊,以及使用者購買的方案名稱。 所有這些都用於報告。 |
啟用碼 | 字串 | 下載 eSIM 設定檔的啟用碼。 配置檔的 ICCID 是從配置檔元數據推斷而來。 |
下列 JavaScript 函式示範 API 的範例,告知應用程式應該啟動內嵌配置檔下載。
function NotifyMobilePlans() {
var purchaseMetaData = MobilePlans.createPurchaseMetaData();
purchaseMetaData.userAccount = MobilePlansUserAccount.new;
purchaseMetaData.purchaseInstrument = MobilePlansPurchaseInstrument.new;
purchaseMetaData.lineType = MobilePlansLineType.new;
purchaseMetaData.modirectStatus = MobilePlansMoDirectStatus.complete;
purchaseMetaData.planName = "My Plan";
MobilePlansInlineProfileDownload.registrationChangedScript = "onRegistrationChanged";
MobilePlansInlineProfileDownload.profileActivationCompleteScript = "onActivationComplete";
MobilePlansInlineProfileDownload.notifyInlineProfileDownload(purchaseMetaData , "1$smdp.address$matchingID");
}
如需 puchaseMetadata
對象的詳細資訊,請參閱 購買元數據屬性。
新增平衡(傳統版)
當使用者在MO 入口網站中完成購買,並將更多數據新增至其帳戶(不需要下載設定檔,因為使用者已經在 eSIM 上使用現有的配置檔),MO 入口網站應該調用 MobilePlans.notifyBalanceAddition
API,將控制權傳回至 Mobile Plans 應用程式。
行動計劃.通知餘額新增
參數名稱 | 類型 | 描述 |
---|---|---|
purchaseMetadata | 物件 | 此物件包含使用者購買的相關元數據。 這包括使用者帳戶、購買方法或工具的詳情、使用者是否要新增新門號的詳情,以及使用者購買的方案名稱。 所有這些都用於報告。 |
iccid | 字串 | 數據所分配的 ICCID。 如果此 ICCID 未使用中,行動方案應用程式會啟動對應的配置檔。 |
下列 JavaScript 函式展示了一個 API 的範例,用以通知應用程式,使用者已完成使用 eSIM 上可用但不一定啟用的設定檔進行的購買。
function finishPurchaseWithBalanceAddition() {
var metadata = MobilePlans.createPurchaseMetaData();
metadata.userAccount = MobilePlansUserAccount.new;
metadata.purchaseInstrument = MobilePlansPurchaseInstrument.none;
metadata.moDirectStatus = MobilePlansMoDirectStatus.complete;
metadata.line = MobilePlansLineType.new;
metadata.planName = "2GB Monthly";
MobilePlans.notifyBalanceAddition(metadata, "89000000000000000000");
}
如需 puchaseMetadata
對象的詳細資訊,請參閱 購買元數據屬性。
其他傳統回撥通知
行動方案應用程式的通知應該使用 JavaScript 搭配下列語法來傳送:
DataMart.notifyPurchaseResult(notificationPayload);
eSIM 的通知承載範例如下:
let notificationPayload = new Object();
notificationPayload.ver = '1';
notificationPayload.purchaseResult = "{\"userAccount\":\"New\",\"purchaseInstrument\":\"New\",\"line\":\"New\",\"moDirectStatus\":\"Complete\",\"planName\":\"MyPlan\"}";
notificationPayload.success = true;
notificationPayload.transactionId = 'MSFT_ecf5a4d6-024c-46c3-8fcd-2c1f0deed572';
notificationPayload.activationCode = '1$trl.prod.ondemandconnectivity.com$JO46UQDI07IKQDGG';
notificationPayload.iccid = '8988247000101997790';
DataMart.notifyPurchaseResult(JSON.stringify(notificationPayload));
實體 SIM 卡的通知承載範例如下:
let notificationPayload = new Object();
notificationPayload.ver = '1';
notificationPayload.purchaseResult = "{\"userAccount\":\"New\",\"purchaseInstrument\":\"New\",\"line\":\"New\",\"moDirectStatus\":\"Complete\",\"planName\":\"MyPlan\"}";
notificationPayload.success = true;
notificationPayload.transactionId = 'MSFT_ecf5a4d6-024c-46c3-8fcd-2c1f0deed572';
notificationPayload.iccid = '8988247000101997790';
DataMart.notifyPurchaseResult(JSON.stringify(notificationPayload));
eSIM 的通知承載範例,其中用戶放棄MO入口網站而沒有成功交易,如下所示。 如需實作適用於特定實作的所有情況,請參考範例後所附的表格。
let notificationPayload = new Object();
notificationPayload.ver = '1';
notificationPayload.purchaseResult = "{\"userAccount\":\"Bailed\",\"purchaseInstrument\":\"None\",\"line\":\"None\",\"moDirectStatus\":\"None\",\"planName\":\"\"}";
notificationPayload.success = false;
notificationPayload.transactionId = 'MSFT_ecf5a4d6-024c-46c3-8fcd-2c1f0deed572';
notificationPayload.activationCode = '';
notificationPayload.iccid = '';
DataMart.notifyPurchaseResult(JSON.stringify(notificationPayload));
傳送通知的 MO 入口網站 URI 必須位於安全 https 通訊協定中。 您可以指定主機,但不一定是完整路徑,這會為未來留下一些彈性。
下表描述通知 JSON 承載中的每個欄位:
JSON 欄位 | 類型 | 描述 | 例 |
---|---|---|---|
成功 | 布爾 | 如果使用者購買MO Direct方案,True。 | “success”:true |
ICCID | 字串 | 對於 eSIM,這表示客戶端必須使用 ICCID 來取用購買的 MO Direct 方案。 | iccid:”8988247000100297655” |
啟用代碼 | 字串 | 要擷取 eSIM 設定檔的啟用碼。 | “ActivationCode” |
transactionId | 字串 | 當入口網站啟動時,MO 入口網站接收做為查詢參數的交易標識碼。 | transctionId= rRi8OzhI3EiR02nm.2.0.1 |
購買結果 | 字串 | 包含使用者與MO入口網站互動的詳細數據。 | |
使用者帳戶 | 列舉 | 此欄位為必要欄位。 可能的值:
|
“userAccount”:”New” |
購買工具 | 列舉 | 此欄位為必要欄位。 可能的值:
|
“purchaseInstrument”:”New” |
線 | 列舉 | 此欄位為必要欄位。 可能的值:
|
“line”:”New” |
moDirectStatus | 列舉 | 此欄位為必要欄位。 可能的值:
|
“moDirectStatus”:”Complete” |
計畫名稱 | 字串 | 對於成功的交易,此欄位不得為空白,而且必須提供描述性計劃名稱。 對於不成功的交易,此欄位必須是空字串。 | “planName”:”prepaid_3GperMonth” |