1
回答
关于PHP调用.NET WebService传参问题
【腾讯云】学生服务器套餐10元/月 >>>   
function CreditCardChargeAction(){
   $ezidebit_client = new \SoapClient("http://ws.cardcall.com.au:8092/CreditCardCharge.svc?WSDL");
   $ezidebitRequest = array("biz"=>array("BizID"=>"5","ClientIP"=>"101.178.140.96","HttpReferer"=>"https://www.hellophonecards.com.au/hpchome/recharge.aspx",
               "BMUserAdminID"=>"1","GMUserAdminID"=>"1","Reason"=>"TPC","CardName" => "1147725","CardNumber" => "4862700011382664","CVV"=>"111",
               "ExpiryYear" => "16","ExpiryMonth" => "10","Amount" => "10","Currency"=>"AUD", "SerialNo" => "CCAW0101171577","Bonus" => "0"));
   $soap_result = $ezidebit_client->DoCreditCardCharge($ezidebitRequest);
}

$ezidebitRequest这里不知道对应的传参格式,我调用的.NET WebService function是DoCreditCardCharge,然后参数是bizbasecontract这个类型,这个bizbasecontract是一个基类,其他类都是继承这个类的,我需要用到的是payphonecardbywebsitecontract这个类,所以不知道怎么传参了,
而.NET WebService payphonecardbywebsitecontract这里面,都是用的public没有private或者protected,我使用的某款API测试工具里面可以选择对应的类,但是我不知道,用什么格式来传递,这样的参数。


这是它的XML形式

这里是我传递参数有问题还是,.Net WebService那边没有写好?
如果没有写好要怎么写?谢谢?

如果按照我代码里面的传参去调用,他会报一个错误

print_r($ezidebit_client->__getFunctions());
print_r($ezidebit_client->__getType());
的结果

array (size=1)
  0 => string 'DoCreditCardChargeResponse DoCreditCardCharge(DoCreditCardCharge $parameters)' (length=77)
string 'struct PayOnlyContract {
 decimal Amount;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string Notes;
 string OrderNumber;
 int UserDialogSubCategoryID;
}' (length=213)
string 'struct BizBaseContract {
 int BMUserAdminID;
 int BizID;
 string ClientIP;
 int GMUserAdminID;
 string HttpReferer;
 string Reason;
}' (length=133)
string 'struct PayPhoneCardByWebsiteContract {
 decimal Amount;
 decimal Bonus;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string SerialNo;
}' (length=195)
string 'struct OrderPinsContract {
 decimal Amount;
 decimal Bonus;
 int CardProductID;
 string FaceValue;
 string MerchUniqRef;
 string OrderNumber;
 int Qty;
}' (length=153)
string 'struct PayFlyerCardContract {
 decimal Amount;
 decimal Bonus;
 string CVV;
 string CardName;
 string CardNumber;
 string CardTypePrefix;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
}' (length=192)
string 'struct PayPhoneCardByStaffContract {
 decimal Amount;
 decimal Bonus;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string SerialNo;
}' (length=193)
string 'struct PayUserContract {
 decimal Amount;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 int UserID;
}' (length=160)
string 'struct PayAgentCCContract {
 decimal Amount;
 string CVV;
 string CardName;
 string CardNumber;
 int ChargeID;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string Note;
}' (length=179)
string 'struct PayUserDialogContract {
 decimal Amount;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string Notes;
 int UserDialogID;
 int UserDialogSubCategoryID;
}' (length=217)
string 'struct ReturnValContract {
 string Msg;
 int Success;
}' (length=55)
string 'struct DoCreditCardCharge {
 BizBaseContract biz;
}' (length=51)
string 'struct DoCreditCardChargeResponse {
 ReturnValContract DoCreditCardChargeResult;
}' (length=82)
string 'int char' (length=8)
string 'duration duration' (length=17)
string 'string guid' (length=11)



PHP
举报
某渣
发帖于3年前 1回/450阅
共有1个答案 最后回答: 3年前
好吧,让.net那边重新写了一个方法,在BizBaseContract这里直接添加PayPhoneCardByWebsiteContract这个方法,不让他继承
array (size=2)
  0 => string 'DoCreditCardChargeResponse DoCreditCardCharge(DoCreditCardCharge $parameters)' (length=77)
  1 => string 'DoCreditCardChargeByWebsiteResponse DoCreditCardChargeByWebsite(DoCreditCardChargeByWebsite $parameters)' (length=104)

string 'struct PayAgentCCContract {
 decimal Amount;
 string CVV;
 string CardName;
 string CardNumber;
 int ChargeID;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string Note;
}' (length=179)

string 'struct BizBaseContract {
 int BMUserAdminID;
 int BizID;
 string ClientIP;
 int GMUserAdminID;
 string HttpReferer;
 string Reason;
}' (length=133)

string 'struct PayPhoneCardByWebsiteContract {
 decimal Amount;
 decimal Bonus;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string SerialNo;
}' (length=195)

string 'struct PayUserContract {
 decimal Amount;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 int UserID;
}' (length=160)

string 'struct PayFlyerCardContract {
 decimal Amount;
 decimal Bonus;
 string CVV;
 string CardName;
 string CardNumber;
 string CardTypePrefix;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
}' (length=192)

string 'struct PayOnlyContract {
 decimal Amount;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string Notes;
 string OrderNumber;
 int UserDialogSubCategoryID;
}' (length=213)

string 'struct PayPhoneCardByStaffContract {
 decimal Amount;
 decimal Bonus;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string SerialNo;
}' (length=193)

string 'struct OrderPinsContract {
 decimal Amount;
 decimal Bonus;
 int CardProductID;
 string FaceValue;
 string MerchUniqRef;
 string OrderNumber;
 int Qty;
}' (length=153)

string 'struct PayUserDialogContract {
 decimal Amount;
 string CVV;
 string CardName;
 string CardNumber;
 string Currency;
 int ExpiryMonth;
 int ExpiryYear;
 string Notes;
 int UserDialogID;
 int UserDialogSubCategoryID;
}' (length=217)

string 'struct ReturnValContract {
 string Msg;
 int Success;
}' (length=55)

string 'struct DoCreditCardCharge {
 BizBaseContract biz;
}' (length=51)

string 'struct DoCreditCardChargeResponse {
 ReturnValContract DoCreditCardChargeResult;
}' (length=82)

string 'struct DoCreditCardChargeByWebsite {
 PayPhoneCardByWebsiteContract biz;
}' (length=74)

string 'struct DoCreditCardChargeByWebsiteResponse {
 ReturnValContract DoCreditCardChargeByWebsiteResult;
}' (length=100)

string 'int char' (length=8)

string 'duration duration' (length=17)

string 'string guid' (length=11)



顶部