跳到主要内容
版本:v2.0

客户端SDK

欢迎使用 TripLink SDK,源代码位于 GitHub

TripLink SDK 让您更轻松方便地对接 TripLink API,自动进行:加密与解密数据,生成与验证签名,校验基本参数以及发送 HTTPS 请求。

在使用 TripLink SDK 之前,您需要参考 快速接入 完成准备工作,包括准备AES密钥、RSA公钥等。

Java SDK

安装

最低版本要求:Java 6

推荐通过 Maven 来管理项目依赖,您只需在项目的pom.xml文件中声明依赖 Vcc SDK Java(请保持版本为最新版):

<dependency>
<groupId>io.github.ctripcorp</groupId>
<artifactId>triplink-api</artifactId>
</dependency>

功能

TripLink Java SDK 支持您扩展自己的HTTPS请求和日志实现。

HTTPS 请求

TripLink Java SDK 的 HTTPS 请求默认使用 Java 原生方法。您也可以实现HttpClient接口,重写post方法。

public class CustomHttpClient implements HttpClient<CallHttpResponse> {
@Override
public CallHttpResponse post(String requestJson, String url, Map<String, String> header) {
// 自定义实现
}
}

如果需要配置代理可以使用支持代理的HttpClientTripLinkHttpProxyClient

public class TripLinkHttpProxyClientTest {

public void test() {
//proxy的bean
TripLinkHttpProxyClient client = new TripLinkHttpProxyClient(proxyHost,proxyHost);
}
}

日志实现

TripLink Java SDK For 遵循slf4j日志标准,您可以根据自己应用选择具体的实现:

📋Logback
📋SLF4J Simple
📋Log4j

示例

API文档 里每个接口的SDK示例下,都有可直接运行的测试方法提供。

package com.ctrip.ccard.creditcard.vcc.api.demo;

import com.ctrip.ccard.creditcard.vcc.api.V2.TripLinkApiImplV2;
import com.ctrip.ccard.creditcard.vcc.bean.CallHttpResponse;
import com.ctrip.ccard.creditcard.vcc.bean.V2.CardCreateRequest;
import com.ctrip.ccard.creditcard.vcc.bean.V2.CardCreateResponse;
import com.ctrip.ccard.creditcard.vcc.biz.V2.TripLinkBizImplV2;
import com.ctrip.ccard.creditcard.vcc.exception.BusinessException;
import com.ctrip.ccard.creditcard.vcc.exception.HttpException;
import com.ctrip.ccard.creditcard.vcc.util.HttpClient;
import com.ctrip.ccard.creditcard.vcc.util.TripLinkHttpClient;
import org.junit.Test;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class TripLinkSDKTest {
// API地址
private static final String BASE_URL = "https://compass.uat.ctripqa.com/compass/api";
// 客户ID
private static final String CUSTOMER_ID = "CUSTOMER_ID";
// AES密钥
private static final String AES_KEY = "AES_KEY";
// 客户RSA私钥
private static final String CUSTOMER_PRIVATE_KEY = "CUSTOMER_PRIVATE_KEY";
// TripLink RSA公钥
private static final String TRIPLINK_PUBLIC_KEY = "TRIPLINK_PUBLIC_KEY";

@Test
public void testCreateCard() {
// 初始化TripLinkApi实例
HttpClient<CallHttpResponse> httpClient = new TripLinkHttpClient();
TripLinkBizImplV2 tripLinkCore = new TripLinkBizImplV2(CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY, AES_KEY, BASE_URL, httpClient);
TripLinkApiImplV2 tripLinkApi = new TripLinkApiImplV2(tripLinkCore);

// 拼接请求参数
CardCreateRequest request = new CardCreateRequest();
request.setRequestId(UUID.randomUUID().toString());
request.setCustomerId(CUSTOMER_ID);
request.setCardCurrencyCode("840");
request.setSettlementCurrencyCode("840");
request.setActiveDate("2025-06-01");
request.setInactiveDate("2027-06-01");
request.setCardLimit(BigDecimal.valueOf(1000.12));
request.setMinAuthAmount(BigDecimal.valueOf(3.45));
request.setMaxAuthAmount(BigDecimal.valueOf(500.67));
request.setMaxAuthTimes(-1);
request.setCardCloseUsage(40);
request.setSupportedMccGroup("ecom");
request.setMultipleCurrencyCard(true);
request.setCvv2ForceCheck(true);
request.setCardBin("522981");
request.setCardType("GWTTP");
request.setCardLabel("MasterCard");
Map<String, String> userReference = new HashMap<>();
userReference.put("useRef1Txt", "anything");
request.setUserReferenceMap(userReference);

try {
// 发送请求
CardCreateResponse response = tripLinkApi.create(request);
} catch (HttpException e) {
// 处理HTTPS请求异常
} catch (BusinessException e) {
// 处理业务异常
}
}
}

PHP SDK

安装

最低版本要求:PHP 7.3

功能

TripLink Java SDK 支持您扩展自己的HTTPS请求

HTTPS 请求

TripLink PHP SDK 的 HTTPS 请求默认使用Guzzle。您也可以自己实现HttpClient接口,重写post方法。

class CustomHttpClient implements HttpClient {
public function post(string $url, array $headers, string $body): HttpResponse {
// 自定义实现
}
}

示例

API文档 里每个接口的SDK示例下,都有可直接运行的测试方法提供。

<?php declare(strict_types=1);

namespace v2\demo;

use PHPUnit\Framework\TestCase;
use v2\agent\support\SimpleTripLinkAgent;
use v2\client\support\GuzzleHttpClient;
use v2\config\Customer;
use v2\exception\TripLinkException;
use v2\model\core\CreateCardRequest;
use v2\model\core\UserReference;

// API地址
const BASE_URL = 'https://compass.uat.ctripqa.com/compass/api';
// 客户ID
const CUSTOMER_ID = 'CUSTOMER_ID';
// AES密钥
const AES_KEY = 'AES_KEY';
// 客户RSA私钥
const CUSTOMER_PRIVATE_KEY = 'CUSTOMER_PRIVATE_KEY';
// TripLink RSA公钥
const TRIPLINK_PUBLIC_KEY = 'TRIPLINK_PUBLIC_KEY';

class TripLinkSDKTest extends TestCase {

public function testCreateCard(): void {
// 初始化TripLinkAgent实例
$httpClient = new GuzzleHttpClient();
$customer = new Customer(CUSTOMER_ID, AES_KEY, CUSTOMER_PRIVATE_KEY, TRIPLINK_PUBLIC_KEY);
$tripLinkAgent = new SimpleTripLinkAgent(BASE_URL, $customer, $httpClient);

// 拼接请求参数
$request = new CreateCardRequest(uniqid(), CUSTOMER_ID);
$request->setCardCurrencyCode('840');
$request->setSettlementCurrencyCode('840');
$request->setActiveDate('2025-06-01');
$request->setInactiveDate('2027-06-01');
$request->setCardLimit(1000.12);
$request->setMinAuthAmount(3.45);
$request->setMaxAuthAmount(500.67);
$request->setMaxAuthTimes(-1);
$request->setCardCloseUsage(40);
$request->setSupportedMccGroup('ecom');
$request->setMultipleCurrencyCard(true);
$request->setCvv2ForceCheck(true);
$request->setCardBin('522981');
$request->setCardType('GWTTP');
$request->setCardLabel('MasterCard');
$userReference = new UserReference();
$userReference->setUseRef1Txt('anything');
$request->setUserReferenceMap($userReference);

try {
// 发送请求
$response = $tripLinkAgent->createCard($request);
} catch (TripLinkException $e) {
// 处理业务异常
}
}
}