2014-02-07 43 views
3

我正在使用ActiveMerchant並且結帳過程將完成,導致最終用戶收取正確的金額,但收據發送給最終用戶貝寶和貝寶後端項目標題和說明缺失。但他們表現出了起來,爲了預覽屏幕上在用戶登錄到自己的支付寶賬戶ActiveMerchant PaypalExpress缺失項目描述

這裏是我使用的設置貝寶交易代碼:

setup_response = PAYPAL_GATEWAY.setup_purchase(@product.price.cents, 
    :ip => request.remote_ip, 
    :return_url => url_for(:action => 'paypal_confirm', :only_path => false), 
    :cancel_return_url => root_url, 
    :items => [{ 
     :name => @product.title, 
     :quantity => 1, 
     :amount => @product.price.cents 
}] 

用戶後登錄並完成付款流程並將paypal返回到我的域名上的URL我收到以下回復:

details_response = PAYPAL_GATEWAY.details_for(params[:token]) 

response: #<ActiveMerchant::Billing::PaypalExpressResponse:0x007fe06e73a6d0 @params={"timestamp"=>"2014-02-07T00:53:40Z", "ack"=>"Success", "correlation_id"=>"1e941b048cb0c", "version"=>"72", "build"=>"9605603", "token"=>"<TOKEN>", "payer"=>"[email protected]", "payer_id"=>"<PAYER ID>", "payer_status"=>"verified", "salutation"=>nil, "first_name"=>"Info", "middle_name"=>nil, "last_name"=>"", "suffix"=>nil, "payer_country"=>"US", "payer_business"=>nil, "name"=>"ITEMDESCRIPTION", "street1"=>"1 Main St", "street2"=>nil, "city_name"=>"San Jose", "state_or_province"=>"CA", "country"=>"US", "country_name"=>"United States", "postal_code"=>"95131", "address_owner"=>"PayPal", "address_status"=>"Confirmed", "order_total"=>"14.99", "order_total_currency_id"=>"USD", "item_total"=>"14.99", "item_total_currency_id"=>"USD", "shipping_total"=>"0.00", "shipping_total_currency_id"=>"USD", "handling_total"=>"0.00", "handling_total_currency_id"=>"USD", "tax_total"=>"0.00", "tax_total_currency_id"=>"USD", "phone"=>nil, "address_id"=>nil, "external_address_id"=>nil, "quantity"=>"1", "tax"=>"0.00", "tax_currency_id"=>"USD", "amount"=>"14.99", "amount_currency_id"=>"USD", "ebay_item_payment_details_item"=>nil, "insurance_total"=>"0.00", "insurance_total_currency_id"=>"USD", "shipping_discount"=>"0.00", "shipping_discount_currency_id"=>"USD", "insurance_option_offered"=>"false", "seller_details"=>nil, "payment_request_id"=>nil, "order_url"=>nil, "soft_descriptor"=>nil, "checkout_status"=>"PaymentActionNotInitiated", "payment_request_info"=>nil, "Token"=>"EC-2TA24464XG397043V", "PayerInfo"=>{"Payer"=>"[email protected]", "PayerID"=>"<PAYER ID>", "PayerStatus"=>"verified", "PayerName"=>{"Salutation"=>nil, "FirstName"=>"Info", "MiddleName"=>nil, "LastName"=>"Info", "Suffix"=>nil}, "PayerCountry"=>"US", "PayerBusiness"=>nil, "Address"=>{"Name"=>"Info", "Street1"=>"1 Main St", "Street2"=>nil, "CityName"=>"San Jose", "StateOrProvince"=>"CA", "Country"=>"US", "CountryName"=>"United States", "PostalCode"=>"95131", "AddressOwner"=>"PayPal", "AddressStatus"=>"Confirmed"}}, "PaymentDetails"=>{"OrderTotal"=>"14.99", "ItemTotal"=>"14.99", "ShippingTotal"=>"0.00", "HandlingTotal"=>"0.00", "TaxTotal"=>"0.00", "ShipToAddress"=>{"Name"=>"Info", "Street1"=>"1 Main St", "Street2"=>nil, "CityName"=>"San Jose", "StateOrProvince"=>"CA", "Country"=>"US", "CountryName"=>"United States", "Phone"=>nil, "PostalCode"=>"95131", "AddressID"=>nil, "AddressOwner"=>"PayPal", "ExternalAddressID"=>nil, "AddressStatus"=>"Confirmed"}, "PaymentDetailsItem"=>{"Name"=>"ITEMDESCRIPTION", "Quantity"=>"1", "Tax"=>"0.00", "Amount"=>"14.99", "EbayItemPaymentDetailsItem"=>nil}, "InsuranceTotal"=>"0.00", "ShippingDiscount"=>"0.00", "InsuranceOptionOffered"=>"false", "SellerDetails"=>nil, "PaymentRequestID"=>nil, "OrderURL"=>nil, "SoftDescriptor"=>nil}, "CheckoutStatus"=>"PaymentActionNotInitiated", "PaymentRequestInfo"=>nil}, @message="Success", @success=true, @test=true, @authorization=nil, @fraud_review=false, @avs_result={"code"=>nil, "message"=>nil, "street_match"=>nil, "postal_match"=>nil}, @cvv_result={"code"=>nil, "message"=>nil}> 

然後當我通過API或通過Paypal管理面板查看交易詳細信息,然後在查看詳細信息時看到付款,但不包含該項目。任何想法是什麼造成這種情況?

我使用的是剛剛更新的最新版本的ActiveMerchant,以確保不存在問題。

+0

如果您想要我發佈代碼,我們有這個工作嗎?我不知道你的具體問題到底是怎麼回事:( –

+0

Rich - 如果你不介意發佈代碼很棒,想看看我做錯了什麼。 – dbslone

回答

0

結果我的問題是與貝寶的最後一篇文章我沒有在這一步發送項目。

PAYPAL_GATEWAY.purchase需要項目的哈希以及這些顯示在貝寶網站可查看的最終交易中。

0

你沒有得到描述,因爲你沒有將它傳遞給你的控制器。如下所示編輯它可以解決問題。儘管在嘗試創建數量超過1的交易時,我在自己的應用程序中遇到了交易錯誤,但我試圖陷入另一個錯誤。但下面的內容適用於您的應用程序。

setup_response = PAYPAL_GATEWAY.setup_purchase(@product.price.cents, 
    :ip => request.remote_ip, 
    :return_url => url_for(:action => 'paypal_confirm', :only_path => false), 
    :cancel_return_url => root_url, 
    :items => [{ 
     :name => @product.title, 
     :quantity => 1, 
     :amount => @product.price.cents, 
     :description => @product.description 
}]