Php 此/任何SOAP调用是否需要“allow\u url\u fopen”?

Php 此/任何SOAP调用是否需要“allow\u url\u fopen”?,php,curl,soap,soap-client,Php,Curl,Soap,Soap Client,如果要执行如下SOAP调用,是否需要将“allow\u url\u fopen”设置为yes/on,请告诉我 如果有人想知道我为什么要这么做,我可以提供更多的信息,但在这个阶段我会尽量让问题简单,因为目前我正试图弄清楚我要做的事情是否需要“allow_url_fopen” 如果需要,请有人告诉我哪个部分特别需要“allow\u url\u fopen”部分,以及我如何使用其他类似cURL的东西来完成我在这里尝试的工作 提前谢谢各位 $username = 'xxxxxxx@xxxxxxx.com

如果要执行如下SOAP调用,是否需要将“allow\u url\u fopen”设置为yes/on,请告诉我

如果有人想知道我为什么要这么做,我可以提供更多的信息,但在这个阶段我会尽量让问题简单,因为目前我正试图弄清楚我要做的事情是否需要“allow_url_fopen”

如果需要,请有人告诉我哪个部分特别需要“allow\u url\u fopen”部分,以及我如何使用其他类似cURL的东西来完成我在这里尝试的工作

提前谢谢各位

$username = 'xxxxxxx@xxxxxxx.com';
$password = 'xxxxxxxx';

$profile_id = 'xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx';

$wsdl = 'https://pilot.id3global.com/ID3gWS/ID3global.svc?wsdl';

class clsWSSEAuth { 
        private $Username; 
        private $Password;  
        function __construct($username, $password) { 
            $this->Username=$username; 
            $this->Password=$password; 
        } 
    } 

    class clsWSSEToken { 
        private $UsernameToken; 
        function __construct ($UsernameToken) { 
            $this->UsernameToken = $UsernameToken; 
        } 
    } 

    $strWSSENS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"; 

    //Auth
    $objSoapVarUser = new SoapVar($username, XSD_STRING, NULL, $strWSSENS, NULL, $strWSSENS); 
    $objSoapVarPass = new SoapVar($password, XSD_STRING, NULL, $strWSSENS, NULL, $strWSSENS); 
    $objWSSEAuth = new clsWSSEAuth($objSoapVarUser, $objSoapVarPass); 

    //Token
    $objSoapVarWSSEToken = new SoapVar($objWSSEAuth, SOAP_ENC_OBJECT, NULL, $strWSSENS, 'UsernameToken', $strWSSENS); 
    $objWSSEToken = new clsWSSEToken($objSoapVarWSSEToken); 

    //Header
    $objSoapVarWSSEAuth = new SoapVar($objWSSEToken, SOAP_ENC_OBJECT, NULL, $strWSSENS, 'UsernameToken', $strWSSENS); 
    $objSoapVarHeaderVal = new SoapVar($objSoapVarWSSEAuth, SOAP_ENC_OBJECT, NULL, $strWSSENS, 'Security', $strWSSENS); 
    $objSoapVarWSSEHeader = new SoapHeader($strWSSENS, 'Security', $objSoapVarHeaderVal, true); 

    //Client
    $client = new SoapClient($wsdl, array(
        'soap_version' => SOAP_1_1, 
        'trace' => 1, 
        'exception' => true, 
    )); 

    $client->__setSoapHeaders($objSoapVarWSSEHeader);

    // Build data array to use for AML check
    $data = array(xxxxxxxxxxxxx);

// Run the check
    $applicant_1_aml = FALSE;
    try {
        $result = $client->AuthenticateSP(array(
            'ProfileIDVersion' => array('ID' => $profile_id),
            'InputData' => $data,
        ));
        $applicant_1_aml = TRUE;
        $applicant_1_band = $result->AuthenticateSPResult->BandText;
        $applicant_1_score = $result->AuthenticateSPResult->Score;
    } catch(Exception $e) {
        throw $e;
        //var_dump($e);
    }

问一个显而易见的问题,你的代码目前运行吗?我很高兴你这么问,因为这是问题的一部分。它确实运行并成功运行了大约6个月。然后它突然停止工作,当尝试SOAP调用时,我得到一个500内部服务器错误。我可以从浏览器访问WSDL,所以这不是问题。他们最近是否实现了身份验证?好吧,也许吧,但是当我在本地机器上设置了一个完全相同的副本时,我能够成功地制作这些SOAP。这让我相信身份验证并没有被添加。当我说“精确副本”时,我指的是我在本地机器上运行的实时/生产站点的副本。SOAP调用正在那里工作,这让我相信身份验证最近还没有实现,因为我仍然可以在本地副本上执行SOAP调用。