#php #xml #ussd
#php #xml #ussd
Вопрос:
Добрый день, я хотел бы создать меню для своего ussd-приложения, это мое первое приложение, поэтому я все еще немного в замешательстве. Единственное, что мне пока удалось сделать, это вывести на экран сообщение с надписью «Добро пожаловать, дорогой клиент», но я хочу создать интерактивное меню.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
header("Content-type: text/xml; charset=utf-8");
/**
* Here we receive the xml from the network company
*
*/
$json = file_get_contents('php://input');
$json_data = json_decode($json);
error_log($json_data->param1);
$xml = simplexml_load_string($json_data->param1) or die('Error:
Cannot create the object');
$MessageType = $xml->MessageType;
$ConversationID = $xml->ConversationID;
$SessionID = $xml->SessionID;
$TransactionID = $xml->TransactionID;
$MessageString = $xml->MessageString;
$MSISDN = $xml->MSISDN;
$Success = $xml->Success;
$IsFinal = $xml->IsFinal;
$DateTimeReceived = $xml->DateTimeReceived;
$MNO = $xml->MNO;
/**
*Here we create a xml that will send a message to the user
*
*
*/
$option1 ='1.Welcome dear customer';
$xml = new SimpleXMLElement('<UssdMessage/>');
$xml->addChild('MessageType', $MessageType);
$xml->addChild('ConversationID', $ConversationID);
$xml->addChild('SessionID', $SessionID);
$xml->addChild('TransactionID', $TransactionID);
$xml->addChild('MessageString', $option1);
$xml->addChild('MSISDN', $MSISDN);
$xml->addChild('Success', 'true');
$xml->addChild('IsFinal', 'TRUE');
$xml->addChild('DateTimeReceived', $DateTimeReceived);
$xml->addChild('MNO', $MNO);
echo $xml->asXML();
Ответ №1:
Платформа, которая преобразует XML в SMPP, должна возвращать некоторый тип индикатора сеанса, и с помощью MSISDN подписчика вы можете реагировать на параметры, выбранные пользователем.
Мы реализуем конечный автомат для поддержки логики меню. Каждая операция является состоянием, и в ее определении вы ссылаетесь на следующее состояние в случае перехода OK или в случае ошибки перехода вы отвечаете сообщением пользователю.
В протоколе SMPP параметр ussd_service_op обычно используется для определения, позволяет ли отправленный ответ пользователю отвечать или является ответом, который завершает сеанс пользователя.
Поставщик платформы должен предоставить вам документацию, относящуюся к двунаправленным сеансам, и там должны быть значения для ussd_service_op.
Я оставляю ссылку на документацию протокола SMPP, вам следует прочитать о submit_sm и deliver_smhttp://docs.nimta.com/SMPP_v3_4_Issue1_2.pdf. Извините за мой иностранный английский