2011-07-07 99 views
2

在我的SOAP文檔標題需要有一個屬性是這樣的:如何向Savon添加屬性到標題標籤?

<soap:Header> 
<eWAYHeader xmlns="https://www.eway.com.au/gateway/managedpayment"> 
    <eWAYCustomerID>string</eWAYCustomerID> 
    <Username>string</Username> 
    <Password>string</Password> 
</eWAYHeader> 

的eWAYHeader需要一個xmlns屬性。

我已經試過

def create_customer(customer, card) 
    response = @client.request(:create_customer, "xmlns" => "https://www.eway.com.au/gateway/managedpayment") do 
     soap.header = header 
     soap.body = create_customer_body(customer, card) 
    end 
    end 

    private 

    def header 
    { 
     "eWAYHeader" => { 
     :attributes! => { :xmlns => 'http://www.eway.com.au/gateway/managedpayment' }, 
     "eWayCustomerID" => '87654321', 
     "Username" => '[email protected]', 
     "Password"=> 'test123' 
     } 
    } 
    end 

但屬性!條目被忽略。

soap.header只接受一個哈希作爲參數,所以我不能只是使用字符串來設置它的值。

我如何在薩翁實現這個目標?

感謝,

馬丁

回答

5

你可以這樣做

soap.header = { 
    "eWAYHeader" => { 
    "eWayCustomerID" => '87654321', 
    "Username" => '[email protected]', 
    "Password"=> 'test123' 
    }, 
    :attributes! => {"eWAYHeader" => { :xmlns => 'http://www.eway.com.au/gateway/managedpayment' } }, } 
+0

感謝阿尼爾實現,我終於可以嘗試這一點,它做的伎倆。 –

+1

格式已更新:http://stackoverflow.com/a/28462391/850782 – EpicVoyage

相關問題