si/si-api-php

SI-PHP 应用

安装: 273

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 0

开放问题: 0

类型:application

dev-master 2018-04-04 12:15 UTC

This package is not auto-updated.

Last update: 2024-09-25 10:48:10 UTC


README

先决条件

安装

要在您的项目中使用 SI API PHP 客户端,您必须将以下文件添加到项目文件中

src/main/php/api/Sms.php

或者推荐使用 composer 安装库。

$ composer require si/si-api-php

运行示例

需要做的第一件事是包含 Sms.php 并初始化消息客户端。在开始任何示例之前,您必须通过实例化 Sms REST 客户端类对象来填充特定数据(API 密钥、发送者 ID、基本 URL)。

require_once '<PATH-TO-FOLDER>/Sms.php';
$smsObj = new Sms(<Api_key>, <sender_id>, <base_url>);

基本消息示例

包含 Sms.php 并初始化消息客户端后,您需要遵循以下函数

第一步是准备消息

$msg = <your_message_comes_here>;

然后下一步是准备您的联系人列表

$receivers = <receiver_number1,receiver_number2>;

接收短信的手机号码。可以是带或不带 91 的。也可以用逗号分隔的格式提供多个号码。

现在您可以发送消息了

$response = $smsObj->sendSms($receivers, $msg);

带有可选参数的基本消息示例

我们可以为不同的功能提供可选参数,以下进行说明

  1. 调度短信:我们必须提供调度短信的日期和时间

     $response = $smsObj->sendSms($receivers , $msg , [    
     	'time' => '2017-05-19 11:17:55 AM',
     ]);
    
  2. Unicode 消息:指定要发送的消息为 unicode 格式。也可以用于自动检测 unicode 短信。

     $response = $smsObj->sendSms($receivers , $msg , [    
     	'unicode' => '1',
     ]);
    
  3. 闪光消息:指定要发送的消息为闪光格式

     $response = $smsObj->sendSms($receivers , $msg , [    
     	'flash' => '1',
     ]);
    
  4. 接收投递报告 URL:接收投递报告的编码 URL。在 DLR URL 中指定自定义项是强制性的。

     $drl_url = 'http://exapmle.com?sent={sent}&delivered={delivered}&msgid={msgid}&sid={sid}&status={status}&reference={reference}&custom1={custom1}&custom2={custom2}';
    
     $response = $smsObj->sendSms($receivers , $msg , [    
     	'dlr_url' => $dlr_url,
     ]);
    

带有高级参数(可选)的基本消息示例

  1. 格式:输出格式应按此变量指定,例如 XML/JSON/JSONP。默认响应将为 JSON

     $response = $smsObj->sendSms($receivers , $msg , [    
     	'format'  => 'json',
     ]);
    
  2. Custom1 & Custom2:自定义参考字段。

     $response = $smsObj->sendSms($receivers , $msg , [    
     	'custom1'  => 'xxxxxxx',
     	'custom2'  => 'xxxxxxx'
     ]);
    
  3. 端口:发送短信的端口号。有效的整数端口号应大于 2000

     $response = $smsObj->sendSms($receivers , $msg , [    
     	'port'  => '8223',	    	
     ]);
    

使用 JSON 数据进行消息传递

可以通过通过 POST 方法将值发送到前面的 URL 来使用 JSON 数据发送短信,并通过 urlencoded json 数据进行 POST。

示例 JSON 数据

$jsonData = {"sms": 
	[
	  { 
	    "to": "9xxxxxxxx", 
	    "custom": 9xxxxxxxx, 
	    "message": "Message from json api node 1"  
	  }, 
	  {
	    "to": "91xxxxxxxx",   
	    "custom": 34,
	    "message": "Message from json api node 2"  
	  }
	]
}

$response = $smsObj->sendSmsUsingJsonApi($jsonData,['formate'=>'json']);

JSON 可选参数

  1. 向多个号码发送相同消息

     $jsonData = {
       "message": "test json",
       "sms":[
       {
         "to": "95XXXXXXXX",
         "msgid": "1",
         "message": "test sms",
         "custom1": "11",
         "custom2": "22",
         "sender": "AAAAAA"
       },
       {
         "to": "99XXXXXXXX",
          "msgid": "2",
         "custom1": "1",
         "custom2": "2" 
       }],
       "unicode": 1,
       "flash": 1,
       "dlrurl": "http://www.example.com/dlr.php" 
     }
    
  2. 向多个号码发送不同消息

     $jsonData = {
       "message": "test json",
       "sms":[
       {
         "to": "95XXXXXXXX",
         "msgid": "1",
         "message": "test sms",
         "custom1": "11",
         "custom2": "22",
         "sender": "AAAAAA"
       },
       {
         "to": "99XXXXXXXX",
          "msgid": "2",
         "message": "json test sms",
         "custom1": "1",
         "custom2": "2"
       }],
       "unicode": 1,
       "flash": 1,
       "dlrurl": "http://www.example.com/dlr.php"
     }
    

使用 XML 数据进行消息传递

可以通过将值通过 POST 发送到前面的函数来使用 XML 值发送短信。

$xml = <?xml version="1.0" encoding="UTF-8"?>
<xmlapi>
  <sender>AAAAAA</sender>
  <message>xml test</message>
  <unicode>1</unicode>
  <flash>1</flash>
  <campaign>xml test</campaign>
  <dlrurl>
     <![CDATA[http://domain.com/receive?sent={sent}&delivered={delivered}&msgid={msgid}&sid={sid}&status={status}&reference={reference}
     &custom1={custom1}&custom2={custom2}&credits={credits}]]>
  </dlrurl>
  <sms>
    <to>95xxxxxxxx</to>
    <custom>22</custom>
    <custom1>99</custom1>
  </sms>
  <sms>
    <to>99xxxxxxxx</to>
    <custom>229</custom>
    <custom1>995</custom1>
  </sms>
</xmlapi>

$response = $smsObj->sendSmsUsingXmlApi($xml,['formate'=>'json']);
  1. 向多个号码发送相同消息

     $xml = <?xml version="1.0" encoding="UTF-8"?>  
     <api>  
       <campaign>campaign</campaign>  
       <dlrurl>
         <![CDATA[http://domain.com/receive?msgid={msgid}&sid={sid}&status={status}&custom1={custom1}]]>
       </dlrurl> 
       <time>2014-12-26 04:00pm</time>  
       <unicode>0</unicode>  
       <flash>0</flash>  
       <sender>senderid</sender>  
       <message><![CDATA[smstext]]></message>  
       <sms>  
           <to>9190********</to>  
       </sms>  
       <sms>  
           <to>9191********</to>  
       </sms>  
     </api>
    
  2. 向多个号码发送不同消息

     $xml = <api>
     <campaign>campaign</campaign>
     <time>2014-12-26 04:00pm</time>
     <unicode>0</unicode>
     <flash>0</flash>
     <sms>
     	<to>9190********</to>
     	<sender>senderid</sender>
     	<message>smstext</message>
     	<custom>2</custom>
     	<dlrurl>
     	<![CDATA[http://domain.com/receive?msgid={msgid}&sid={sid}&status={status}&custom1={custom1}]]>
     	</dlrurl> 
     </sms>
     <sms>
     	<to>9191********</to>
     	<sender>senderid</sender>
     	<message><![CDATA[smstext]]></message>
     	<custom>2</custom>
     	<dlrurl>
     	<![CDATA[http://domain.com/receive?msgid={msgid}&sid={sid}&status={status}&custom1={custom1}]]>
     	</dlrurl> 
     </sms>
     </api>
    

获取消息状态

要检查任何发送的短信活动的状态,您必须只有相应的消息(不是组 ID)的消息 ID。您只能检查当天发送的消息的状态。如果使用 POST 方法拉取消息状态,则一次可以拉取最多 500 条消息的状态。以下是一个检查 SMS 状态的函数,其格式如下

$statusResponse = $smsObj->smsStatusPull("fe5a70a3-1d65-40de-93b3-e50ebdc69272:1",['formate'=>'json']);

可选参数

  1. 格式:输出格式应按此变量指定,XML/JSON/JSONP。默认响应将为 JSON。

  2. Numberinfo:查询服务提供商和位置数据的标志,即 0 或 1。

  3. 页:获取特定页面的状态详细信息,其中页面为 1 或更大。

向 Optin 组发送 SMS

要向 Optin 组发送短信,必须在您的帐户中创建一个 optin 组及其相关的关键词。还需要将那些 optin 关键词的号码添加到组中,即 optin 组。

必填参数

  1. BASE_URL:您的 SMS 服务 URL
  2. 方法:预定义方法,例如 optin
  3. 发送者:分配给您的账户的发送者ID
  4. id/名称:id-optin组ID/名称-Optin关键字,以逗号分隔的ID或optin组关键字
  5. 消息:要发送的消息。消息文本为URL编码(正常为1000字符,unicode为500字符)

可选参数

  1. 时间:安排短信的日期和时间,格式为:YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM AM/PM

  2. unicode:指定要发送的消息为unicode格式。也可以用于自动检测unicode短信,例如 1/0/auto

  3. 闪光灯:指定要发送的消息为闪光灯格式,例如 1 或 0

  4. 格式:输出格式应为此变量指定的格式,XML/PHP/JSON/JSONP。默认响应为JSON

  5. 回调:JSONP响应格式的回调函数,例如 字符串

    $response = $smsObj->smsToOptinGroup($msg, $optinId, ['time' => '2017-06-11 11:17:55 AM', 'unicode' => '1', 'flash' => '1', 'formate'=>'json']);

向一个组发送消息

在您的账户中,必须存在一个组以及该组下的号码,才能向一个组发送任何消息。发送简单消息到组的API格式如下。

$response = $smsObj->sendMessageToGroup($msg, $name , $group_id);

可选参数

  1. 格式:输出格式应为此变量指定的格式,XML/PHP/JSON/JSONP。默认响应为JSON
  2. id:以逗号分隔的组ID

必填参数

  1. BASE_URL:您的 SMS 服务 URL
  2. 方法:预定义方法,例如 groups
  3. 发送者:分配给您的账户的发送者ID,发送者ID(6个字母)
  4. 名称:组名称
  5. 消息:要发送的消息,消息文本为URL编码(正常为1000字符,unicode为500字符)

将联系人添加到组

首先,您需要在您的账户中创建一个组,然后才能向现有的有效组添加联系人。添加联系人到组的函数格式如下。

$response = $smsObj->addContactsToGroup( $name , $receiverNumber ,['fullname'=>'abc','formate'=>'json']);

必填参数

  1. BASE_URL:您的短信服务URL
  2. 方法:预定义方法 groups.register
  3. 号码:联系人的手机号码(带或不带91) 99XXXXXXXX 或 9199XXXXXXXX
  4. 名称:组名称(不区分大小写)

可选参数

  1. 全名:要添加的联系人的姓名,即联系人的姓名
  2. 电子邮件:要添加的联系人的电子邮件,即联系人的电子邮件
  3. 格式:输出格式应为此变量指定的格式,XML/PHP/JSON/JSONP。默认响应为JSON
  4. 操作:指定操作的标志,可以是 add/delete。添加操作是默认操作

编辑安排

应用程序必须有一个安排好的短信活动以进一步修改它,并且必须保存要重新安排的短信活动的组ID。为了编辑安排好的时段,在其执行前应有至少5分钟的间隔。编辑安排短信时段的参数格式如下

$response = $smsObj->editSchedule( $new_time , $group_id ,['formate'=>'json']);

必填参数

  1. URL:您的短信服务URL
  2. 方法:预定义方法 sms.schedule
  3. groupid:需要编辑安排的组ID
  4. 任务:指定安排的时间应修改为time参数中提到的,即 modify
  5. 时间:需要重新安排的时段的时间。格式为:YYYY-MM-DD HH:MM:SS 或 YYYY-MM-DD HH:MM AM/PM

可选参数

  1. 格式:输出格式应为此变量指定的格式,XML/PHP/JSON/JSONP。默认响应为JSON。

预期的API错误代码

A431 	Invalid Group ID
A434 	Campaign within next 5 minutes cannot be modified/cancelled.

删除安排

应用程序必须有一个安排好的短信活动以进一步修改它,并且必须保存要删除的短信活动的组ID。为了删除安排好的时段,在其执行前应有至少5分钟的间隔。已安排的短信活动的删除参数格式如下

$response = $smsObj->deleteScheduledSms($group_id ,['formate'=>'json']);

必填参数

  1. BASE_URL:您的短信服务URL。
  2. 方法:预定义方法 sms.schedule
  3. groupid:要删除的组ID

信用可用性检查

此功能还可以用于检查您账户中的信用,格式如下

$response = $smsObj->creditAvailabilityCheck(['formate'=>'json']);

必填参数

  1. URL:您的短信服务URL
  2. 方法:预定义方法 account.credits

可选参数

  1. 格式:输出格式应为此变量指定的格式,XML/PHP/JSON/JSONP。默认响应为JSON。

SI查找

要查找任何号码的信息,必须将国家代码和号码一起输入。用于查找特定号码的函数格式如下:

$response = $smsobj->SILookup($mobile_number, ['format' => 'json']);

必填参数

  1. BASE_URL:您的 SMS 服务 URL
  2. 方法:预定义方法 lookup
  3. 目标:要发送短信的国家代码前的手机号码。也可以以逗号分隔的格式提供多个号码。手机号码(GET- 10个号码,POST- 100个号码)

创建Txtly

Txtly基本上是一个缩短的URL,可以用于短信,这样短信就不会超过字符限制。创建Txtly链接的函数如下

$response = $smsObj->createtxtly("https://facebook.com/xyz/lmn/abc",['format' => 'json']);

必填参数

  1. URL:您的短信服务URL
  2. 方法:预定义方法txtly.create
  3. url:需要缩短和跟踪的URL(长URL,url_encoded)

可选参数

  1. 格式:输出格式应与以下变量指定的一致,XML/PHP/JSON/JSONP。默认响应将为JSON
  2. 令牌:[http://msg.mn/heel](http://msg.mn/heel)(heel是令牌。对于每个txtly是唯一的。可以自定义代表您品牌/公司的单词。如果未提供,将生成一个随机的唯一令牌)
  3. 标题:您的txtly的显著标题。如果未提供,您的txtly将不包含任何标题
  4. 高级:高级分析提供跟踪谁(收件人手机号码)访问了页面的选项。1- 启用高级分析/0(默认)- 禁用高级分析
  5. 跟踪:位置跟踪提供了URL访问者的城市和州详细信息。1- 启用位置跟踪/0(默认)- 禁用位置跟踪
  6. 附加:需要压缩到短链接的媒体文件。在CURL请求中提供媒体文件
  7. 回调:包含参数以提取客户设备/IP详情的回调URL。[http://TestDomain.com/TestFile.php?os=%7Bplatform%7D&mobile=%7Bmobile%7D](http://TestDomain.com/TestFile.php?os=%7Bplatform%7D&mobile=%7Bmobile%7D)(对于原始响应数据格式。如果您想要以JSON格式获取响应,请在回调URL之前使用(json)标签。例如:(json)[http://TestDomain.com/TestFile.php?os=%7Bplatform%7D&mobile=%7Bmobile%7D](http://TestDomain.com/TestFile.php?os=%7Bplatform%7D&mobile=%7Bmobile%7D))

URL中要使用的回调参数

  1. client_ip:访问URL的IP地址,如156.151.23.65
  2. host:URL的域名名称,例如- Example.com
  3. query_string:URL的查询字符串,例如http://example.com/over/there?name=ferret
  4. user_agent:用于URL的用户代理,即 Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10
  5. browser:访问URL的浏览器,例如msie
  6. browser_version:访问URL时使用的浏览器的版本,例如11.0
  7. browser_lang:访问URL时操作系统的语言,例如English
  8. browser_engine:访问URL的浏览器引擎,例如Trident
  9. resolution:访问URL时的分辨率,例如1024*768
  10. platform:访问URL时设备的操作系统,例如Android OS
  11. platform_version:访问URL时设备的操作系统的版本,例如5.0
  12. device_type:访问URL时设备的类型,例如phone
  13. device_brand:访问URL时设备的品牌,例如Motorola
  14. device_version:访问URL时设备的版本号,例如XT1068
  15. device_model:访问URL时设备的型号名称,例如HTC Dream
  16. touch_enabled:从访问URL的设备是否支持触摸,例如yes
  17. latitude:从访问URL的地方的纬度坐标,例如12.9667° N
  18. 经度:访问URL的经度坐标 77.5667° E
  19. 国家:访问URL的国家 印度
  20. 地区:访问URL的州 卡纳塔克邦
  21. 城市:访问URL的城市 班加罗尔
  22. 创建时间:请求时间(Unix时间戳) 1426243175
  23. 手机:短URL接收者手机号码 99XXXXXXXX
  24. 操作系统代码:访问URL的操作系统代码,例如 (AN) 表示 Android

预期错误代码

  1. E500 请提供重定向的URL
  2. E5011 Txtly 已存在。请尝试另一个。
  3. E502 请上传文件
  4. E503 文件格式无效。请上传有效文件。
  5. E504 文件大小超出。最大50000 Kb。
  6. E505 文件上传失败。请重试。

删除Txtly

必须有一个txtly ID才能从数据库中删除。以下是一个删除Txtly链接的函数

$response = $smsObj->deletetxtly("205XXX",['format' => 'json']);

必填参数

  1. URL:您的短信服务URL
  2. 方法:预定义方法 txtly
  3. 任务:在txtly上执行的任务 delete
  4. id:txtly的ID 123XXXX
  5. 应用:应用引用 1

可选参数

  1. 格式:输出格式应为此变量指定的格式,XML/PHP/JSON/JSONP。默认响应为JSON。

Txtly 报告提取

函数用于提取您账户中所有txtly缩短链接的日志

$response = $smsObj->txtlyReportExtract(['format' => 'json']);

必填参数

  1. URL:您的短信服务URL
  2. 方法:预定义方法 txtly
  3. 应用:Txtly 应用日志 1

可选参数

  1. 格式:输出格式应为此变量指定的格式,XML/PHP/JSON/JSONP。默认响应为JSON

提取单个Txtly的日志

以下是一个从我们的账户中提取单个txtly日志的函数

$response = $smsObj->pullLogForIndividualtxtl("223XXX",['format' => 'json']);

必填参数

  1. URL:您的短信服务URL
  2. 方法:预定义方法 txtly.logs
  3. 应用:Txtly 应用日志 1
  4. id:要获取日志的txtly ID 123XXXXX

许可

此库受Apache 许可证 2.0版许可。