集分宝接口包含集分宝预算查询接口、集分宝发放接口、集分宝订单查询接口、开发者集分宝余额查询接口,下面详细例举了java调用集分宝接口的方式。
普通代码Config配置示例:
public class Config {
// 开发者应用私钥。java配置PKCS8格式,PHP/.Net语言配置rsa_private_key.pem文件中原始私钥。
public static final String RSA_RRIVATE_KEY = "详见密钥生成";
// 接口请求网关,固定值
public static final String URL = "https://openapi.alipay.com/gateway.do";
// 商户应用APPID,只要您的应用中包含集分宝接口且是开通状态,就可以用此应用对应的appid。开发者可登录开放平台-管理中心-对应应用中查看
public static final String APPID = "2015********8324";
// 编码字符集。默认 utf-8
public static final String CHARSET = "utf-8";
// 返回格式。默认json
public static final String FORMAT = "json";
// 支付宝公钥,用于获取同步返回信息后进行验证,验证是否是支付宝发送的信息。
public static final String ALIPAY_PUBLIC_KEY = "开发者登录开放平台-管理中心-进入应用后查看";
}
AlipayClient是SDK公共请求方法类,AlipayClientFactory是AlipayClient的静态工厂类:
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
public class AlipayClientFactory {
// SDK 公共请求类,包含公共请求参数,以及封装了签名与验签,开发者无需关注签名与验签
private static final AlipayClient client = new DefaultAlipayClient(Config.URL, Config.APPID, Config.RSA_RRIVATE_KEY, Config.FORMAT,
Config.CHARSET, Config.ALIPAY_PUBLIC_KEY);
public static AlipayClient getAlipayClientInstance() {
return client;
}
}
接口调用示例大致分为3步:
alipay.asset.point.budget.query接口代码调用示例:
/**
* 集分宝预算查询
* @param appAuthToken 如ISV代替商家调用集分宝预算查询接口,需将商户授权后获取的app_auth_token带上;如商家自己调用,则传null。
* @return
* @throws AlipayApiException 请处理异常
*/
public AlipayAssetPointBudgetQueryResponse budgetQuery(String appAuthToken)
throws AlipayApiException {
AlipayAssetPointBudgetQueryRequest request = new AlipayAssetPointBudgetQueryRequest();
request.putOtherTextParam("app_auth_token", appAuthToken);
return AlipayClientFactory.getAlipayClientInstance().execute(request);
}
注意:
app_auth_token如何获取,详见“接入准备——第三方应用授权”。
alipay.asset.point.order.create接口代码调用示例:
/**
* 集分宝发放
* @param appAuthToken 如ISV代替商家调用集分宝发放接口,需将商户授权后获取的app_auth_token带上;如商家自己调用,则传null。
* @param bizContent = "{\"memo\":\"发放集分宝\",\"merchant_order_no\":\"52841593-0f08-45b0-be87-4c90d2af\",\"order_time\":\"2015-11-22 10:47:20\",\"point_count\":\"1\",\"user_symbol\":\"2088802608984030\",\"user_symbol_type\":\"ALIPAY_USER_ID\"}";
* @return
* @throws AlipayApiException 请处理异常
*/
public AlipayAssetPointOrderCreateResponse orderCreate (String appAuthToken, String bizContent)
throws AlipayApiException {
AlipayAssetPointOrderCreateRequest request = new AlipayAssetPointOrderCreateRequest();
request.putOtherTextParam("app_auth_token", appAuthToken);
request.setBizContent(bizContent);
return AlipayClientFactory.getAlipayClientInstance().execute(request);
}
alipay.asset.point.order.query接口代码调用示例:
/**
* 集分宝发放订单查询
* @param appAuthToken 如ISV代替商家调用集分宝发放订单查询接口,需将商户授权后获取的app_auth_token带上;如商家自己调用,则传null。
* @param bizContent = "{\"merchant_order_no\":\"6d7ec319-1716-48bf-849f-205bea88\"";
* @return
* @throws AlipayApiException 请处理异常
*/
public AlipayAssetPointOrderQueryResponse queryAdvertise(String appAuthToken, String bizContent)
throws AlipayApiException {
AlipayAssetPointOrderQueryRequest request = new AlipayAssetPointOrderQueryRequest();
request.putOtherTextParam("app_auth_token", appAuthToken);
request.setBizContent(bizContent);
return AlipayClientFactory.getAlipayClientInstance().execute(request);
}
alipay.asset.point.balance.query接口代码调用示例:
/**
* 开发者集分宝余额查询
* @param appAuthToken 如ISV代替商家调用开发者集分宝余额查询接口,需将商户授权后获取的app_auth_token带上;如商家自己调用,则传null。
* @return
* @throws AlipayApiException 请处理异常
*/
public AlipayAssetPointBalanceQueryResponse queryAdvertise(String appAuthToken)
throws AlipayApiException {
AlipayAssetPointBalanceQueryRequest request = new AlipayAssetPointBalanceQueryRequest();
request.putOtherTextParam("app_auth_token", appAuthToken);
return AlipayClientFactory.getAlipayClientInstance().execute(request);
}