Устаревшие уведомления о обратном вызове в тарифных планах мобильной связи
Заметка
На этой странице описаны устаревшие уведомления о обратных вызовах для мобильных планов. Используйте это только в качестве ориентира и не реализуйте этот код в дальнейшем.
Встроенная передача профилей
На следующей диаграмме показан общий процесс того, как программа "Мобильные планы" поддерживает загрузку профиля без потери контроля в портале 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 Direct, добавляя дополнительные данные в свою учетную запись (скачивание профиля не требуется, так как пользователь использовал текущий профиль в eSIM), портал MO должен вызвать MobilePlans.notifyBalanceAddition
API возвращать контроль обратно в приложение "Мобильные планы".
MobilePlans.уведомитьОбПополненииБаланса
Имя параметра | Тип | Описание |
---|---|---|
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));
URI портала MO, из которого отправляется уведомление, должен находиться в защищенном протоколе https. Вы можете указать хост, но не обязательно полный путь, что оставляет некоторую гибкость на будущее.
В следующей таблице описано каждое поле в полезных данных JSON уведомления:
Поле JSON | Тип | Описание | Пример |
---|---|---|---|
успех | Булевский | True, если пользователь приобрел план MO Direct. | “success”:true |
ICCID | Струна | Для eSIM это означает, что идентификатор ICCID должен использоваться клиентом для использования приобретенного плана MO Direct. | iccid:”8988247000100297655” |
код активации | Струна | Код активации для получения профиля eSIM. | “ActivationCode” |
transactionId | Струна | Идентификатор транзакции, полученный порталом MO в качестве параметра запроса при запуске портала. | transctionId= rRi8OzhI3EiR02nm.2.0.1 |
результат покупки | Струна | Содержит сведения о взаимодействии пользователя с порталом MO. | |
учетная запись пользователя | Перечисление | Это поле является обязательным. Возможные значения:
|
“userAccount”:”New” |
purchaseInstrument | Перечисление | Это поле является обязательным. Возможные значения:
|
“purchaseInstrument”:”New” |
линия | Перечисление | Это поле является обязательным. Возможные значения:
|
“line”:”New” |
moDirectStatus | Перечисление | Это поле является обязательным. Возможные значения:
|
“moDirectStatus”:”Complete” |
название плана | Струна | Для успешной транзакции это поле не должно быть пустым и должно содержать описательное имя плана. Для неудачной транзакции это поле должно быть пустой строкой. | “planName”:”prepaid_3GperMonth” |