小编poi*_*rry的帖子

带有wsdl和双向SSL的PHP​​ SOAP

这是我第一次在PHP上做SOAP(实际上我是一个菜鸟),我坚持这个问题好几个月了.

https://wstest.oriongateway.com:22837/willani/services/oglws?wsdl
Run Code Online (Sandbox Code Playgroud)

这是webservice URL,他们在生产时请求双向SSL,他们为我提供了一组私钥和公共证书,可以在我的服务器上安装.

我可以通过在浏览器上安装私钥来查看URL.

此时,我已经通过无向SSL和单向SSL成功获得了webservice的响应,但是双向SSL无法正常工作.

我通过SOAP提交双向SSL时出现错误消息.

警告:SoapClient :: __ doRequest():SSL操作失败,代码为1. OpenSSL错误消息:错误:14094412:SSL例程:SSL3_READ_BYTES:sslv3警告错误证书/home/loadme/domains/loadme.my/public_html/system/OglWsService_noservice第124行的.php
警告:SoapClient :: __ doRequest():无法在第124行的/home/loadme/domains/loadme.my/public_html/system/OglWsService_noservice.php中启用加密
警告:SoapClient :: __ doRequest():connect ()失败:第124行/home/loadme/domains/loadme.my/public_html/system/OglWsService_noservice.php中的未指定错误

我的SOAP请求文件

<?php
require_once 'OglWsService.php';

$requestMsg = new RequestMsg;

$requestMsg->amount="1000";
$requestMsg->merchantId="620055";
$requestMsg->operatorId="IBS";
$requestMsg->retTransRef="102182ABCqw1238";
$requestMsg->terminalId="10000102";
$requestMsg->productCode="DIGI";
$requestMsg->transDateTime=date("YmdHis");
$requestMsg->transTraceId = (int)"123212321";


$in0 = new onlinePIN();
$in0->in0=$requestMsg;

$oglWsService = new OglWsService();

$reponseMsg = $oglWsService->onlinePIN($in0);
$arr=get_object_vars($reponseMsg);
print_r($arr);
echo $arr['onlinePINReturn']->transRef;
?>
Run Code Online (Sandbox Code Playgroud)

我的Webservice类

<?php
class RequestMsg {
  public $amount; // string
  public $merchantId; // string
  public $operatorId; // string
  public $orgTransRef; // string
  public $retTransRef; // …
Run Code Online (Sandbox Code Playgroud)

php ssl soap wsdl web-services

12
推荐指数
1
解决办法
1250
查看次数

标签 统计

php ×1

soap ×1

ssl ×1

web-services ×1

wsdl ×1