Как создать меню в приложении ussd с помощью php - PullRequest
0 голосов
/ 28 марта 2019

Добрый день, я хотел бы создать меню для моего приложения 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 Ответ

0 голосов
/ 01 апреля 2019

Платформа, которая преобразует XML в SMPP, должна возвращать некоторый тип индикатора сеанса, и с помощью MSISDN абонента вы можете отвечать на опции, выбранные пользователем.

Мы реализуем конечный автомат дляподдерживать логику меню.Каждая операция является состоянием, и в своем определении вы ссылаетесь на следующее состояние в случае перехода OK или в случае перехода ERROR вы отвечаете пользователю на сообщение.

В протоколе SMPP параметр ussd_service_op обычно имеет значениеиспользуется для определения, позволяет ли отправленный ответ пользователю ответить или является ответом, который завершает сеанс пользователя.

Поставщик платформы должен предоставить вам документацию, относящуюся к двунаправленным сеансам, и должны быть значения дляussd_service_op.

Я оставляю ссылку на документацию протокола SMPP, вы должны прочитать о submit_sm и delivery_sm http://docs.nimta.com/SMPP_v3_4_Issue1_2.pdf. Извините за мой иностранный английский

...