| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A robust, strongly-typed, and thread-safe Java SDK for the Plutu payment gateway.
⚠️ DISCLAIMER: This is an UNOFFICIAL library. It is not created, maintained, or endorsed by Plutu. Use it at your own risk. The library logic follows the official PHP SDK logic.
Since this is not yet published to Maven Central, you can build it locally.
Using Maven
git clone https://github.com/f0ka/plutu-java-sdk.git
cd plutu-java-sdk
mvn install<dependency>
<groupId>ly.plutu</groupId>
<artifactId>plutu-java-sdk</artifactId>
<version>0.2.0</version>
</dependency>Using Gradle
git clone https://github.com/f0ka/plutu-java-sdk.git
cd plutu-java-sdk
# Generates the jar in build/libs
./gradlew build publishToMavenLocalrepositories {
mavenLocal()
mavenCentral()
}
dependencies {
implementation 'ly.plutu:plutu-java-sdk:0.2.0'
}Create a configuration instance with your credentials.
import ly.plutu.sdk.PlutuConfig;
import ly.plutu.sdk.PlutuClient;
import ly.plutu.sdk.PlutuClientImpl;
import ly.plutu.sdk.client.JavaHttpPlutuClient;
import java.time.Duration;
// Setup config
PlutuConfig config = new PlutuConfig();
config.setApiKey("YOUR_API_KEY");
config.setAccessToken("YOUR_ACCESS_TOKEN");
config.setSecretKey("YOUR_SECRET_KEY"); // Required for callbacks & some services
// Create client
JavaHttpPlutuClient httpClient = new JavaHttpPlutuClient(Duration.ofSeconds(60));
PlutuClient plutu = new PlutuClientImpl(config, httpClient);Verify (Send OTP)
import java.math.BigDecimal;
try {
var response = plutu.adfali().verify("0912345678", BigDecimal.valueOf(5.0));
String processId = response.getProcessId();
System.out.println("OTP sent. Process ID: " + processId);
} catch (Exception e) {
e.printStackTrace();
}Confirm (Complete Payment)
try {
var response = plutu.adfali().confirm(
"PROCESS_ID",
"1234", // OTP Code
BigDecimal.valueOf(5.0),
"INV-001",
"127.0.0.1" // Optional Customer IP
);
System.out.println("Paid! Transaction ID: " + response.getTransactionId());
} catch (PlutuHttpException e) {
System.err.println("API Error: " + e.getError().getMessage());
}var response = plutu.localBankCards().confirm(
BigDecimal.valueOf(10.0),
"INV-002",
"https://your-site.com/return",
null,
"ar"
);
String redirectUrl = response.getRedirectUrl();
// Redirect user to: redirectUrlSecurely verify the callback parameters from Plutu.
import java.util.Map;
// Assuming you have the query parameters in a Map<String, String>
Map<String, String> params = request.getParameterMap(); // ... convert to Map<String, String>
try {
var callback = plutu.localBankCards().handleCallback(params);
if (callback.isApprovedTransaction()) {
System.out.println("Payment Approved!");
System.out.println("Invoice: " + callback.getParameter("invoice_no"));
}
} catch (InvalidCallbackHashException e) {
System.err.println("Security Alert: Callback hash mismatch!");
}MIT License. See LICENSE file.
| Back | FazBrowse Home | New Git URL |