用PHP发送和接收短信

时间:2012-06-28 15:27:07

标签: php sms

我有两个问题。

  1. 我想将SMSesPHP的网站发送给用户,提供有关其订单的信息。我需要将短信显示为“TD-COMPANY-NAME”,因为我们通常从一些大型电子商务网站上获取它。我该如何实现这一目标?有没有指示如何做到这一点?我只是在Google上搜索。

  2. 此外,还有其他几个运营商将以特定格式向应用程序发送SMS,这些格式将被解析,并且将在数据库中进行相应的更新。我如何实现这一目标?

  3. 注意:此应用程序旨在在印度本地工作。后端是PHP和MySQL

5 个答案:

答案 0 :(得分:7)

  

以PHP发送和接收短信

结帐NexmoTwilio

我用过两者。我认为Twilio的学习曲线较浅。但Nexmo提供免费传入消息。因此,根据您的应用程序,这可能会起到很大的作用(例如,短信投票系统)。

两者都有出色的文档和PHP代码示例。

答案 1 :(得分:1)

如果您正在寻找围绕服务器构建的解决方案,该服务器使用您自己的基础架构发送和接收短信(使用GSM调制解调器),您真的应该看看SMS Server Tools。它通过假脱机目录与您的应用程序交互(基本上您编写一个格式化的文本文件,您希望在特定目录中发送,应用程序负责其余的),它设置简单且非常可靠。

答案 2 :(得分:1)

如何尝试使用FrontlineSMS,这也是一个很好的工具,它并不是少数几个国家所独有的,也就是说,它支持所有国家。它还具有良好的文档以及PHP POST和GET方法的良好支持。

以下是链接:http://www.frontlinesms.com/

答案 3 :(得分:0)

您可以编写自己的PHP代码,通过串口GSM调制解调器发送和接收短信。 与使用SMS网关或Twilio解决方案相比,它会好得多。在这种情况下,您完全依赖它们,因为如果他们的服务中断,您的业务也将无任何理由受到影响。

答案 4 :(得分:0)

您提到的public class HugeInt { // The array that contains all the digits of the number. To create a new number, you do not change this array but instead you create a new instance of HugeInt. // The first digit is the least significant digit. private readonly int[] digits; public HugeInt(string number) { // Trim off the leading zeros number = number.TrimStart('0'); if (number == "") number = "0"; // Convert to digit array with the least significant digit first digits = number.ToCharArray().Select(c => int.Parse(c.ToString())).Reverse().ToArray(); } public HugeInt(IList<int> digits) { // Trim off the leading zeros var d = digits.ToList(); while (d.Count > 1 && d.Last() == 0) d.RemoveAt(d.Count - 1); // Convert to digit array with the least significant digit first this.digits = d.ToArray(); } public HugeInt Plus(HugeInt num) { // Add two positive integers by adding each digit together, starting with the least significant digit. var result = new List<int>(); int carry = 0; for (var i = 0; i < this.digits.Length || i < num.digits.Length; i++) { var digit1 = i < this.digits.Length ? this.digits[i] : 0; var digit2 = i < num.digits.Length ? num.digits[i] : 0; var digitResult = digit1 + digit2 + carry; carry = 0; if (digitResult >= 10) { digitResult -= 10; carry = 1; } result.Add(digitResult); } if (carry > 0) result.Add(carry); return new HugeInt(result); } public int CompareTo(HugeInt num) { // First compare by length of number if (this.digits.Length > num.digits.Length) return -1; else if (this.digits.Length < num.digits.Length) return 1; else { // If lengths are equal, then compare each digit - starting with the most significant digit. for (var i = this.digits.Length - 1; i >= 0; i--) { var cmp = this.digits[i].CompareTo(num.digits[i]); if (cmp != 0) return cmp; } return 0; } } public override string ToString() { return String.Join("", digits.Reverse()); } } 通常称为TD-COMPANY-NAMESenderId。我们支持所有our API calls

例如,此请求:

Source

结果: SMS with custom SenderId

关于你问题的第二部分,我发现在使用多个不同来源之前没有任何问题,直到所有来源都是非攻击性和真实性的(不要试图模仿其他品牌名称)。