2017-06-23 5 views
0

Authorize.net's PayPal Express API Authorize & Capture functionを使用してRubyを実装しました。 リクエストに配送メソッドfirstNameを追加しようとしていますが、いつもエラーが発生します。ここに私のコードは次のとおりです。ここで配送名を設定する - Authorize.net PayPal Express API - Ruby

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): 

私はエラーを理解しますが、どちらか私は呼び出していた場合に把握することはできません間違ったオブジェクトのメソッドや何が起こっているか。このメソッド呼び出しでは、ドキュメントはあまり明確ではありません。どんな助けもありがとう。おかげ

私は彼らの両方がCustomerAddressTypeを受け入れる必要がありますねものの、私は、billToなくshipTo要素を使用しました

答えて

1

ので、それは何かのようにする必要があります:

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」と同じ場合。

+0

これは両方に対して完全に機能します。これにより、私の重複トランザクションの問題も修正されました。助けてくれてありがとう。 –

関連する問題