Payu(肯尼亚)在php中使用soap进行支付集成

Payu(肯尼亚)在php中使用soap进行支付集成,php,zend-framework,payment-gateway,payu,Php,Zend Framework,Payment Gateway,Payu,我在Zend Framework(3.2)与SOAP API的PayU集成方面遇到了问题。 请让我知道我哪里做错了,我正在使用SOAP UI 5.5访问API,并且在读取XMLStreamReader时出错。 但我有一个错误:- 未找到类“SoapVar” $baseUrl = 'https://staging.payu.co.za'; $soapWdslUrl = $baseUrl.'/service/PayUAPI?wsdl'; $payuRp

我在Zend Framework(3.2)与SOAP API的PayU集成方面遇到了问题。 请让我知道我哪里做错了,我正在使用SOAP UI 5.5访问API,并且在读取XMLStreamReader时出错。

但我有一个错误:-

未找到类“SoapVar”

        $baseUrl = 'https://staging.payu.co.za';
        $soapWdslUrl = $baseUrl.'/service/PayUAPI?wsdl';
        $payuRppUrl = $baseUrl.'/rpp.do?PayUReference=';
        $apiVersion = 'ONE_ZERO';
        $safeKey = '{0B387E02-870B-477F-BCD5-0541199ADC19}';
        $soapUsername = '200257';
        $soapPassword = 'JHVH6z1r';
        $merchantReference = "merchant_ref_".time();;

        $doTransactionArray = array();
        $doTransactionArray['Api'] = $apiVersion;
        $doTransactionArray['Safekey'] = $safeKey;
        $doTransactionArray['TransactionType'] = 'PAYMENT';     

        $doTransactionArray['AdditionalInformation']['merchantReference'] = $merchantReference;
        $doTransactionArray['Basket']['description'] = "Sudhir";
        $doTransactionArray['Basket']['amountInCents'] = "1";
        $doTransactionArray['Basket']['currencyCode'] = 'KES';
        $doTransactionArray['Customer']['merchantUserId'] = "7";
        $doTransactionArray['Customer']['email'] = "john@doe.com";
        $doTransactionArray['Customer']['firstName'] = 'John';
        $doTransactionArray['Customer']['lastName'] = 'Doe';
        $doTransactionArray['Customer']['mobile'] = '0211234567';
        $doTransactionArray['Customer']['regionalId'] = '1234512345122';
        $doTransactionArray['Customer']['countryCode'] = '27';
        $doTransactionArray['Creditcard']['nameOnCard'] = "Mr John Doe";
        $doTransactionArray['Creditcard']['cardNumber'] = "5453010000064261";
        $doTransactionArray['Creditcard']['cardExpiry'] = "0521";
        $doTransactionArray['Creditcard']['cvv'] = "123";  
        $doTransactionArray['Creditcard']['amountInCents'] = $doTransactionArray['Basket']['amountInCents']; 
        try {
            $soapDataArray = array();    
            $soapDataArray = array_merge($soapDataArray, $doTransactionArray );

            $headerXml = '<wsse:Security SOAP-ENV:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">';
            $headerXml .= '<wsse:UsernameToken wsu:Id="UsernameToken-9" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">';
            $headerXml .= '<wsse:Username>'.$soapUsername.'</wsse:Username>';
            $headerXml .= '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">'.$soapPassword.'</wsse:Password>';
            $headerXml .= '</wsse:UsernameToken>';
            $headerXml .= '</wsse:Security>';
            $headerbody = new \SoapVar($headerXml, XSD_ANYXML, null, null, null);

            // 3. Create Soap Header.        
            $ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'; //Namespace of the WS. 
            $header = new \SOAPHeader($ns, 'Security', $headerbody, true);           
            $soap_client = new \SoapClient($soapWdslUrl, array("trace" => 1, "exception" => 0)); 
            $soap_client->__setSoapHeaders($header); 
            $soapCallResult = $soap_client->doTransaction($soapDataArray); 
            $returnData = json_decode(json_encode($soapCallResult),true);

            $decodedXmlData = json_decode(json_encode((array) simplexml_load_string($returnData)),true); 

        }
        catch(Exception $e) {
            var_dump($e);
            die();
        }
$baseUrl='1!'https://staging.payu.co.za';
$soapWdslUrl=$baseUrl'/service/PayUAPI?wsdl';
$payurpurl=$baseUrl.'/rpp.do?PayUReference=';
$apiVersion='ONE_ZERO';
$safeKey='{0B387E02-870B-477F-BCD5-0541199ADC19}';
$soapUsername='200257';
$soapPassword='JHVH6z1r';
$merchantReference=“merchant_ref”。time();;
$doTransactionArray=array();
$doTransactionArray['Api']=$apiVersion;
$DotTransactionArray['Safekey']=$Safekey;
$DotTransactionArray['TransactionType']='PAYMENT';
$DotTransactionArray['AdditionalInformation']['merchantReference']=$merchantReference;
$doTransactionArray['Basket']['description']=“Sudhir”;
$doTransactionArray['Basket']['amountancents']=“1”;
$doTransactionArray['Basket']['currencyCode']='KES';
$DotTransactionArray['Customer']['merchantUserId']=“7”;
$DotTransactionArray['Customer']['email']=”john@doe.com";
$DotTransactionArray['Customer']['firstName']='John';
$DotTransactionArray['Customer']['lastName']='Doe';
$DotTransactionArray['Customer']['mobile']='0211234567';
$DotTransactionArray['Customer']['regionalId']='1234512345122';
$DotTransactionArray['Customer']['countryCode']='27';
$doTransactionArray['Creditcard']['nameOnCard']=“John Doe先生”;
$DotTransactionArray['Creditcard']['cardNumber']=“5453010000064261”;
$DotTransactionArray['Creditcard']['cardExpiry']=“0521”;
$DotTransactionArray['Creditcard']['cvv']=“123”;
$DotTransactionArray['Creditcard']['Amountancents']=$DotTransactionArray['Basket']['Amountancents'];
试一试{
$soapDataArray=array();
$soapDataArray=array\u merge($soapDataArray,$DotTransactionArray);
$headerXml='';
$headerXml.='';
$headerXml.=''.$soapUsername';
$headerXml.=''.$soapPassword';
$headerXml.='';
$headerXml.='';
$headerbody=new\SoapVar($headerXml,XSD_ANYXML,null,null);
//3.创建Soap头。
$ns=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd“;//WS的命名空间。
$header=new\SOAPHeader($ns,'Security',$headerbody,true);
$soap_client=new\SoapClient($soapWdslUrl,数组(“跟踪”=>1,“异常”=>0));
$soap_client->__setSoapHeaders($header);
$soapCallResult=$soap\u client->doTransaction($soapDataArray);
$returnData=json_解码(json_编码($soapCallResult),true);
$decodedXmlData=json_decode(json_encode((数组)simplexml_load_string($returnData)),true);
}
捕获(例外$e){
var_dump($e);
模具();
}
您需要将“new SoapVar”更新为“new\SoapVar”--因为它假设“SoapVar”是一个与您所在文件具有相同名称空间的类。。。因此它试图调用:Application\Utility\Payment\Zend\SoapVarStill get error Class';SoapVar';找不到您需要将“new SoapVar”更新为“new\SoapVar”--因为它假设“SoapVar”是一个与您所在文件具有相同命名空间的类。。。因此它试图调用:Application\Utility\Payment\Zend\SoapVarStill get error Class';SoapVar';找不到