php Интеграция с различными API SMS - PullRequest
0 голосов
/ 03 июля 2018

Я работаю в системе php, и клиент должен вставить свою информацию sms api, чтобы позволить системе отправлять sms автоматически, так как вы хотите, чтобы параметры SMS API были другими, например, clickatell api нужны параметры APIKEY, Message, Phone, чтобы вставить его в URL вот так

http://api.clickatell.com/http/sendmsg?apiKey=xxxxxxxxxxxxxx&message=hello &phone=2331212312

, но другие SMS API отправляют смс, используя xml-код или jsondata с другими параметрами, такими как

<Information>
   <UserNAme>xxxxx</UserNAme>
   <Password>xxxxx</Password>
  <Subject>Hello</Subject> 
</Information>
<Process>
 <Send>
   <Message>TEST Message</Message>
    <NO>5394153105</NO>
</Send>

</Process>';  

как вы видите первый API, использующий http-запрос для отправки смс, и другой, использующий данные json для отправки смс, так как я могу позволить пользователю задавать информацию о своем SMS Api и автоматически отправлять SMS.

1 Ответ

0 голосов
/ 03 июля 2018

Вы должны получить пользовательские данные, поступающие с вашего <form>, а затем отправить HTTP-запрос в API.

// $_GET as example, you can use $_POST
$myUserApiKey = $_GET['userInputapiKey'];
$myUserMessage = $_GET['userInputMessage'];
$myUserPhone = $_GET['userInputPhone'];
$serverResponse = http_get("http://api.clickatell.com/http/sendmsg", array("apiKey"=>$myUserApiKey, "message"=>$myUserMessage, "phone"=>$myUserPhone ));

switch ($serverResponse) {
// Handle API response here
}

В случае, если вам нужно обрабатывать несколько API с параметрами, которые имеют разные имена, у вас есть выбор:

  • Вызовите тот же скрипт, в котором мы добавим переменную, чтобы найти API, который будем использовать
  • Создайте несколько PHP-скриптов для каждого API, который вам нужен

В случае, если вы хотите выбрать первое решение, оно должно выглядеть следующим образом:

// $_GET as example, you can use $_POST
$apiToUse = $_GET['userApiChoice']; // Can be a HTML <input type="radio"> with a value
$myUserApiKey = $_GET['userInputapiKey'];
$myUserMessage = $_GET['userInputMessage'];
$myUserPhone = $_GET['userInputPhone'];

if ($apiToUse == 1) { // We use the first API
  $serverResponse = http_get("http://api.clickatell.com/http/sendmsg", array("apiKey"=>$myUserApiKey, "message"=>$myUserMessage, "phone"=>$myUserPhone ));

  switch ($serverResponse) {
  // Handle API response here
  }

} else if ($apiToUse == 2) {
// Implement Other API Here
} else {
// Here's an unknown API.. Handle that error here
}
...