2009-10-11 7 views
0

Celltrust의 SMS 게이트웨이에 웹 서비스를 설정하려고합니다. 난 그들의 SDK가 있고 내가 필요로하는 사용자 지정 헤더를 만들려면 soap4r 사용하려고합니다. 필자는 자신이 필요로하는 것을 보여주는 실제 XML 문서를 제공하지 않기 때문에 자신의 형식으로 가져 오기 위해해야 ​​할 일이 무엇인지 정확히 알지 못합니다. 그들이 말하는 모든 것은 헤더에 사용자 이름과 암호를 제공해야한다는 것입니다.soap4r 사용자 정의 헤더에 대해 혼동했습니다.

다음 PHP 예제 코드가 주어지면 Ruby에서 어떻게 처리 할 수 ​​있습니까?

$URN = "urn:notify.soap.primemessage.com"; 
$WSDL="http://pmgateway.net/pmws/services/TxTMessageService?wsdl"; 

//SOAP elements (don’t edit, and case sensitive!) 
$CTUSERNAME = "Username"; 
$CTPASSWORD = "Password"; 
$CTNICKNAME = "nickname"; 
$DESTINATION = "destination"; 
$MESSAGE = "message"; 

$USER_ID = "USERNAME"; //your username at CellTrust 
$NICKNAME = "NICKNAME";   //your nickname at Celltrust 
$PASSWORD = "PASSWORD"; //your password at Celltrust 

//create user and password SOAP header elements 
$UserHdr = new SoapHeader($URN, $CTUSERNAME, $USER_ID, false); 
$PassHdr = new SoapHeader($URN, $CTPASSWORD, $PASSWORD, false); 

// call the method here 

SOAP :: Header :: SimpleHandler의 파생 클래스를 만들었습니다. 내가 잘 모르는 부분은 네임 스페이스를 두 번 지정할 필요가 있는지 (사용자 이름은 한 번, 암호는 한 번) 또는 생성 방법을 지정하는 것입니다. 설명서는 네임 스페이스에 대한 이름을 제공하지 않으며 Ruby에서 "새 SoapHeader"를 호출하는 방법을 잘 모릅니다.

아무도 도와 줄 수 있습니까?

class MyHandler < SOAP::Header::SimpleHandler 

    def initialize(namespace, name, value) 
    super(XSD::QName.new(namespace, name)) 
    @value = value 
    end 

    def on_simple_outbound 
    @value 
    end 
end 

을 그럼 그냥 할 : 당신이 언급으로

답변

0

당신은, SOAP :: 헤더 :: SimpleHandler의 서브 클래스를 생성 할 필요가

namespace = 'INSERT_NAMESPACE_URL_HERE' 
# 'driver' below is the Soap4R driver for the service 
driver.headerhandler << MyHandler.new(namespace, 'Username', 'INSERT_USERNAME_HERE') 
driver.headerhandler << MyHandler.new(namespace, 'Password', 'INSERT_PASSWORD_HERE') 
관련 문제