Поделиться через


Устаревшие уведомления о обратном вызове в тарифных планах мобильной связи

Заметка

На этой странице описаны устаревшие уведомления о обратных вызовах для мобильных планов. Используйте это только в качестве ориентира и не реализуйте этот код в дальнейшем.

Встроенная передача профилей

На следующей диаграмме показан общий процесс того, как программа "Мобильные планы" поддерживает загрузку профиля без потери контроля в портале 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”
линия Перечисление Это поле является обязательным.

Возможные значения:

  • Новое: указывает, что SIM-карта была добавлена учетной записью пользователя.
  • Существующий: указывает на то, что существующая линия была передана на устройство.
  • Прервано: указывает, что пользователь закончил поток покупки на этом шаге.
  • Нет. Указывает, что пользователь не достиг этого шага.
“line”:”New”
moDirectStatus Перечисление Это поле является обязательным.

Возможные значения:

  • Завершено. Указывает, что пользователь успешно завершил покупку.
  • ServiceError: указывает, что пользователь не смог завершить покупку из-за ошибки службы MO.
  • InvalidSIM: Указывает, что идентификатор ICCID, переданный на портал, был неверным.
  • LogOnFailed: указывает, что пользователь не смог войти на портал MO.
  • PurchaseFailed: Указывает, что покупка завершилась сбоем из-за ошибки выставления счетов.
  • ClientError: указывает, что недопустимые аргументы были переданы на портал.
  • Нет. Указывает, что пользователь завершил транзакцию без определенной ошибки.
“moDirectStatus”:”Complete”
название плана Струна Для успешной транзакции это поле не должно быть пустым и должно содержать описательное имя плана. Для неудачной транзакции это поле должно быть пустой строкой. “planName”:”prepaid_3GperMonth”