Я не могу предварительно заполнить номер мобильного телефона в платежной интеграции PayPal

#python #paypal

#python #paypal

Вопрос:

 payment = Payment({
    "intent": "sale",

    "application_context": {
        "locale": "en_IN",
        "user_action": "commit",
        "shipping_preference": "NO_SHIPPING",
        "landing_page": "billing"
    },

    # Set payment method
    "payer": {
        "payment_method": "paypal",
        "payer_info": {
            "email": email,
            "first_name": first_name,
            "last_name": last_name,
            "shipping_address": {
            "phone": phone,
            }
        }
    },

    # Set redirect URLs
    "redirect_urls": {
        "return_url": "example.com/confpayment/",
        "cancel_url": "examplecom/payment_fail/"
    },
    # Set transaction object
    "transactions": [{
        "amount": {
            "total": str(amount),
            # "total": "1",
            "currency": "INR"
        },
        "description": "payment description"
    }]
})
  

Я получаю входящий запрос JSON, который не сопоставляется с запросом API

Ошибка: {'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': '51397a89429bd'}

Все остальные параметры предварительно заполнены, за исключением номера мобильного телефона. Пожалуйста, помогите мне в этом.

Я не уверен, правильный формат API или нет.

Комментарии:

1. Теперь я получаю сообщение «Это поле в настоящее время не поддерживается в этом запросе»

Ответ №1:

Редактировать код предварительного просмотра неверно :

Документация по payer свойству здесь (ссылка исправлена на версию V2) :

https://developer.paypal.com/docs/api/orders/v2/?mark=payer#definition-payer

Ошибка, удалите лишнюю запятую в : "phone": "",

 "payer_info": {
...
    "shipping_address": {
        "phone": ""
    }
 }
  

ЭТОТ КОД КАЖЕТСЯ НЕПРАВИЛЬНЫМ :

Переместите phone за shipping_address пределы :

 "payer_info": {
...
    "shipping_address": {
    ...
    },
    "phone": ""
 }
  

Полные примеры здесь: http://www.seneca-re.com/wp-content/plugins/estatik/vendor/paypal/rest-api-sdk-php/sample/payments/ListPayments.php

Комментарии:

1. Теперь я получаю сообщение «Это поле в настоящее время не поддерживается в этом запросе»

2. Проверьте используемый вами API, кажется, он доступен в API V2, а не в V1: developer.paypal.com/docs/api/orders/v2 => Заказы / Телефон

3. Не удалось найти здесь ничего полезного для поля номера телефона

4. На самом деле позиция этого поля в формате JSON является основной проблемой, вот почему я получаю эту ошибку.

5. Не могли бы вы попробовать свой код, удалив лишнюю запятую => «phone»: телефон, а не «phone»: телефон,