Ошибка создания тарифного плана с помощью Malformed_Request

Я пытаюсь создать тарифный план с запросом ниже. (Это действительно JSON), и я проверил запрос и, кажется, правильно, основываясь на примерах запросов, данных в PayPal (независимо от этого, я попытался использовать стандартный пример, и он не будет работать.

POST https://api.sandbox.paypal.com/v1/payments/billing-plans HTTP/1.1
Content-Type: application/json
Authorization: Bearer A015Ocv2vKmHg2NY2PNSbGEIN5jWHsZFKr.63kJzvtNaeII
Host: api.sandbox.paypal.com
Content-Length: 775
Expect: 100-continue

{
"name": "Membership Fee",
"description": "Monthly Fee with Trial Month",
"type": "INFINITE",
"payment_definitions": [
    {
        "name": "Plan",
        "type": "REGULAR",
        "frequency": "MONTH",
        "frequency_interval": "1",
        "amount": {
            "value": "15",
            "currency": "GBP"
        },
        "cycles": "12"
    },
    {
        "name": "First Month Free Trial",
        "type": "TRIAL",
        "frequency": "MONTH",
        "frequency_interval": "1",
        "amount": {
            "value": "0.01",
            "currency": "GBP"
        },
        "cycles": "1"
    }
],
"merchant_preferences": {
    "setup_fee": {
        "value": "0",
        "currency": "GBP"
    },
    "return_url": "http://app.URLREMOVED.co.uk/complete",
    "cancel_url": "http://app.URLREMOVED.co.uk/cancel",
    "auto_bill_amount": "YES",
    "initial_fail_amount_action": "CONTINUE",
    "max_fail_attempts": "12"
}
}

Ответ получаю:

HTTP/1.1 400 Bad Request
Server: Apache-Coyote/1.1
PROXY_SERVER_INFO: host=slcsbjava4.slc.paypal.com;threadId=35463
Paypal-Debug-Id: 8437249fdc6d1
SERVER_INFO: paymentsplatformserv:v1.payments.billing-    plans&CalThreadId=127&TopLevelTxnStartTime=147d9bc0282&Host=slcsbjm3.slc.paypal.com&pid=25126
Content-Language: *
Date: Fri, 15 Aug 2014 12:54:42 GMT
Connection: close
Content-Type: application/json
Content-Length: 213
Connection: close

{"name":"MALFORMED_REQUEST","message":"Incoming JSON request does not map to API     request","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#MALFORMED_REQUEST","debug_id":"8437249fdc6d1"}

Насколько я вижу, запрос правильный, я проверяю, у меня есть правильный URL, кто-нибудь обнаружит, в чем проблема?

2 ответа

У тебя есть autobill_amount и это должно быть auto_bill_amount, У вас также есть initial_amount_fail_action и это должно быть initial_fail_amount_action,

Правильно, это была моя ошибка, когда я не установил циклы на 0, так как это постоянный платеж, пока кто-то не отменит его, он должен быть 0, а не 12.

Итак, исправил запрос (который работает)

{
"name": "Membership Fee",
"description": "Monthly Fee with Trial Month",
"type": "infinite",
"payment_definitions": [
    {
        "name": "Free Trial",
        "type": "REGULAR",
        "frequency": "MONTH",
        "frequency_interval": "1",
        "amount": {
            "value": "15",
            "currency": "GBP"
        },
        "cycles": "0"
    },
    {
        "name": "First Month Free Trial",
        "type": "TRIAL",
        "frequency": "MONTH",
        "frequency_interval": "1",
        "amount": {
            "value": "0.01",
            "currency": "GBP"
        },
        "cycles": "1"
    }
],
"merchant_preferences": {
    "setup_fee": {
        "value": "1",
        "currency": "GBP"
    },
    "return_url": "http://app.URLREMOVED.co.uk/complete",
    "cancel_url": "http://app.URLREMOVED.co.uk/cancel",
    "auto_bill_amount": "YES",
    "initial_fail_amount_action": "CONTINUE",
    "max_fail_attempts": "0"
}
}
Другие вопросы по тегам