gpt4 book ai didi

SoapFault 异常 : [HTTP] Bad Request In eway

转载 作者:行者123 更新时间:2023-12-01 10:05:25 26 4
gpt4 key购买 nike

我要集成 eway token 支付集成,但我正面临这个问题。

SoapFault exception: [HTTP] Bad Request

wsdl文件在这里

https://www.eway.com.au/gateway/ManagedPaymentService/managedCreditCardPayment.asmx?wsdl

这里是xml格式

https://www.eway.com.au/gateway/ManagedPaymentService/test/managedcreditcardpayment.asmx?op=CreateCustomer

我用 $client->__getLastRequest(); 得到了 xml 文件;脚本是

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="https://www.eway.com.au/gateway/managedpayment" xmlns:ns2="eWAYHeader">
<env:Header>
<ns2:http://www.eway.com.au/gateway/managedPayment>
<item>
<key>eWAYCustomerID</key><value>87654321</value>
</item>
<item><key>Username</key><value>test@eway.com.au</value>
</item>
<item><key>Password</key><value>test123</value>
</item>
</ns2:http://www.eway.com.au/gateway/managedPayment>
</env:Header><env:Body>
<ns1:CreateCustomer>
<ns1:Title>Mr.</ns1:Title>
<ns1:FirstName>Joe</ns1:FirstName>
<ns1:LastName>Bloggs</ns1:LastName>
<ns1:Address>Bloggs Enterprise</ns1:Address>
<ns1:Suburb>Capital City</ns1:Suburb>
<ns1:State>ACT</ns1:State>
<ns1:Company>Bloggs</ns1:Company>
<ns1:PostCode>2111</ns1:PostCode>
<ns1:Country>au</ns1:Country>
<ns1:Email>test@eway.com.au</ns1:Email>
<ns1:Fax>0298989898</ns1:Fax>
<ns1:Phone>0297979797</ns1:Phone>
<ns1:Mobile>9841381980</ns1:Mobile>
<ns1:CustomerRef>Ref123</ns1:CustomerRef>
<ns1:JobDesc>Web developer</ns1:JobDesc>
<ns1:Comments>Please Ship ASASP</ns1:Comments>
<ns1:URL>http://www.test.com.au</ns1:URL>
<ns1:CCNumber>4444333322221111</ns1:CCNumber>
<ns1:CCNameOnCard>Test Account </ns1:CCNameOnCard>
<ns1:CCExpiryMonth>1</ns1:CCExpiryMonth>
<ns1:CCExpiryYear>13</ns1:CCExpiryYear>
</ns1:CreateCustomer>
</env:Body>
</env:Envelope>

是否有两种xml结构对soap的影响:

或者这是 soap header 的问题?

我是这样设置标题的

$data = array('eWAYCustomerID'=>'87654321',
'Username' => "test@eway.com.au",
'Password' => "test123"

);

$header = new SoapHeader('eWAYHeader',$url,$data);

$client->__setSoapHeaders($header);

我得到:

SoapFault exception: [HTTP] Bad Request in D:\wamp\www\eway\newfile.php:196
Stack trace:
#0 [internal function]: SoapClient->__doRequest('__call('CreateCustomer', Array)
#2 D:\wamp\www\eway\newfile.php(196): SoapClient->CreateCustomer(Array)
#3 {main}

这个错误总是在我调用这个函数的时候

$customerinfo = 
array(
'Title'=>'Mr.',
'FirstName' => 'Joe',
'LastName'=>'Bloggs',
'Address'=>'Bloggs Enterprise',
'Suburb'=>'Capital City',
'State'=>'ACT',
'Company'=>'Bloggs',
'PostCode'=>'2111',
'Country'=>'au',
'Email'=>'test@eway.com.au',
'Fax'=>'0298989898',
'Phone'=>'0297979797',
'Mobile'=>'9841381980',
'CustomerRef'=>'Ref123',
'JobDesc'=>'Web developer',
'Comments'=>'Please Ship ASASP',
'URL'=>'http://www.test.com.au',
'CCNumber'=>'4444333322221111',
'CCNameOnCard'=>'Test Account ',
'CCExpiryMonth'=>'01',
'CCExpiryYear'=>'13'

);

$client->CreateCustomer($customerinfo);

任何帮助都会更有值(value)。

提前致谢。

最佳答案

尝试改用下面的代码:

<?php
$apiUrl = 'https://www.eway.com.au/gateway/ManagedPaymentService/test/managedcreditcardpayment.asmx?WSDL';
$options = array( 'trace' => 1, 'exceptions' => 1);
try{
$client = new SoapClient($apiUrl, $options);
$data = array(
'eWAYCustomerID' => '87654321',
'Username' => "test@eway.com.au",
'Password' => "test123"
);

$header = new SoapHeader('https://www.eway.com.au/gateway/managedpayment', 'eWAYHeader', $data, false);
$client->__setSoapHeaders($header);

$customerinfo = array(
'Title'=>'Mr.',
'FirstName' => 'Joe',
'LastName'=>'Bloggs',
'Address'=>'Bloggs Enterprise',
'Suburb'=>'Capital City',
'State'=>'ACT',
'Company'=>'Bloggs',
'PostCode'=>'2111',
'Country'=>'au',
'Email'=>'test@eway.com.au',
'Fax'=>'0298989898',
'Phone'=>'0297979797',
'Mobile'=>'9841381980',
'CustomerRef'=>'Ref123',
'JobDesc'=>'Web developer',
'Comments'=>'Please Ship ASASP',
'URL'=>'http://www.test.com.au',
'CCNumber'=>'4444333322221111',
'CCNameOnCard'=>'Test Account ',
'CCExpiryMonth'=>'01',
'CCExpiryYear'=>'13'

);

$result = $client->CreateCustomer($customerinfo);
var_dump($result);

}catch(Exception $e){
echo $e->getMessage();
}

这对我有用。

注意事项:
1. 始终尝试将代码包装在 try{} catch{} block
2. 确保检查 php_openssl 扩展是否启用
3.禁用wsdl缓存并启用异常
4. 注意 SoapHeader 构造函数。

希望对你有帮助。
问候

关于SoapFault 异常 : [HTTP] Bad Request In eway,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11394612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com