Подтвердить что ты не робот

Оплата через Paypal через API-интерфейс Paypal REST не отображает описание платежа на Sandbox или живые сайты Paypal

Я внедряю новый API REST API PayPal с помощью метода Paypal, на который можно ссылаться здесь: https://developer.paypal.com/webapps/developer/docs/integration/web/accept-paypal-payment/

Платеж выполняется отлично, точно так, как он должен быть. Пользователь решает оплатить с помощью Paypal и затем перенаправляется на сайт Paypal, где он должен войти в систему и утвердить платеж. Данные JSON, которые я отправляю Paypal, в значительной степени соответствуют указанным выше ссылкам, а мой выглядит следующим образом:

{
  "intent":"sale",
  "redirect_urls":{
    "return_url":"http://<return URL here>",
    "cancel_url":"http://<cancel URL here>"
  },
  "payer":{
    "payment_method":"paypal"
  },
  "transactions":[
    {
      "amount":{
        "total":"7.47",
        "currency":"USD"
      },
      "description":"This is the payment description."
    }
  ]

}

Когда он перенаправляет пользователя на сайт paypal, столбец описания и общей суммы отображается пустым

Я не уверен, что это ошибка в API-интерфейсе Paypal REST, но я считаю, что предоставляю необходимое описание + сумма платежа, которая будет отражена на этой странице. Если эта информация не отображается, она обычно является сдерживающим фактором для пользователя, поскольку они определенно хотели бы видеть сумму, которую они платят на сайте Paypal, даже если эта сумма указана на моем сайте.

Это выглядит так:

enter image description here

Для тех, кто хотел бы указать, что пользователь не вошел в систему, ну, даже после входа в систему, описание и текущий столбец покупок остаются пустыми.

Не хватает ли каких-либо параметров, которые необходимо отправить в Paypal, чтобы указать эти данные описания?

Примечание. Эта проблема сохраняется как для живых, так и для песочниц.

4b9b3361

Ответ 1

Левая панель панорамирования на приведенной выше странице отображает:  1. Детали деталя от заказа. Вы можете включить список элементов в детали транзакции в ресурсе оплаты. То же самое будет отображаться здесь.  2. Компоненты суммы транзакции, например. стоимость доставки, налог и т.д., если вы включите их в запрос.

Попробуйте этот запрос, чтобы увидеть пример:

{
    "intent": "sale",
    "payer": {
        "payment_method": "paypal"
    },
    "redirect_urls": {
        "return_url": "http://<return url>",
        "cancel_url": "http://<cancle url>"
    },
    "transactions": [
        {
            "amount": {
                "total": "8.00",
                "currency": "USD",
                "details": {
                    "subtotal": "6.00",
                    "tax": "1.00",
                    "shipping": "1.00"
                }
            },
            "description": "This is payment description.",
            "item_list": { 
                "items":[
                    {
                        "quantity":"3", 
                        "name":"Hat", 
                        "price":"2.00",  
                        "sku":"product12345", 
                        "currency":"USD"
                    }
                ]
            }
        }
    ]
}

Ответ 2

Спасибо. Мадху не забыл использовать библиотеку rest-api!

Details amountDetails = new Details();
                    amountDetails.setSubtotal(autoregistro.getPedido().getItems().get(0).getTotal().toPlainString());
                    amountDetails.setTax("0");
                    amountDetails.setShipping("0");

                    Amount amount = new Amount();
                    amount.setCurrency("USD");
                    amount.setTotal(autoregistro.getPedido().getItems().get(0).getTotal().toPlainString());
                    // amount.setTotal("7.47"); // Los decimales deben ser con punto
                    amount.setDetails(amountDetails);

                    Item item = new Item();
                    item.setCurrency("USD");
                    item.setQuantity("1");
                    item.setName(autoregistro.getPedido().getItems().get(0).getDescripcion());
                    item.setPrice(amountDetails.getSubtotal());

                    List<Item> items = new ArrayList<Item>();
                    items.add(item);

                    ItemList itemList = new ItemList();
                    itemList.setItems(items);

                    Transaction transaction = new Transaction();
                    transaction.setDescription(item.getName());
                    transaction.setAmount(amount);
                    transaction.setItemList(itemList);

                    List<Transaction> transactions = new ArrayList<Transaction>();
                    transactions.add(transaction);

                    Payer payer = new Payer();
                    payer.setPaymentMethod("paypal");
                    // payer.setPaymentMethod("credit_card");

                    Payment payment = new Payment();
                    payment.setIntent("sale");
                    payment.setPayer(payer);
                    payment.setTransactions(transactions);
                    RedirectUrls redirectUrls = new RedirectUrls();
                    redirectUrls.setCancelUrl(this.configParameters.getAutoregistroURL() + "/pay_paypal?cancel=true");
                    redirectUrls.setReturnUrl(this.configParameters.getAutoregistroURL() + "/pay_paypal?success=true");
                    payment.setRedirectUrls(redirectUrls);

                    Payment createdPayment = payment.create(apiContext);