【问题标题】:Payment error: PayPal error: Invalid request. See details. (VALIDATION_ERROR) Paypal付款错误:PayPal 错误:请求无效。查看详细信息。 (VALIDATION_ERROR) 贝宝
【发布时间】:2018-03-11 00:26:33
【问题描述】:

我正在我的项目中使用 PayPal 定期付款。我想在一段时间内免费试用一次,初始订单总额应该为零,一旦免费试用完成,实际订单金额将从帐户中扣除。

例如,用户购买了一个产品(100 美元)并申请折扣代码免费试用,那么第一个订单应以 0 美元下达,一旦试用结束,将运行 100 美元的周期。

为此,我在MerchantPreferences 中将“0”传递给setup_fee

merchant_preferences = new MerchantPreferences
{
    return_url = url,
    cancel_url = url,
    auto_bill_amount = "YES",
    setup_fee = new PayPal.Api.Currency
    {
        currency = currency != null ? currency.CurrencyCode : null,
        value = "0.00"
    }
}

但它给了我一个错误:

付款错误:PayPal 错误:请求无效。查看详细信息。 (VALIDATION_ERROR)
付款错误:请求中缺少注释或注释长度太长
付款错误:amount.currency 必填字段缺失。

如果我传递一些值而不是 0.00 它可以正常工作,但我想发送零作为初始金额。

谁能告诉我我的代码有什么问题?

【问题讨论】:

    标签: c# paypal paypal-sandbox paypal-rest-sdk paypal-subscriptions


    【解决方案1】:

    错误描述了缺少“Note”参数和无效的“货币”。您是否检查过您没有为currency 发送null 值,或者在值为0 时跳过发送Note 参数?从您的代码看来,如果 currencynullcurrency.CurrencyCodenull,那么您发送的是 null 值,而 PayPal 不允许这样做。

    顺便说一句,我知道许多受财务驱动的网站使用约 1 美分而不是 0 美分的存款价值来验证资金是否正确转移。

    【讨论】:

    • 感谢您的回答!!,您是否检查过您没有为货币发送空值 正如我在 que 中所述。如果我传递值而不是 0.00 它可以工作,不确定音符参数,我无法找到任何音符参数。在 PayPal 文档中。
    • 请记住,理论上value <= 0 时货币类型也可能不同,这取决于代码的其余部分
    • 如果我配置值为 0.00,它将在 PayPal 下订单,但在我的网站上出现错误。
    猜你喜欢
    • 2020-04-15
    • 2018-02-24
    • 2013-08-11
    • 1970-01-01
    • 2021-01-21
    • 2014-02-23
    • 2014-03-08
    • 2014-06-21
    • 2018-04-05
    相关资源
    最近更新 更多