Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml HTTPS URL在PHP中不起作用_Xml_Https - Fatal编程技术网

Xml HTTPS URL在PHP中不起作用

Xml HTTPS URL在PHP中不起作用,xml,https,Xml,Https,我在SMS项目在线购物商店工作,目的是当客户下订单时,系统应在结账期间自动发送客户提供号码的SMS SMS公司为此向我们提供API文档。首先,他们需要生成会话id的身份验证过程,我们使用会话id向用户发送sms 身份验证代码: $msisdn = 'abc'; $password = 'xyz'; $session_req="https://telenorcsms.com.pk:27677/corporate_sms2/api/auth.jsp?msisdn=".$msisdn."&pa

我在SMS项目在线购物商店工作,目的是当客户下订单时,系统应在结账期间自动发送客户提供号码的SMS

SMS公司为此向我们提供API文档。首先,他们需要生成会话id的身份验证过程,我们使用会话id向用户发送sms

身份验证代码:

$msisdn = 'abc';
$password = 'xyz';
$session_req="https://telenorcsms.com.pk:27677/corporate_sms2/api/auth.jsp?msisdn=".$msisdn."&password=".$password;

$xmlResponse = simplexml_load_file('https://telenorcsms.com.pk:27677/corporate_sms2/api/auth.jsp?msisdn=abc&password=xyz');
    $sessionID = $xmlResponse->corpsms->data;       
    var_dump($sessionID);
    echo "Session ID: " . $sessionID;
现在的问题是我无法获取会话id。当我使用
var\u dump($sessionID)时echo“会话ID:”,在屏幕上显示,则会输出大于NULL的代码$会话ID没有显示任何内容。如果我使用
标题('Location:'。$session_req)下面的代码是上面URL的响应,并成功显示会话id

成功回应:

<?xml version="1.0" encoding="UTF-8" ?> 
<corpsms> 
    <command>Auth_request</command> 
    <data>Session ID</data> 
    <response>OK</response>
</corpsms>
提前谢谢

MUNEEB

  • 将XML响应存储到PHP变量中(我们称之为$xmlResponse
  • 通过将与参数关联的API url提交到函数,您可以轻松地获得XML响应。然后使用函数将其转换为XML对象

  • 该响应可作为一个响应

  • 应通过以下方式访问会话ID:

    $sessionID = $xmlResponse->corpsms->data;
    

在hostgator服务器上执行脚本时,我也面临同样的问题,但在我的localhost服务器上,它可以正常工作。您只需要在WAMP或XAMP服务器中启用OPENSSL扩展

您是否尝试过使用curl?是的,但没有找到解决方案,因为其目的是获取会话id值。$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$session_req);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);//对于SSL证书curl\u setopt($ch,CURLOPT\u SSL\u VERIFYPEER,false);$response=curl\u exec($ch);$tokens=explode(“\n”,trim($response));卷曲关闭($ch);var_dump($response);var_dump($response)的输出是什么;如果是同一个xml,您可以使用PHP SimpleXML解析器解析它并获得值,谢谢您的回答!但是问题是我如何在PHP中执行URL$session_req=“;simplexml_load_file()将执行URL并以SimpleXMLElement.hi的形式返回XML响应。我尝试了它,但sessionid没有得到:$msisdn='abc';$password='xyz';$xmlResponse=simplexml_load_file(');$sessionid=$xmlResponse->corpsms->data;echo”会话ID:“.$sessionID;好吧,请更新您的问题并将您的问题和代码放在那里,以便更好地帮助您。您无法获取会话ID,因为request get参数错误,因此标记将由错误消息代码填充。请确定$sessionID的值是多少?尝试打印(回显)解决方法:在托管服务器上执行以下步骤1)启用OPENSSL 2)请求托管提供商打开端口27677以供外部请求。
$xmlResponseString = file_get_contents($apiUrl)
$xmlResponse = simplexml_load_string($xmlResponseString);
$sessionID = $xmlResponse->corpsms->data;