跳到主要内容

WiseCashier-SDK for JAVA

信息

该功能目前正在开发中,预计将在下一个版本中上线。感谢您的关注与耐心等待!

1. 入门

1.1 前提条件

  • JDK 1.8及以上版本的开发环境。
  • 运行Windows、MacOS或Linux操作系统的台式计算机或设备。

1.2 安装和配置

  1. 应用程序安装和设置,请参阅 USB模式集成WLAN/LAN模式集成

  2. 下载jar包并将其添加到您的项目中,请参阅GitHub源代码。

源代码和库 WLAN模式 USB模式
https://github.com/paycloud-open/ecrhub-client-sdk-javaWindows/Linux/MacOSWindows
https://github.com/paycloud-open/ecrhub-client-demo-java
  1. Maven依赖项
备注

SDK依赖于一些开源的第三方jar。如果这些jar没有集成到您的项目中,您将需要手动向项目添加依赖项。

<!-- Mandatory -->
<!-- jSerialComm -->
<dependency>
<groupId>com.fazecast</groupId>
<artifactId>jSerialComm</artifactId>
<version>[2.0.0,3.0.0)</version>
</dependency>
<!-- WebSocket -->
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.4</version>
</dependency>
<!-- fastjson2 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.26</version>
</dependency>
<!-- hutool -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.21</version>
</dependency>
<!-- slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.9</version>
</dependency>
<!-- jmdns -->
<dependency>
<groupId>org.jmdns</groupId>
<artifactId>jmdns</artifactId>
<version>3.5.8</version>
</dependency>

<!-- non-mandatory -->
<!-- logback -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.3.11</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>

2. 函数列表

2.1 连接

选择一个配对的终端来启动网络连接,一旦建立了连接,就可以发送交易指令。

2.1.1 调用过程

2.1.2 创建客户端实例

USB连接模式

当POS应用程序使用USB电缆连接到POS终端时,请使用以下方法创建客户端

import com.wiseasy.ecr.hub.sdk.ECRHubClient;
import com.wiseasy.ecr.hub.sdk.ECRHubConfig;
import com.wiseasy.ecr.hub.sdk.ECRHubClientFactory;

// Create a client instance By Serial port
ECRHubConfig config = new ECRHubConfig();
// Setting Serial Port timeout
config.getSerialPortConfig().setConnTimeout(10 * 1000);
config.getSerialPortConfig().setWriteTimeout(10 * 1000);
config.getSerialPortConfig().setReadTimeout(120 * 1000);

// Method 1: Specify the serial port name. Please replace "xxxxxx" with the real serial port name. For example: COM6
// ECRHubClient client = ECRHubClientFactory.create("sp://xxxxxx", config);

// Method 2: Do not specify the serial port name. The SDK will automatically find available serial port
ECRHubClient client = ECRHubClientFactory.create("sp://", config);

2.1.3 连接

在POS应用程序和POS终端之间建立连接。

// Connecting to the POS Terminal
client.connect();

2.1.4 断开连接

断开POS应用程序与POS终端的连接。

// This will try disconnect from POS Terminal
client.disconnect();

2.2 交易

2.2.1 销售

  1. Request/Response parameters
  2. Example:
import com.wiseasy.ecr.hub.sdk.model.request.SaleRequest;
import com.wiseasy.ecr.hub.sdk.model.response.SaleResponse;
import com.wiseasy.ecr.hub.sdk.enums.EPayScenario;

// Build sale request
PurchaseRequest request = new PurchaseRequest();
request.setApp_id("Your payment appid"); // Setting your payment application ID
request.setMerchant_order_no("O123456789");
request.setOrder_amount("1");
request.setPay_scenario(EPayScenario.SWIPE_CARD.getVal());

// Setting read timeout,the timeout set here is valid for this request
ECRHubConfig requestConfig = new ECRHubConfig();
requestConfig.getSerialPortConfig().setReadTimeout(2 * 60 * 1000);
request.setConfig(requestConfig);

// Execute sale request
System.out.println("Sale Request:" + request);
PurchaseResponse response = client.execute(request);
System.out.println("Sale Response:" + response);

2.2.2 退款

  1. Request/Response parameters
  2. Example:
import com.wiseasy.ecr.hub.sdk.model.request.RefundRequest;
import com.wiseasy.ecr.hub.sdk.model.response.RefundResponse;

// Build refund request
RefundRequest request = new RefundRequest();
request.setApp_id("Your payment appid"); // Setting your payment application ID
request.setOrig_merchant_order_no("O1695032342508");// The merchant order number of the original order
request.setMerchant_order_no("O123456789");
request.setOrder_amount("1");

// Execute refund request
System.out.println("Refund Request:" + request);
RefundResponse response = client.execute(request);
System.out.println("Refund Response:" + response);

2.2.3 查询

  1. Request/Response parameters
  2. Example:
import com.wiseasy.ecr.hub.sdk.model.request.QueryRequest;
import com.wiseasy.ecr.hub.sdk.model.response.QueryResponse;

// Build query request
QueryRequest request = new QueryRequest();
request.setApp_id("Your payment appid"); // Setting your payment application ID
request.setMerchant_order_no("O123456789");

// Execute query request
System.out.println("Query Request:" + request);
QueryResponse response = client.execute(request);
System.out.println("Query Response:" + response);

2.2.4 关闭

  1. Request/Response parameters
  2. Example:
import com.wiseasy.ecr.hub.sdk.model.request.CloseRequest;
import com.wiseasy.ecr.hub.sdk.model.response.CloseResponse;

// Build close request
CloseRequest request = new CloseRequest();
request.setApp_id("Your payment appid"); // Setting your payment application ID
request.setMerchant_order_no("O123456789");

// Execute close request
System.out.println("Close Request:" + request);
CloseResponse response = client.execute(request);
System.out.println("Close Response:" + response);