正式控制台:https://www.airwallex.com/app/account/apiKeys
正式API地址:https://api.airwallex.com
测试控制台:https://demo.airwallex.com/app/login?redirect=/app1/dashboard
测试API地址:https://api-demo.airwallex.com
准备工作:登录官网控制台拿到ClientId和密钥
注:如果只做单笔扣费,看到第二部分就可以了。
第一部分:通过API获取Token
API:/api/v1/authentication/login
请求头的x-client-id和x-api-key就是上面在控制台获取到的(懒得多写直接上代码,发送请求用的是(import org.apache.http.*)
/**
* 获取token
*
* @return 订单信息
*/
public static String getToken() {
if (StringUtils.isBlank(urlHead)
|| StringUtils.isBlank(clientId)
|| StringUtils.isBlank(apiKeys) ) {
return null;
}
String url = urlHead+"/api/v1/authentication/login";
HttpClient client = HttpClients.createDefault();
HttpPost request = new HttpPost(url);
request.setHeader("Content-type", "application/json");
request.setHeader("x-client-id", clientId);
request.setHeader("x-api-key", apiKeys);
HttpResponse response;
try {
response = client.execute(request);
JSONObject tokenJson = HttpUtils.getResponseJson(response);
return ObjectUtils.isNotEmpty(tokenJson) ? "Bearer "+tokenJson.getString("token") : null;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
第二部分:单次扣费
1、根据本站自己的创建订单逻辑去创建一笔未支付订单。
2、调用airwallex的创建付款意图(createPaymentIntent)API。
API:/api/v1/pa/payment_intents/create
/**
* 创建付款意图
*
* @param userId 本站用户id
* @param amount 金额
* @param currency 币种
* @param email 邮箱
* @param firstName f_name
* @param lastName l_name
* @param phone 手机号
* @param orderId 本站订单号
* @param productCode 商品id
* @param productDesc 商品描述
* @param productName 商品名
* @return paymentIntent
*/
public static JSONObject createPaymentIntent(
String orderId,BigDecimal amount,String currency,String userId,String email,String f