Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP将对象传递给.NETWeb服务_Php_.net_Soap - Fatal编程技术网

通过PHP将对象传递给.NETWeb服务

通过PHP将对象传递给.NETWeb服务,php,.net,soap,Php,.net,Soap,我们有.NETSOAP服务,我们需要调用其中的一个服务方法。我已经尝试创建stdClass()的实例,并分配.NET所需的属性。我无法将对象传递给.Net服务 我在这里使用过Nusoap,但如果您有SOAP PHP类解决方案,也会邀请您使用 $client_card = new nusoap_client('https://uatapi.viad.com/ges/v1/orderService.svc?wsdl', 'WSDL'); $obj = new stdClass(); $obj->

我们有.NETSOAP服务,我们需要调用其中的一个服务方法。我已经尝试创建stdClass()的实例,并分配.NET所需的属性。我无法将对象传递给.Net服务

我在这里使用过Nusoap,但如果您有SOAP PHP类解决方案,也会邀请您使用

$client_card = new nusoap_client('https://uatapi.viad.com/ges/v1/orderService.svc?wsdl', 'WSDL');
$obj = new stdClass();
$obj->CreditCardNumber = "4518169332998699";
$obj->ExpireMonth = 05;
$obj->ExpireYear = 2025;
$obj->CardNickname = "Test";
$obj->CardholderName = "test";
$obj->Address = "test";
$obj->City = "Anywhere";
$obj->State = "test";
$obj->PostalCode = "test";
$obj->Country ="test";
$parameter= array("CreditCardSubmission" => $obj);

$obj1 = $client_card->call('SubmitCreditCardInformation',  
                                            array("applicationSessionId" => $id, $parameter));
这是我的方法签名

string SubmitCreditCardInformation(string applicationSessionId, CreditCardSubmission request)


[DataContract(Namespace = "www.xxx.com")]
  public class CreditCardSubmission
  { 
     [DataMember] public string CreditCardNumber { get; set; } 
     [DataMember] public int ExpireMonth { get; set; }
    ........
  }
我的xml代码

<wsdl:operation name="SubmitCreditCardInformation">
<soap:operation soapAction="www.viad.com/v1/IOrderService/SubmitCreditCardInformation" style="document"/>
<wsdl:input><soap:body use="literal"/></wsdl:input>
<wsdl:output><soap:body use="literal"/></wsdl:output>
<wsdl:fault name="DictionaryOf_String_StringFault">
<soap:fault name="DictionaryOf_String_StringFault" use="literal"/></wsdl:fault></wsdl:operation>

任何帮助都将不胜感激。Thx……

您的
OrderService.svc.cs
代码的第1248行是什么?当它失败时,它正在处理哪一位数据?如果不看到失败的代码,我们真的无法提供帮助。好的,对不起!我是新的soap,正在向web服务发送适当的对象?表示创建对象并传递给服务。。
 Array
(
    [faultcode] => a:InternalServiceFault
    [faultstring] => Array
        (
            [!xml:lang] => en-US
            [!] => Object reference not set to an instance of an object.
        )

    [detail] => Array
        (
            [ExceptionDetail] => Array
                (
                    [HelpLink] => 
                    [InnerException] => 
                    [Message] => Object reference not set to an instance of an object.
                    [StackTrace] =>    at Viad.Services.Public.GES.v1.OrderService.SubmitCreditCardInformation(String applicationSessionId, CreditCardSubmission request) in c:\SVN\Viad.GES.Services\Branches\PublicServices_v1\Viad.Services.Public.GES\v1\OrderService.svc.cs:line 1248
   at SyncInvokeSubmitCreditCardInformation(Object , Object[] , Object[] )
   at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
                    [Type] => System.NullReferenceException
                )

        )

)