文档中心 > 开放平台

本文档展示了如何从零开始,使用蚂蚁金服开放平台服务端SDK快速接入余利宝产品,完成与支付宝对接的部分。

第一步:创建应用

要在您的应用中使用支付宝开放产品的接口能力,您需要先去蚂蚁金服开放平台(open.alipay.com),在管理中心中创建登记您的应用,并提交审核,审核通过后会为您生成应用唯一标识(APPID),并且可以申请开通开放产品使用权限,通过APPID您的应用才能调用开放产品的接口能力。需要详细了解开放平台创建应用步骤请参考《开放平台应用创建指南》。

第二步:配置密钥

开发者调用接口前需要先生成RSA密钥,RSA密钥包含应用私钥(APP_PRIVATE_KEY)、应用公钥(APP_PUBLIC_KEY)。生成密钥后在开放平台管理中心进行密钥配置,配置完成后可以获取支付宝公钥(ALIPAY_PUBLIC_KEY)。详情请参考《配置应用环境》。

第三步:搭建和配置开发环境

1.下载服务端sdk

为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,包含JAVA、PHP和.NET三个语言版本,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的SDK并引入您的开发工程。

2.接口调用配置

各语言版本服务端SDK详细使用说明,请参考《服务端SDK使用说明

在SDK调用前需要进行初始化,代码如下:

AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);

关键参数说明:

配置参数 示例值解释 获取方式/示例值
URL 支付宝网关(固定) https://openapi.alipay.com/gateway.do
APPID APPID 即创建应用后生成 获取见上面创建应用并获取APPID
APP_PRIVATE_KEY 开发者私钥,由开发者自己生成 获取详见上面配置密钥
FORMAT 参数返回格式,只支持json json(固定)
CHARSET 编码集,支持GBK/UTF-8 开发者根据实际工程编码配置
ALIPAY_PUBLIC_KEY 支付宝公钥,由支付宝生成 获取详见上面配置密钥
SIGN_TYPE 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2
TIPS:ISV/开发者可以通过“第三方应用授权”得到商户授权令牌(app_auth_token)作为请求参数传入,实现代商户发起请求的能力;具体方法请参考 第三方应用授权

第四步:接口调用

使用SDK快速接入

1. 余利宝申购(mybank.finance.yulibao.capital.purchase)

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
MybankFinanceYulibaoCapitalPurchaseRequest request = new MybankFinanceYulibaoCapitalPurchaseRequest();
//appAuthToken值获取方式参考第三方应用授权
request.put("app_auth_token",appAuthToken);
request.setBizContent("{" +
"    \"fund_code\":\"001529\"," +
"    \"amount\":123456," +
"    \"currency\":\"CNY\"," +
"    \"out_biz_no\":\"201608150000000000000000000000000001\"" +
"  }");
MybankFinanceYulibaoCapitalPurchaseResponse response = alipayClient.execute(request);
if(response.isSuccess()){
    System.out.println("调用成功");
} else {
    System.out.println("调用失败");
}

>> 以上内容中的参数值均为示例,请开发者根据实际情况配置,参数说明请参考接口说明。

TIPS:
1.接口幂等字段为out_biz_no,不同的out_biz_no视作不同的请求。相同out_biz_no仅会处理一次。不同接口也必须使用不同的out_biz_no。
2. fund_code为基金代码,目前仅支持001529。
3. amount为金额字段,单位为分,123456代表1234.56元(壹仟贰佰叁拾肆圆伍角陆分)

2. 余利宝赎回(mybank.finance.yulibao.capital.ransom)

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
MybankFinanceYulibaoCapitalRansomRequest request = new MybankFinanceYulibaoCapitalRansomRequest();
//appAuthToken值获取方式参考第三方应用授权
request.put("app_auth_token",appAuthToken);
request.setBizContent("{" +
"    \"fund_code\":\"001529\"," +
"    \"amount\":123456," +
"    \"currency\":\"CNY\"," +
"    \"ransom_mode\":\"REALTIME\"," +
"    \"out_biz_no\":\"201608150000000000000000000000000001\"" +
"  }");
MybankFinanceYulibaoCapitalRansomResponse response = alipayClient.execute(request);
if(response.isSuccess()){
    System.out.println("调用成功");
} else {
    System.out.println("调用失败");
}

>> 以上内容中的参数值均为示例,请开发者根据实际情况配置,参数说明请参考接口说明。

TIPS:
1.接口幂等字段为out_biz_no,不同的out_biz_no视作不同的请求。相同out_biz_no仅会处理一次。不同接口也必须使用不同的out_biz_no。
2. fund_code为基金代码,目前仅支持001529。
3. 金额字段的单位为分,123456代表1234.56元(壹仟贰佰叁拾肆圆伍角陆分)。
4. ransom_mode:赎回模式,REALTIME表示实时,NOTREALTIME表示非实时赎回(T+1到账),仅支持这两种模式。实时赎回日累计金额小于等于500万,大于500万则要使用非实时赎回,选择非实时赎回且日累计金额小于等于500万则会自动转为实时。

3. 余利宝历史交易查询(mybank.finance.yulibao.trans.history.query)

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2"); 
MybankFinanceYulibaoTransHistoryQueryRequest request = new MybankFinanceYulibaoTransHistoryQueryRequest();
//appAuthToken值获取方式参考第三方应用授权
request.put("app_auth_token",appAuthToken);
request.setBizContent("{" +
"    \"fund_code\":\"001529\"," +
"    \"start_date\":\"20160808\"," +
"    \"end_date\":\"20160818\"," +
"    \"page\":1," +
"    \"page_size\":20" +
"  }");
MybankFinanceYulibaoTransHistoryQueryResponse response = alipayClient.execute(request);
if(response.isSuccess()){
    System.out.println("调用成功");
} else {
    System.out.println("调用失败");
}

>> 以上内容中的参数值均为示例,请开发者根据实际情况配置,参数说明请参考接口说明。

TIPS:
1. 起始日期和结束日期最大跨度30天;
2. fund_code为基金代码,目前仅支持001529;
3.接口支持分页查询,最多支持4950条记录查询;如果发现查询的总记录数超过4950条,建议缩短查询时间跨度。

4. 余利宝账户和收益查询(mybank.finance.yulibao.account.query)

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2"); 
MybankFinanceYulibaoAccountQueryRequest request = new MybankFinanceYulibaoAccountQueryRequest();
//appAuthToken值获取方式参考第三方应用授权
request.put("app_auth_token",appAuthToken);
request.setBizContent("{" +
"    \"fund_code\":\"001529\"" +
"  }");
MybankFinanceYulibaoAccountQueryResponse response = alipayClient.execute(request);
if(response.isSuccess()){
    System.out.println("调用成功");
} else {
    System.out.println("调用失败");
}

>> 以上内容中的参数值均为示例,请开发者根据实际情况配置,参数说明请参考接口说明。

TIPS:fund_code为基金代码,目前仅支持001529。

5. 查询余利宝行情信息(七日年化收益率、万份收益金额)(mybank.finance.yulibao.price.query)

AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,"json",CHARSET,ALIPAY_PUBLIC_KEY);
MybankFinanceYulibaoPriceQueryRequest request = new MybankFinanceYulibaoPriceQueryRequest();
//appAuthToken值获取方式参考第三方应用授权
request.put("app_auth_token",appAuthToken);
request.setBizContent("{" +
"    \"fund_code\":\"001529\"," +
"    \"start_date\":\"20160808\"," +
"    \"end_date\":\"20160818\"" +
"  }");
MybankFinanceYulibaoPriceQueryResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}

>> 以上内容中的参数值均为示例,请开发者根据实际情况配置,参数说明请参考接口说明。

TIPS:
1. fund_code为基金代码,目前仅支持001529;
2. 查询起止时间最大跨度为30天,最小支持当天查询。

接口调用结果处理

      获取接口处理结果代码示例

AlipayCommerceCityfacilitatorVoucherGenerateResponse response = alipayClient.execute(request);
System.out.println(response.getCode());//获取结果码
System.out.println(response.getSubCode());//获取子错误码
System.out.println(response.getMsg());//获取子错误描述
System.out.println(response.getBody());//获取返回报文
同步返回结果码 含义 说明

10000

业务处理成功

 

40001~40006

业务处理失败

具体失败原因请参考公共错误码。其它请参考API文档。

20000

业务出现未知错误或者系统异常

业务出现未知错误或者系统异常(请一定要在确定本次调用结果后,再发起重试),若有结果接口的,需调用查询接口发起查询。

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部