仅在 spring 启动休息 api 中集成 PayPal
PayPal integration in spring boot rest api only
我正在尝试使用此 link 将 PayPal 集成到 spring 启动应用程序中,
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 有价值。
谁能告诉我问题出在哪里?
您正在尝试使用已弃用的 API,不应将其用于任何新集成。
改为与 REST 集成 v2/checkout/orders。请参阅 'Create Order' 和 'Capture Order' https://developer.paypal.com/docs/business/checkout/server-side-api-calls/#server-side-api-calls
我正在尝试使用此 link 将 PayPal 集成到 spring 启动应用程序中, 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 有价值。 谁能告诉我问题出在哪里?
您正在尝试使用已弃用的 API,不应将其用于任何新集成。
改为与 REST 集成 v2/checkout/orders。请参阅 'Create Order' 和 'Capture Order' https://developer.paypal.com/docs/business/checkout/server-side-api-calls/#server-side-api-calls