【问题标题】:ActiveMerchant PaypalExpress Missing Item DescriptionActiveMerchant PaypalExpress 缺少项目描述
【发布时间】:2014-03-04 06:05:17
【问题描述】:

我正在与 ActiveMerchant 合作,结帐流程将完成,最终用户将被收取正确的金额,但在通过 paypal 发送给最终用户的收据上以及在 paypal 后端中缺少项目标题和描述.但它们确实显示在用户登录其贝宝帐户的订单预览屏幕上

这是我用来设置贝宝交易的代码:

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"=>"info2@info.com", "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"=>"info2@info.com", "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,以确保不是问题所在。

【问题讨论】:

  • 如果您希望我发布代码,我们已经完成了这项工作?我不知道你的具体问题是怎么回事:(
  • 丰富 - 如果您不介意发布代码,那就太好了。想看看我是不是做错了什么。

标签: ruby-on-rails paypal ruby-on-rails-3.2 activemerchant


【解决方案1】:

你没有得到描述,因为你没有在你的控制器中传递它。如下编辑它应该可以解决问题。尽管在尝试创建数量超过 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
}]

【讨论】:

    【解决方案2】:

    原来我的问题是与 Paypal 的最后一个帖子有关,我在此步骤中没有发送物品。

    PAYPAL_GATEWAY.purchase 需要项目的哈希值,以便这些项目显示在可从 PayPal 网站查看的最终交易中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 2018-07-07
      • 2014-12-11
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 2013-04-18
      相关资源
      最近更新 更多