java怎么對(duì)接連連支付?java-sdk 使用文檔使用文檔分享
本文是關(guān)于連連支付的對(duì)接工具:java-sdk 使用文檔的詳細(xì)介紹。
連連支付對(duì)接工具:java-sdk 使用文檔一、簡(jiǎn)介適用于 JAVA 6 及以上的開發(fā)環(huán)境。
二、使用說明概述:連連支付將與服務(wù)端交互的接口(OpenAPI)封裝在開發(fā)工具包(SDK)中,開發(fā)者無需自行實(shí)現(xiàn)同服務(wù)端交互的復(fù)雜邏輯,直接將 SDK jar 包引入自己的工程后,通過 OpenAPI 的示例代碼實(shí)現(xiàn)同連連支付服務(wù)端的交互。
適用人群本文閱讀對(duì)象:商戶系統(tǒng)集成連連支付涉及的技術(shù)架構(gòu)師,研發(fā)工程師,測(cè)試工程師,系統(tǒng)運(yùn)維工程師等相關(guān)人員。
三、支持接口提供創(chuàng)單支付、退款、支付查詢、退款查詢、物流上傳、支付取消、獲取 iframe 支付 token 方法、支付/退款通知接口,開發(fā)者只需修改部分參數(shù)即可調(diào)用。
目前已支持的接口,如 api 文檔所示 :https://doc.lianlianpay.com/doc-api/open-api/pay-order。
四、開發(fā)準(zhǔn)備相關(guān)依賴sdk jar 包資源:。
globalpay-sdk-0.0.5.zip。
sdk 使用 demo 資源:。
pay-v3-sdk-demo-java.zip。
所需額外依賴資源:https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient/4.5.2。
引入 sdk:方式一:將 sdk jar 包上傳至貴公司 maven 倉(cāng)庫(kù)。
1.上傳至maven倉(cāng)庫(kù)。
mvn deploy:deploy-file -DgroupId=com.lianpay.globalpay -DartifactId=globalpay-sdk -Dversion=0.0.5 -Dpacckaging=jar -Dfile=globalpay-sdk-0.0.5.jar -DrepositoryId=maven-releases -Durl=maven url。
–Dversion 版本信息。
-DrepositoryId 倉(cāng)庫(kù)標(biāo)識(shí)id。
-Durl 私服上倉(cāng)庫(kù)的位置,打開nexus——>repositories菜單,可以看到該路徑。
-Dfile 直接寫文件名即可。
2.使用依賴。
maven:。
<dependency>。
<groupId>com.lianpay.globalpay</groupId>。
<artifactId>globalpay-sdk</artifactId>。
<version>0.0.5</version>。
</dependency>。
<dependency>。
<groupId>org.apache.httpcomponents</groupId>。
<artifactId>httpclient</artifactId>。
<version>4.5.2</version>。
</dependency>。
gralde:。
compile group: ‘com.lianpay.globalpay’, name:’globalpay-sdk’, version:’0.0.5′。
complie group: ‘org.apache.httpcomponents’, name:’httpclient’, version:’4.5.2′。
方式二:使用本地 sdk jar 包方式。
1.maven。
<dependency>。
<groupId>com.lianpay.globalpay</groupId>。
<artifactId>globalpay-sdk</artifactId>。
<version>0.0.5</version>。
<type>jar</type>。
<scope>system</scope>。
<systemPath>${basedir}/lib/globalpay-sdk-0.0.5.jar</systemPath>。
</dependency>。
<dependency>。
<groupId>org.apache.httpcomponents</groupId>。
<artifactId>httpclient</artifactId>。
<version>4.5.2</version>。
</dependency>。
2.gradle。
dependencies { compile files(‘lib/globalpay-sdk-0.0.5.jar’)}。
complie group: ‘org.apache.httpcomponents’, name:’httpclient’, version:’4.5.2′。
修改商戶參數(shù)商戶配置文件信息修改:商戶號(hào)、連連公鑰、商戶私鑰、環(huán)境設(shè)置。
#可參考pay-v3-sdk-demo-java.zip中g(shù)lobalpay-merchant.properties。
# ON / OFF。
DEBUGGERFLAG=ON。
# (測(cè)試模式)ON / OFF。
TESTMODEL=ON。
# 商戶號(hào) 連連提供。
MERCHANTID=。
# 二級(jí)商戶號(hào) 連連提供(若無則不填)。
SUBMERCHANTID=。
# 見 AlgorithmEnum。
SIGNTYPE=RSA。
# 配置商戶秘鑰。
# RSA – 商戶私鑰 – 商戶自己創(chuàng)建。
# HMAC – 連連提供的HMAC key。
MERCHANTSIGNKEY=。
# 配置連連秘鑰。
# RSA – 連連公鑰 – 連連提供。
# HMAC – 連連提供的HMAC key。
LLSIGNKEY=。
五、SDK 調(diào)用示例代碼LianLianpay SDK 集成說明:SDK 已經(jīng)對(duì)加簽驗(yàn)簽邏輯做了封裝,使用 SDK 時(shí)傳入商戶公鑰等內(nèi)容可直接通過 SDK 自動(dòng)進(jìn)行加驗(yàn)簽,簽名方法:加簽驗(yàn)簽詳情參見https://doc.lianlianpay.com/pay-guide/dev-ready/rule。
創(chuàng)單支付調(diào)用示例public class PaymentsTest {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final PaymentsService payService = new PaymentsService();。
public void testPaySuccess() {。
//創(chuàng)單支付接口詳細(xì)請(qǐng)見: https://doc.lianlianpay.com/doc-api/open-api/pay-order。
PaymentsRequest payRequest = buildCheckoutPagePayRequest();。
ApiResult<PaymentsResponse> s = payService.sendPaymentRequest(payRequest, merchant);。
}。
}。
備注:CheckoutPage 模式見代碼 demo 包中 CheckoutPagePaymentsTest 測(cè)試類,IFrame 模式見 IFramePaymentsTest 測(cè)試類,Direct Api 模式見 DirectApiPaymentsTest 測(cè)試類。
退款調(diào)用示例public class RefundTest {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final RefundService refundService = new RefundService();。
public void testRefund() {。
//退款接口詳細(xì)請(qǐng)見:https://doc.lianlianpay.com/doc-api/open-api/pay-result。
RefundRequest request = buildRefundRequest();。
//原始交易訂單號(hào) 必填。
request.setOriginalTransactionId(“”);。
ApiResult<RefundResponse> refundResponseApiResult = refundService.sendRefundRequest(request, merchant);。
}。
}。
支付結(jié)果查詢調(diào)用示例public class PaymentsQueryTest {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final PaymentsQueryService paymentsQueryService = new PaymentsQueryService();。
public void testPaymentsQuery() {。
//支付查詢接口詳細(xì)請(qǐng)見:https://doc.lianlianpay.com/doc-api/open-api/pay-result。
String merchantTransactionId = “”;。
ApiResult<PaymentsResponse> payResponseApiResult = paymentsQueryService.sendPaymentQueryRequest(merchantTransactionId, merchant);。
}。
}。
退款結(jié)果查詢調(diào)用示例public class RefundQueryTest {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final RefundQueryService refundQueryService = new RefundQueryService();。
public void testRefundQuery() {。
//退款查詢接口詳細(xì)請(qǐng)見:https://doc.lianlianpay.com/doc-api/open-api/refund-result。
String merchantTransactionId = “”;。
ApiResult<RefundResponse> refundResponseApiResult = refundQueryService.sendRefundQueryRequest(merchantTransactionId, merchant);。
}。
}。
支付取消調(diào)用示例public class PaymentsCancelTest {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final PaymentsCancelService paymentsCancelService = new PaymentsCancelService();。
public void testPaymentsCancel() {。
//支付取消接口詳細(xì)請(qǐng)見:https://doc.lianlianpay.com/doc-api/open-api/pay-cancel。
String merchantTransactionId = “”;。
ApiResult<CancelPayResponse> cancelPayResponseApiResult = paymentsCancelService.sendPaymentCancelRequest(merchantTransactionId, merchant);。
}。
}。
物流上傳調(diào)用示例public class ShipmentsUploadTest {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final ShipmentsService shipmentsService = new ShipmentsService();。
public void testShipmentsUpload() {。
//物流上傳接口詳細(xì)請(qǐng)見:https://doc.lianlianpay.com/doc-api/open-api/logistics。
ShipmentRequest shipmentRequest = buildShipmentRequest();。
ApiResult<?> apiResult = shipmentsService.sendShipmentsRequest(shipmentRequest, merchant);。
}。
}。
獲取 iframe 支付 token 調(diào)用示例public class IFrameToken {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final IFrameTokenService iFrameTokenService = new IFrameTokenService();。
public void testGetIframeToken() {。
//獲取IFrame支付token詳情見:https://doc.lianlianpay.com/doc-api/open-api/get-token。
ApiResult<String> iFrameTokenRes = iFrameTokenService.sendIFrameTokenRequest(merchant);。
}。
}。
支付結(jié)果通知調(diào)用示例public class PaymentsNotifyTest {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final PaymentNotifyService paymentNotifyService = new PaymentNotifyService();。
public void testPaymentNotify() {。
System.out.println(“支付通知詳細(xì)請(qǐng)見:https://doc.lianlianpay.com/doc-api/open-news/pay-result”);。
//通知頭部信息。
Map<String, String> headers;。
//通知body體信息。
String requestBody;。
PaymentsNotifyRequest paymentsNotifyRequest = paymentNotifyService.checkNotifySignAndGetPaymentsNotifyRequest(headers, requestBody, merchant);。
}。
}。
退款結(jié)果通知調(diào)用示例public class RefundNotifyTest {。
private final MerchantPropertyReader merchant = new MerchantPropertyReader(“/globalpay-merchant.properties”);。
private final RefundNotifyService refundNotifyService = new RefundNotifyService();。
public void testRefundNotify() {。
System.out.println(“退款通知詳細(xì)請(qǐng)見:https://doc.lianlianpay.com/doc-api/open-news/refund-result”);。
//通知頭部信息。
Map<String, String> headers;。
//通知body體信息。
String requestBody;。
RefundNotifyRequest refundNotifyRequest = refundNotifyService.checkNotifySignAndGetRefundNotifyRequest(headers, requestBody, merchant);。
}。
}。
生成公私鑰示例public class RsaPairKeyTest {。
public static void main(String[] args) throws Exception {。
ImmutablePair<String, String> rsaKeyPair = SignUtil.initRsaKey();。
System.out.println(“獲取Rsa公鑰:” + rsaKeyPair.getLeft());。
System.out.println(“獲取Rsa私鑰:” + rsaKeyPair.getRight());。
}。
}。
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。