【问题标题】:PayPal integration in spring boot rest api only仅在 Spring Boot Rest api 中集成 PayPal
【发布时间】:2021-06-14 20:00:24
【问题描述】:

我正在尝试使用此链接将 PayPal 集成到 Spring Boot 应用程序中, https://developer.paypal.com/docs/api/quickstart/payments/#define-payment 但得到如下异常:

2021-03-17 18:37:43.283  INFO 2932 --- [nio-9001-exec-1] d.b.o.controller.PaypalEndpoint          : EXception occred
response-code: 400  details: name: INTERNAL_SERVICE_ERROR   message: An internal service error has occurred details: [] debug-id: cb8b4f5808cef information-link: https://developer.paypal.com/docs/api/payments/#errors
    at com.paypal.base.rest.PayPalRESTException.createFromHttpErrorException(PayPalRESTException.java:72)
    at com.paypal.base.rest.PayPalResource.execute(PayPalResource.java:431)
    at com.paypal.base.rest.PayPalResource.configureAndExecute(PayPalResource.java:295)
    at com.paypal.base.rest.PayPalResource.configureAndExecute(PayPalResource.java:228)
    at com.paypal.api.payments.Payment.create(Payment.java:149)


public Payment createPayment(
            Double total,
            String currency,
            String method,
            String intent,
            String description,
            String cancelUrl,
            String successUrl) throws PayPalRESTException{

        Details details = new Details();
        details.setShipping("1");
        details.setSubtotal("1");
        details.setTax("1");

        Amount amount = new Amount();
        amount.setCurrency(currency);

        total = new BigDecimal(total).setScale(2, RoundingMode.HALF_UP).doubleValue();
        amount.setTotal(String.format("%.2f", total));
        amount.setDetails(details);

        Transaction transaction = new Transaction();
        transaction.setDescription(description);
        transaction.setAmount(amount);

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

        Payer payer = new Payer();
        payer.setPaymentMethod(method);

        Payment payment = new Payment();
        payment.setIntent(intent);
        payment.setPayer(payer);
        payment.setTransactions(transactions);
        RedirectUrls redirectUrls = new RedirectUrls();
        redirectUrls.setCancelUrl(cancelUrl);
        redirectUrls.setReturnUrl(successUrl);
        payment.setRedirectUrls(redirectUrls);

        return payment.create(apiContext);
    }

我认为异常发生在

return payment.create(apiContext);

apiContext 有价值。 谁能告诉我这是什么问题?

【问题讨论】:

    标签: java spring spring-boot paypal


    【解决方案1】:

    您正在尝试使用不应用于任何新集成的已弃用 API。

    改为与 REST v2/checkout/orders 集成。请参阅https://developer.paypal.com/docs/business/checkout/server-side-api-calls/#server-side-api-calls 上的“创建订单”和“获取订单”

    【讨论】:

      猜你喜欢
      • 2020-10-24
      • 2018-06-22
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 2020-08-04
      • 2021-02-01
      • 2019-11-21
      • 1970-01-01
      相关资源
      最近更新 更多