用PayPal支付通过支付宝REST API不显示在贝宝沙箱或直播网站的支付说明(Pay with

2019-08-20 09:33发布

我采取PayPal的贝宝法新REST API收费,可以在这里引用: https://developer.paypal.com/webapps/developer/docs/integration/web/accept-paypal-payment/

支付执行精细,准确的事情应该是这样。 用户选择使用贝宝支付,然后重定向到PayPal网站,在那里他有望登录并批准支付。 那我送宝的JSON数据是相当多的东西在上面的链接指定的和我看起来是这样的:

{
  "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网站, 说明书和总量列被示出空白

我不知道这是否是对PayPal的REST API一个错误,但我相信我提供了必要的说明+量支付这个网页上得到体现。 如果没有显示此信息时,它通常是一种威慑给用户,因为他们肯定会喜欢看到他们在即使这个量是在我的网站上列出的PayPal网站支付的金额。

这是什么样子:

对于那些想表明用户还没有在,以及登录,即使登录后谁,说明书和目前购买列保持空白。

我缺少的需要,为了表示这个描述数据被发送到贝宝的任何参数?

注意:无论是现场和沙盒服务器这个问题仍然存在。

Answer 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"
                    }
                ]
            }
        }
    ]
}


Answer 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);


文章来源: Pay with Paypal through Paypal REST API does not show up payment description on Paypal Sandbox or live sites