Payu(肯尼亚)在php中使用soap进行支付集成
我在Zend Framework(3.2)与SOAP API的PayU集成方面遇到了问题。 请让我知道我哪里做错了,我正在使用SOAP UI 5.5访问API,并且在读取XMLStreamReader时出错。 但我有一个错误:- 未找到类“SoapVar”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
$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';找不到