美好的一天,我想为我的usdd应用程序创建一个菜单,这是我的第一个应用程序,因此我仍然有些困惑。 到目前为止,我唯一能做的就是在屏幕上显示“欢迎亲爱的顾客”的消息,但是我想创建一个交互式菜单。
<?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();
答案 0 :(得分:0)
将XML转换为SMPP的平台必须返回某种类型的会话指示符,并且使用订户的MSISDN,您可以响应用户选择的选项。
我们实现了一个有限状态机来支持菜单的逻辑。 每个操作都是一个状态,在过渡状态为OK或过渡状态为ERROR的情况下,您可以定义其链接到下一个状态。
在SMPP协议中,ussd_service_op参数通常用于确定所发送的响应是允许用户响应还是结束用户会话的响应。
平台的提供者应为您提供有关双向会话的文档,并且应包含ussd_service_op的值。
我保留了指向SMPP协议文档的链接,您应该阅读有关commit_sm和delivery_sm http://docs.nimta.com/SMPP_v3_4_Issue1_2.pdf的信息。 对不起,我的外语