Comment on page
Pre-authorize a payment
Checkout page
Payment
When creating Checkout session, set the value of
preAuth
property to 'y'.- The value is
y
:indicates that the current payment is pre-authorized. After the cardholder completes the authorization, the status of the payment is'uncaptured'. And you need to capture funds, the payment can be finalized. - The value is
n
:indicates this is an ordinary payment and 'n'is the default value.
// Use your private key
MoneyCollect.apiKey = "test_pr_NWZsa******";
SessionCreateParams params =
SessionCreateParams.builder()
.setReturnUrl("http://localhost:4242/success.html")
.setCancelUrl("http://localhost:4242/cancel.html")
.setNotifyUrl("http://localhost:4242/success.html")
.setAmountTotal(19 * 100L)
.setCurrency("USD")
.setOrderNo("C"+System.currentTimeMillis())
.setWebsite("https://www.mc.com")
.setPreAuth(SessionCreateParams.PreAuth.YES)
.build();
Session session = Session.create(params);
When creating Payment, set the value of
preAuth
property to 'y'.- The value is
y
:indicates that the current payment is pre-authorized. After the cardholder completes the payment, the status of the payment is'uncaptured'. And you need to capture funds, the payment can be finalized. - The value is
n
:indicates this is an ordinary payment and 'n'is the default value.
// Use your private key
MoneyCollect.apiKey = "test_pr_NWZsa******";
PaymentCreateParams params =
PaymentCreateParams.builder()
.setAmount(14 * 100L)
.setCurrency("USD")
.setOrderNo("MC"+System.currentTimeMillis())
.setIp("103.48.140.12")
.setPaymentMethod("{PAYMENT_METHOD_ID}")
.setConfirmationMethod(PaymentCreateParams.ConfirmationMethod.AUTOMATIC)
.setPreAuth(PaymentCreateParams.PreAuth.YES)
.build();
Payment payment = Payment.create(params);
When a payment is pre-authorized, but it cannot be captured or canceled in 7days, MoneyCollect will automatically cancel this payment.
- 1.Use API Capture a Payment to capture payment in 'uncaptured' status.
paymentId
The ID of the payment you capture.comment
the description for capture.
// Use your private key
MoneyCollect.apiKey = "test_pr_NWZsa******";
PaymentCaptureParams params = PaymentCaptureParams.builder()
.setPaymentId("py_1451067513881452545")
.setComment("capture all")
.build();
Payment payment = Payment.capture(params);
return JSONObject.toJSONString(payment);
2. Use MoneyCollect Dashboard to capture
Capture a pre-authorized payment, only supports to capture full amount. That is to say, we don't support partially capture a payment.
Use API Cancel a Payment to cancel the payment in 'uncaptured' status.
paymentId
the ID of the payment you cancel.cancellationReason
The reason why you cancel the pre-authorization.
// Use your private key
MoneyCollect.apiKey = "test_pr_NWZsa******";
PaymentCancelParams params = PaymentCancelParams.builder()
.setPaymentId("py_1451067513881452545")
.setCancellationReason("I want to cancel.")
.build();
Payment payment = Payment.cancel(params);
return JSONObject.toJSONString(payment);
You can also cancel a Pre-auth payment in your MoneyCollect Dashboard.
Last modified 1yr ago