共用方式為


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”
列舉 此欄位為必要欄位。

可能的值:

  • 新增:表示用戶帳戶已新增 SIM 卡。
  • 現有:表示已將現有線路傳輸至裝置。
  • 保釋:表示使用者在此步驟中結束購買流程。
  • 無:表示使用者尚未達到此步驟。
“line”:”New”
moDirectStatus 列舉 此欄位為必要欄位。

可能的值:

  • 完成:表示使用者已成功完成購買。
  • ServiceError:指出使用者因MO服務錯誤而無法完成購買。
  • InvalidSIM:表示傳遞至入口網站的 ICCID 不正確。
  • LogOnFailed:指出用戶無法登入MO入口網站。
  • PurchaseFailed:表示購買因帳單錯誤而失敗。
  • ClientError:表示無效的參數已傳遞至入口網站。
  • 無:表示使用者已結束交易,而不會發生特定錯誤。
“moDirectStatus”:”Complete”
計畫名稱 字串 對於成功的交易,此欄位不得為空白,而且必須提供描述性計劃名稱。 對於不成功的交易,此欄位必須是空字串。 “planName”:”prepaid_3GperMonth”