【问题标题】:Malformed request when creating billing plan创建计费计划时请求格式不正确
【发布时间】:2016-10-04 15:14:09
【问题描述】:

所以我使用节点 paypal-rest-sdk 模块,我正在尝试创建一个计费计划。使用文档here 我制作了这个 JSON:

const billingPlanAttributes = { name: 'Subscription', description: 'Monthly subscription plan', type: 'INFINITE', payment_definitions: [{ name: 'Regular monthly infinite payments', type: 'REGULAR', frequency_interval: '1', frequency: 'MONTH', cycles: '0', amount: { currency: 'USD', amount: '4.99', }, }], merchant_preferences: { cancel_url: 'http://localhost:3000/subscribe/cancel', return_url: 'http://localhost:3000/subscribe/return', auto_bill_amount: 'YES', }, };

但是当使用paypal.billingPlan.create(... 函数时,我得到了错误'MALFORMED_REQUEST', 'Incoming JSON request does not map to API request'。所以我猜我的 JSON 格式不正确,或者我缺少一些需要的东西。

文档有一个charge_models 键,但它没有提到它与其他键不同是必需的。

如果你能指出我正确的方向,那就太好了。

编辑:更改了返回 url 并取消 url 以包含完整的域,但仍然是相同的错误。

【问题讨论】:

    标签: javascript node.js paypal paypal-rest-sdk


    【解决方案1】:

    可能还有更多,但我注意到您的 JSON 有一点问题。删除列表中最后一个项目的逗号。在“金额”和“商家偏好”之后。 JSON 很挑剔。

    【讨论】:

    • 我删除了逗号,但仍然遇到同样的错误。你似乎是对的,还有更多。我正在使用 eslint,它给了我关于在末尾添加逗号的警告,这就是我使用它们的原因。
    • 嗯。看起来我错过了一些逗号;在“auto_bill_amount”和另一个“金额”之后。但假设你已经得到了这些,我相信字符串需要用双引号引起来。键和值。
    • 是的,它们也删除了逗号。添加了双引号,但仍然是同样的错误。尝试使用示例中提供的 JSON,它似乎有效,所以我想我错过了一些必需的东西。
    • 所以我最终只是复制了示例并将值更改为我需要的值。我还将它格式化为 eslint 建议 JSON 的方式,它工作正常。
    【解决方案2】:

    我知道,答案迟了,但遇到的问题与你完全相同。

    在计费计划的创建功能中

    public function create($apiContext = null, $restCall = null)
    {
        $payLoad = $this->toJSON();
        $json = self::executeCall(
            "/v1/payments/billing-plans/",
            "POST",
            $payLoad,
            null,
            $apiContext,
            $restCall
        );
        $this->fromJson($json);
        return $this;
    }
    

    我发现toJSON 方法总是返回false。为什么!?!

    我做了和你一样的操作,并将完整的示例代码复制到我的代码中。然后它按预期工作。现在我检查了一下,我的代码有什么不同。 我意识到,我在计费计划的名称和描述中使用了变音符号 (ä,ü,ö)。我把变音符号改成了

    'ä' => 'ae', 
    'ö' => 'oe' 
    'ü' => 'ue' 
    

    然后它工作正常!也许其他人也在处理这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 2014-10-09
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多