我最近在使用ruby的paypal api时遇到了问题(https://github.com/paypal/merchant-sdk-ruby)。
我正试图用PaymentDetailsItem设置多个项目的结账,但当我发送请求时,我收到一个错误:"购物车项目金额的总和与订单金额不匹配。"
我已经检查过了,你可以在下面的代码中看到。我的订单总额等于ItemTotal、ShippingTotal、HandlingTotal和TaxTotal的总和。
我已经尝试了很多东西,贝宝api有一个非常糟糕的文档,我在网上找不到任何关于这方面的例子。非常感谢你的帮助。
@api = PayPal::SDK::Merchant::API.new
@set_express_checkout = @api.build_set_express_checkout({
:SetExpressCheckoutRequestDetails => {
:ReturnURL => "#{ENV['HOST']}/return",
:CancelURL => "#{ENV['HOST']}/cancel",
:PaymentDetails => [{
:OrderTotal => {
:currencyID => currency,
:value => "10.00"
},
:ItemTotal => {
:currencyID => currency,
:value => "10.00"
},
:ShippingTotal => {
:currencyID => currency,
# :value => ship
:value => "0.00"
},
:TaxTotal => {
:currencyID => currency,
:value => "0.00"
},
:NotifyURL => "#{ENV['HOST']}/ipn_notify",
:PaymentDetailsItem =>
[
{
:Name => "Some Product",
:Quantity => 1,
:Amount => {
:currencyID => "EUR",
:value => "5.00"
},
:ItemCategory => "Physical"
}
],
:PaymentDetailsItem =>
[
{
:Name => "Other Product",
:Quantity => 1,
:Amount => {
:currencyID => "EUR",
:value => "5.00"
},
:ItemCategory => "Physical"
}
],
:PaymentAction => "Authorization" }] } })
@set_express_checkout_response = @api.set_express_checkout(@set_express_checkout)
删除其中一个:PaymentDetailsItem
键并添加项目,如下所示。
:PaymentDetailsItem =>
[
{
:Name => "Some Product",
:Quantity => 1,
:Amount => {
:currencyID => "EUR",
:value => "5.00"
},
:ItemCategory => "Physical"
},
{
:Name => "Other Product",
:Quantity => 1,
:Amount => {
:currencyID => "EUR",
:value => "5.00"
},
:ItemCategory => "Physical"
}
]