This package provides a JAVA implementation for SIPS, a Worldline e-payments gateway.
⚠️ This library was written for SIPS 2.0 and is not compatible with SIPS 1.0
This package contains a basic connector for SIPS, based on the SIPS Paypage JSON API. Please refer to the documentation for a better understanding.
If you find field or functionality is missing, feel free to submit a PR or create an issue.
dependencies {
implementation 'com.worldline.sips:payment-sdk:1.4.3'
}
<dependency>
<groupId>com.worldline.sips</groupId>
<artifactId>payment-sdk</artifactId>
<version>1.4.3</version>
</dependency>
💡 Currently this library only supports SIPS in pay page mode.
First, create a client for the desired environment using your merchant ID, key version & secret key:
PaypageClient paypageClient = new PaypageClient(
Environment.TEST,
"002001000000002",
1, // This shouldn't be hardcoded here...
"002001000000002_KEY1"); // ...and neither should this.
💡 Merchant data for SIPS TEST can be found in the documentation.
Then set up a request to initialize a session on the SIPS server:
PaymentRequest paymentRequest = new PaymentRequest();
paymentRequest.setAmount(2);
paymentRequest.setCurrencyCode(Currency.EUR);
paymentRequest.setOrderChannel(OrderChannel.INTERNET);
Add unique reference for the transaction:
paymentRequest.setTransactionReference("My awesome transaction reference");
And initialize your session on the server:
InitalizationResponse initializationResponse = paypageClient.initialize(paymentRequest);
The initializationResponse
you'll receive from the server contains all information needed to continue
handling your transaction. If your initialization was successful, your response will contain a
RedirectionStatusCode.TRANSACTION_INITIALIZED
.
In case your initialization was successful, you have to use the redirectionUrl
received to perform a POST request
with both the redirectionData
and seal
as parameters. Since this should redirect the customer the SIPS
payment page, the cleanest example is a simple HTML form:
<form method="post" action="redirectionUrl">
<input name="redirectionData" type="hidden" value="..." />
<input name="seal" type="hidden" value="..." />
<input type="submit" value="Proceed to checkout"/>
</form>
When your customer is done, he will be able to return to your application. This is done
via a form, making a POST request to the normalReturnUrl
provided during the initialization of your payment.
This POST request contains details on the payment. You can simply decode these responses, providing a Map<String, String>
of the parameters included in the received request to your PaypageClient
:
PaypageResponse paypageResponse = paypageClient.decodeResponse(mappedRequestParameters);
⚠️ Since the customer is not always redirecting back (e.g. he closes the confirmation page), it's a good practice to include anautomaticResponseUrl
. SIPS will always POST details on the transaction on this URL, even if a customer doesn't redirect back to your application.