#!/usr/bin/perl -- use strict; use warnings; use SOAP::Lite +trace => 'debug', readable => 1; my $soap = SOAP::Lite-> service('http://10.230.0.22:7782/services/CBSInterfaceAccountMgrService?wsdl'); $soap->ns("http://www.huawei.com/bme/cbsinterface/common" => 'ns1'); $soap->ns("http://www.huawei.com/bme/cbsinterface/cbs/accountmgr" => 'ns2'); $soap->ns("http://www.huawei.com/bme/cbsinterface/cbs/accountmgrmsg" => 'ns3'); $soap->envprefix('SOAP-ENV'); my @data = SOAP::Data->name("RequestHeader" => \SOAP::Data->value( SOAP::Data->name("CommandId" => 'Payment')->prefix('ns1'), SOAP::Data->name("Version" => '1')->prefix('ns1'), SOAP::Data->name("TransactionId" => '')->prefix('ns1'), SOAP::Data->name("SequenceId" => '1')->prefix('ns1'), SOAP::Data->name("RequestType" => 'Event')->prefix('ns1'), SOAP::Data->name("SerialNo" => 'USSD_00000001')->prefix('ns1'), ) ); push (@data, SOAP::Data->name("PaymentRequestMsg" => \SOAP::Data->value( SOAP::Data->name("SubscriberNo" => '123')->prefix('ns2'), SOAP::Data->name("PaymentAmt" => 100)->prefix('ns2'), SOAP::Data->name("PaymentMode" => 1001)->prefix('ns2'), ) )); my $result = $soap->Payment(@data) #### SOAP::Transport::HTTP::Client::send_receive: POST http://10.230.0.22:7782//services/CBSInterfaceAccountMgrService HTTP/1.1 Accept: text/xml Accept: multipart/* Accept: application/soap Content-Length: 1075 Content-Type: text/xml; charset=utf-8 SOAPAction: "Payment" SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal Server Error Connection: close Date: Tue, 20 Oct 2015 06:46:42 GMT Server: Apache-Coyote/1.1 Content-Type: text/xml;charset=utf-8 Client-Date: Tue, 20 Oct 2015 06:44:52 GMT Client-Peer: 10.230.0.22:7782 Client-Response-Num: 1 Set-Cookie: JSESSIONID=9B4FC1D1F720D25705C2CC7FC46B9616.server1; Path=/ X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5 X-UA-Compatible: IE=EmulateIE7 soapenv:ClientData binding error