我采取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网站支付的金额。
这是什么样子:
对于那些想表明用户还没有在,以及登录,即使登录后谁,说明书和目前购买列保持空白。
我缺少的需要,为了表示这个描述数据被发送到贝宝的任何参数?
注意:无论是现场和沙盒服务器这个问题仍然存在。
从订单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"
}
]
}
}
]
}
谢谢。 马杜记得使用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