Java
Thư viện người dùng tích hợp KLBPay vào hệ thống thanh toán của Merchant
Java SDK client
Github: https://github.com/unicloudvn/KLBPay-Java-SDK.git
Cài đặt và sử dụng
Requirements
Spring Boot Java 2.7.4+
JDK 11+
Gradle 7.2+
Cách sử dụng:
KLBPay-Java-SDK
Thư viện người dùng tích hợp KLBPay vào hệ thống thanh toán của Merchant
Java
Github: https://github.com/unicloudvn/KLBPay-Java-SDK.git
Cài đặt và sử dụng
Requirements
Spring Boot Java 2.7.4+
JDK 11+
Gradle 7.2+
Cách sử dụng:
Cài đặt import:
Bước 1. Thêm phần này ở file build.gradle
repositories {
mavenCentral()
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/unicloudvn/KLBPay-Java-SDK")
credentials {
username = project.findProperty("user") ?: System.getenv("USERNAME")
password = project.findProperty("token") ?: System.getenv("TOKEN")
}
}
}
Bước 2. Tạo file gradle.properties có nội dung như sau
user=hoangkhanhson2000
token=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
Bước 3. Thêm dependencies và load lại gradle
dependencies {
implementation'vn.unicloud:payment-sdk:1.0.3'
}
Như vậy bạn đã có thể sử dụng thư viện SDK rồi
Cài đặt thủ công:
Bước 1. Tải thư mục src của sdk vào dự án dưới dạng module
Bước 2. Cấu hình module payment-sdk trong file build.gradle
plugins{
id'org.springframework.boot'version"${springBootVersion}"
id'io.spring.dependency-management'version"${dependencyManagementVersion}"
id'java'
}
group='vn.unicloud'
version='0.0.1-SNAPSHOT'
sourceCompatibility='11'
repositories{
mavenCentral()
}
dependencies{
implementation'org.springframework.boot:spring-boot-starter-web'
implementation'org.springframework.boot:spring-boot-starter'
compileOnly'org.projectlombok:lombok'
annotationProcessor'org.projectlombok:lombok'
mplementation'commons-codec:commons-codec:1.15'
implementation'com.google.code.gson:gson:2.10'
}
bootJar{
enabled=false
}
Bước 3: Cấu hình trong module của bạn trong build.gradle
plugins{
id'org.springframework.boot'version"${springBootVersion}"
id'io.spring.dependency-management'version"${dependencyManagementVersion}"
id'java'
}
group='your-group'
version='your-version'
repositories{
mavenCentral()
}
bootJar{
enabled=false
}
dependencies{
//implement module
implementation project(':payment-sdk')
}
Bước 4: trong thư mục root của bạn ta cấu hình file setting.gradle
rootProject.name='firstdemo'
include'payment-sdk'
include'your-module'
và thư mục build.gradle
subprojects{
ext{
springBootVersion='2.7.4'
dependencyManagementVersion='1.1.0'
}
}
Như vậy bạn đã có thể sử dụng thư viện SDK một cách thủ công rồi
Constants
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Data
@Configuration
@ConfigurationProperties(prefix = "klb.payment", ignoreUnknownFields = false)
public class PaymentConfigurationProperties {
@JsonProperty("host")
private String host = "https://example.com";
@JsonProperty("client-id")
private String clientId = '<YOUR_CLIENT_ID>';
@JsonProperty("secret-key")
private String secretKey = '<YOUR_SECRET_KEY>';
@JsonProperty("encrypt-key")
private String encryptKey = '<YOUR_ENCRYPT_KEY>';
@JsonProperty("accept-time-diff")
private long acceptTimeDiff = '<YOUR_ACCEPT_TIME_DIFF>';
}
Ví dụ cơ bản
Bạn có thể xem demo ở đây: https://github.com/unicloudvn/KLBPay-Java-SDK/tree/demo
Tạo giao dịch:
CreateTransactionResponse response = kPayClient.createTransaction(request);
Tạo MainClass như sau
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.client.RestTemplate;
import vn.unicloud.sdk.payment.KPayClient;
import vn.unicloud.sdk.payment.client.ThirdPartyClient;
import vn.unicloud.sdk.payment.config.PaymentConfigurationProperties;
import vn.unicloud.sdk.payment.transaction.model.CustomerInfo;
import vn.unicloud.sdk.payment.transaction.request.CreateTransactionRequest;
import vn.unicloud.sdk.payment.transaction.response.CreateTransactionResponse;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
CreateTransactionRequest request = new CreateTransactionRequest();
//Nhập dữ liệu input
request.setRefTransactionId("12444353");
request.setAmount(10000L);
request.setDescription("tra tien");
request.setTimeout(10000L);
request.setTitle("Tra Tien");
request.setLanguage("VI");
CustomerInfo customerInfo = new CustomerInfo("Nguyen Van Xo", "XoNV@gmail.com", "0976066016", "Binh Thanh");
request.setCustomerInfo(customerInfo);
request.setSuccessUrl("https://success.example.com.vn");
request.setFailUrl("https://fail.example.com.vn");
request.setRedirectAfter(5);
request.setBankAccountId("");
PaymentConfigurationProperties config = new PaymentConfigurationProperties();
//Cấu Hình Credential
config.setHost("https://example.com");
config.setClientId("<YOUR_CLIENT_ID>");
config.setSecretKey("<YOUR_SECRET_KEY>");
config.setEncryptKey("<YOUR_ENCRYPT_KEY>");
config.setAcceptTimeDiff("<YOUR_ACCEPT_TIME_DIFF>");
RestTemplate restTemplate = new RestTemplate();
ThirdPartyClient client = new ThirdPartyClient(restTemplate);
KPayClient kPayClient = new KPayClient(config, client);
//Khởi tạo Thanh Toán
CreateTransactionResponse response = kPayClient.createTransaction(request);
//In ra URL thanh toán
System.out.println(response.getUrl());
}
}
Chạy thử dự án
URL thanh toán trả về Console
Copy URL vào trình duyệt Bấm vào để mở thanh toán
Kiểm tra giao dịch (tương tự):
QueryTransactionResponse response = kPayClient.checkTransaction(request);
Hủy giao dịch (tương tự):
CancelTransactionResponse response = kPayClient.cancelTransaction(request);