【问题标题】:Set Shipping Name - Authorize.net PayPal Express API - Ruby设置运输名称 - Authorize.net PayPal Express API - Ruby
【发布时间】:2017-11-27 07:20:27
【问题描述】:

我有一个使用Authorize.net's PayPal Express API Authorize & Capture function 的有效Ruby 实现。 我正在尝试将运输方法 firstName 添加到请求中,但我总是收到错误消息。这是我的代码:

transaction = Transaction.new("xxxxx","xxxxx")
request = CreateTransactionRequest.new

    payPalType = PayPalType.new()
    payPalType.successUrl = "https://www.example.com"
    payPalType.cancelUrl = "https://www.example.com"

    #standard api call to retrieve response
    paymentType = PaymentType.new()
    paymentType.payPal = payPalType


    request.transactionRequest = TransactionRequestType.new()

    request.transactionRequest.amount = 99.99

    request.transactionRequest.payment = paymentType
    request.transactionRequest.transactionType = TransactionTypeEnum::AuthCaptureTransaction


    #I WANT TO SET THE SHIPPING FIRST NAME HERE:
    request.transactionRequest.shipTo.firstName="Bob"

    response = transaction.create_transaction(request)

这是我在尝试设置运输方式名称时遇到的错误:

NoMethodError (undefined method `firstName=' for nil:NilClass):

我了解错误,但无法确定是我在错误的对象上调用了错误的方法还是发生了什么。文档对此方法调用不是很清楚。任何帮助,将不胜感激。谢谢

【问题讨论】:

    标签: ruby-on-rails ruby paypal authorize.net


    【解决方案1】:

    我只使用了 billTo 而不是 shipTo,虽然我猜他们都应该接受 CustomerAddressType

    所以应该是这样的:

    transactionRequest.shipTo = CustomerAddressType.new(
            user[:user_name][:first],
            user[:user_name][:last],
            nil,
            user[:user_address][:street],
            user[:user_address][:city],
            user[:user_address][:state],
            user[:user_address][:zip],
            'USA'
          )
    

    我留下了字段,但您应该检查“shipTo”的顺序是否相同。

    【讨论】:

    • 这对两者都适用。这也解决了我的重复交易问题。感谢您的帮助。
    猜你喜欢
    • 2016-07-18
    • 2011-07-15
    • 1970-01-01
    • 2013-08-06
    • 2016-04-12
    • 2018-01-12
    • 2015-12-04
    • 2020-08-04
    • 2020-06-27
    相关资源
    最近更新 更多