首页 文章

通过Paypal REST API支付Paypal不会在Paypal Sandbox或实时网站上显示付款说明

提问于
浏览
27

我正在使用Paypal方法实现Paypal的新REST API支付,可以在这里引用:https://developer.paypal.com/webapps/developer/docs/integration/web/accept-paypal-payment/

付款执行得很好,完全按照应有的方式执行 . 用户选择使用Paypal付款,然后重定向到Paypal网站,在那里他需要登录并批准付款 . 我发送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网站时, the description and total amount column is shown blank

我不确定这是否是Paypal的REST API上的错误,但我相信我提供必要的描述金额付款以反映在此页面上 . 如果没有显示这些信息,它通常是对用户的威慑,因为他们肯定希望看到他们在Paypal网站上支付的金额,即使这个金额在我的网站上列出 .

这就是它的样子:

enter image description here

对于那些想要表明用户尚未登录的用户,即使在登录后,说明和当前购买列仍为空白 .

我是否遗漏了需要发送到Paypal的任何参数以指示此描述数据?

注意:对于live和sandbox服务器,此问题仍然存在 .

2 回答

  • 39

    上面左侧的左侧平移显示: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"
                        }
                    ]
                }
            }
        ]
    }
    
  • -1

    谢谢 . Madhu记得使用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);
    

相关问题