эквивалентный рубиновый хеш или массив в xml для вызова мыла - PullRequest
1 голос
/ 02 ноября 2011

Я хочу позвонить на мыльный веб-сервис от zoyto.Я пробовал следующий код, который не работает для меня: -

def get_order_status
    require 'soap/wsdlDriver' 
    api_key = 'key value'
    api_secret = 'secret' 
    timestamp = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ") 
    version = "2.0" 
    service_name = 'Zoyto Fulfillment Service' 
    method = 'getOrderStatus' 
    canonical_string = (service_name + method + timestamp).downcase 
    digest = OpenSSL::Digest::Digest.new('sha1') 
    signature = (Base64::encode64(OpenSSL::HMAC.digest(digest, api_secret, canonical_string))).chomp
    clientorderids = [ "1"] 
    wsdlfile = "https://test.zoyto.com/zfulfillment/api/?WSDL" 
    service = "Zoyto Fulfillment" 
    digest = OpenSSL::Digest::Digest.new('sha1')
    XSD::Charset.encoding = 'UTF8' 
    driver = SOAP::WSDLDriverFactory.new(wsdlfile).create_rpc_driver
    driver.wiredump_dev = $stdout
    response = driver.getOrderStatus({ :api_key => api_key, :timestamp => timestamp, :signature => signature, :version => version})
  end

, и входной XML-код выглядит такперейти в веб-сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...