Ruby on rails ActiveMerchant:将项目详细信息发送到paypal url

Ruby on rails ActiveMerchant:将项目详细信息发送到paypal url,ruby-on-rails,paypal,express-checkout,activemerchant,Ruby On Rails,Paypal,Express Checkout,Activemerchant,我正在尝试使用activemerchantgem将paypalexpresscheckout与我的rails4应用程序集成。我已成功重定向到paypal,但我无法发送项目详细信息(只有金额传递到paypal) 这里是我所做的: total_amount = cart_items.sum(:amount) items = [] cart_items.each_with_index do |item, index| items << { "L_PAYMENTREQUES

我正在尝试使用
activemerchant
gem将
paypalexpresscheckout
与我的
rails4
应用程序集成。我已成功重定向到
paypal
,但我无法发送项目详细信息(只有金额传递到
paypal

这里是我所做的:

total_amount = cart_items.sum(:amount)

items = []
cart_items.each_with_index do |item, index|
  items << {
      "L_PAYMENTREQUEST_0_NAME#{index+1}" => item.product_name,
      "L_PAYMENTREQUEST_0_AMT#{index+1}" => to_cents(item.amount),
      "L_PAYMENTREQUEST_0_QTY#{index+1}" => item.quantity
  }
end

response = EXPRESS_GATEWAY.setup_purchase(total_amount,
                                          :items             => items,
                                          :return_url        => new_order_url,
                                          :cancel_return_url => root_url
)
redirect_to EXPRESS_GATEWAY.redirect_url_for(response.token)
total\u amount=cart\u items.sum(:amount)
项目=[]
购物车项目。每个项目都有索引do项目,索引|
items item.product_名称,
“L_PAYMENTREQUEST_0_AMT{index+1}”=>至美分(项目金额),
“L_PAYMENTREQUEST_0_quantity{index+1}”=>item.quantity
}
结束
响应=EXPRESS\u GATEWAY.设置\u购买(总金额,
:items=>items,
:return\u url=>new\u order\u url,
:cancel\u return\u url=>root\u url
)
重定向到EXPRESS\u网关。重定向(response.token)的\u url\u
以及实际发生的情况:

total_amount = cart_items.sum(:amount)

items = []
cart_items.each_with_index do |item, index|
  items << {
      "L_PAYMENTREQUEST_0_NAME#{index+1}" => item.product_name,
      "L_PAYMENTREQUEST_0_AMT#{index+1}" => to_cents(item.amount),
      "L_PAYMENTREQUEST_0_QTY#{index+1}" => item.quantity
  }
end

response = EXPRESS_GATEWAY.setup_purchase(total_amount,
                                          :items             => items,
                                          :return_url        => new_order_url,
                                          :cancel_return_url => root_url
)
redirect_to EXPRESS_GATEWAY.redirect_url_for(response.token)

我已经检查了响应是否有任何错误,但我找不到任何错误:

(byebug) response
#<ActiveMerchant::Billing::PaypalExpressResponse:0x00000112831748 @params={"timestamp"=>"2015-07-17T12:43:53Z", "ack"=>"Success", "correlation_id"=>"7cd013c59c176", "version"=>"72", "build"=>"17403434", "token"=>"EC-94A59640DJ829313S", "Timestamp"=>"2015-07-17T12:43:53Z", "Ack"=>"Success", "CorrelationID"=>"7cd013c59c176", "Version"=>"72", "Build"=>"17403434", "Token"=>"EC-94A59640DJ829313S"}, @message="Success", @success=true, @test=true, @authorization=nil, @fraud_review=false, @error_code=nil, @emv_authorization=nil, @avs_result={"code"=>nil, "message"=>nil, "street_match"=>nil, "postal_match"=>nil}, @cvv_result={"code"=>nil, "message"=>nil}>
(byebug)响应
#“2015-07-17T12:43:53Z”,“确认”=>“成功”,“相关id”=>“7cd013c59c176”,“版本”=>“72”,“构建”=>“17403434”,“令牌”=>“EC-94A59640DJ829313S”,“时间戳”=>“2015-07-17T12:43:53Z”,“确认”=>“成功”,“相关id”=>“7cd013c59c176”,“版本”=>“72”,“构建”=>“17403434”,“令牌”=>“EC-94A596DJ13S”=>,@Success=“真正成功”,@test=true、@authorization=nil、@fraud\u review=false、@error\u code=nil、@emv\u authorization=nil、@avs\u result={“code=>nil”、message=>nil、street\u match=>nil、@cvv\u result={“code=>nil”、message=>nil}>
注意
“message”=>nil、
@message=“Success”、


任何人都可以提出我做错了什么。

在查看代码后,我找到了导致另一个问题的解决方案:“购物车项目金额的总和与订单金额不匹配。”

我所做的:
total\u amount=cart\u items.sum(:amount)
#项必须为[{},{}]格式
项目=[]
购物车|物品。每个都要|物品|
items item.product_name.to_s,
:金额=>至美分(项目金额),
:数量=>item.quantity
}
结束
响应=EXPRESS\u GATEWAY.设置\u购买(总金额,
:items=>items,
:return\u url=>new\u order\u url,
:cancel\u return\u url=>root\u url
)
重定向到EXPRESS\u网关。重定向(response.token)的\u url\u
这里,
总金额
美元
为单位,
金额
为单位。我已将
总金额
的货币更改为
美分
,但仍然没有工作。我不知道贝宝是如何从
数量和
金额中计算总金额的

实际上发生了什么: 当我检查每个项目的
总金额
计算的总金额
的值时,我发现
总金额
计算的金额
没有问题

原来的问题仍然没有解决。谁能给我建议一个正确的方向吗


在谷歌搜索问题之后,我在github中发现了这个问题。为了让paypal正常工作,必须在
设置购买
功能中包含
发货
税务
处理
选项。感谢您提出的问题和解决方案。我最终解决了这些问题。

在查看代码之后,我找到了导致另一个问题的解决方案:“购物车项目金额的总和与订单金额不匹配。”

我所做的:
total\u amount=cart\u items.sum(:amount)
#项必须为[{},{}]格式
项目=[]
购物车|物品。每个都要|物品|
items item.product_name.to_s,
:金额=>至美分(项目金额),
:数量=>item.quantity
}
结束
响应=EXPRESS\u GATEWAY.设置\u购买(总金额,
:items=>items,
:return\u url=>new\u order\u url,
:cancel\u return\u url=>root\u url
)
重定向到EXPRESS\u网关。重定向(response.token)的\u url\u
这里,
总金额
美元
为单位,
金额
为单位。我已将
总金额
的货币更改为
美分
,但仍然没有工作。我不知道贝宝是如何从
数量和
金额中计算总金额的

实际上发生了什么: 当我检查每个项目的
总金额
计算的总金额
的值时,我发现
总金额
计算的金额
没有问题

原来的问题仍然没有解决。谁能给我建议一个正确的方向吗

在谷歌搜索问题之后,我在github中发现了这个问题。为了让paypal正常工作,必须在
设置购买
功能中包含
发货
税务
处理
选项。感谢您提出的问题和解决方案。我终于解决了问题