Twilio SMS api失败,在XAMPP上抛出任何端口或IP要打开的异常


Twilio SMS api failed throw exception on XAMPP any port or IP to be oppened

我在PHP上集成了Twilio SMS API。代码正在GoDaddy主机上工作。但不能在本地XAMPP上工作。当我使用开放网络时,它工作良好。但在公司网络下,它正在失败。防火墙上是否有需要开放的端口或IP ?以下是使用的代码:

require_once ("inc/Services/Twilio.php");
$strFromNumber = "+44xxxxxxxx";
$strToNumber = "+94xxxxxxxx";
$strMsg = "SMS test from twilio :".date('Y-m-d H:i:s');
$aryResponse = array();
$AccountSid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx15";
$AuthToken = "0bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb1";
$objConnection = new Services_Twilio($AccountSid, $AuthToken);
try {
    $bSuccess = $objConnection->account->sms_messages->create($strFromNumber,$strToNumber,$strMsg);
} catch (Services_Twilio_RestException $e) {
    echo $e->getMessage();
}
$aryResponse["SentMsg"] = $strMsg;
$aryResponse["Success"] = true;
echo json_encode($aryResponse);

本机显示错误。

Fatal error: Uncaught exception 'Services_Twilio_TinyHttpException' with message 'SSL certificate problem: self signed certificate in certificate chain' in C:'xampp'htdocs'SMS'inc'Services'Twilio'TinyHttp.php:84 Stack trace: #0 C:'xampp'htdocs'SMS'inc'Services'Twilio.php(112): Services_Twilio_TinyHttp->__call('post', Array) #1 C:'xampp'htdocs'SMS'inc'Services'Twilio.php(112): Services_Twilio_TinyHttp->post('/2010-04-01/Acc...', Array, 'From=%2B4474813...') #2 C:'xampp'htdocs'SMS'inc'Services'Twilio'ListResource.php(89): Services_Twilio->createData('Accounts/AC6133...', Array) #3 C:'xampp'htdocs'SMS'inc'Services'Twilio'CachingDataProxy.php(115): Services_Twilio_ListResource->createData('AC6133e1339b600...', Array) #4 C:'xampp'htdocs'SMS'inc'Services'Twilio'Resource.php(44): Services_Twilio_CachingDataProxy->createData('SMS/Messages', Array) #5 C:'xampp'htdocs'SMS'inc'Services'Twilio'ListResource.php(59): Services_Twilio_Resource->createData('SMS/Messages', Array) #6 C:'xampp'htdocs'SMS'inc'Services'Twilio'Rest'SmsMessages. in C:'xampp'htdocs'SMS'inc'Services'Twilio'TinyHttp.php on line 84

如何在基于XAMPP的本地窗口上解决此问题?需要打开什么端口或IP才能在受限制的网络上允许此服务?

问题记录如下:https://support.twilio.com/hc/en-us/articles/235279367-Twilio-PHP-helper-library-SSL-certificate-problem-on-Windows

Windows上的php_curl库有一个问题。它不使用最新的CA根证书列表。您可以从curl站点获取根证书的pem文件。

要解决此问题,请尝试以下操作:

  1. 下载以下pem文件:https://curl.haxx.se/ca/cacert.pem

  2. 将此文件复制到c:'cert'cacert.pem

  3. 用你喜欢的编辑器打开php.ini文件

  4. 如果您的php.ini中存在以下配置字符串:curl.cainfo,请通过删除";"来取消注释,并修改路径以指向cacert。您下载的Pem文件,例如:

    ;;;;;;;;;;;;;;;;;;;
    ; Module Settings ;
    ;;;;;;;;;;;;;;;;;;;
    curl.cainfo=c:'cert'cacert.pem
    
  5. 请重新启动Apache或IIS服务以应用更改(非常重要!)

请尝试一下,让我知道它是否适合你。