分享

支付宝服务端SDK 蚂蚁金服开放平台

 quasiceo 2016-09-19

SDK获取

开发语言 资源下载 环境要求
JAVA版资源 SDK1.5 适用于Java语言、jdk版本1.5及以上的开发环境

SDK1.4 适用于Java语言、jdk版本1.4及以下的开发环境
.NET版资源 SDK 适用于Visual studio 2010及以上版本、Framework3.5及以上版本的开发环境
PHP版资源 SDK 适用于php5.5以上的开发环境
C++版资源 SDK 适用于C++语言,使用方法详见SDK中的Readme.txt
C版资源 SDK 适用于C语言,使用方法详见SDK中的README.md(内含当面付DEMO示例)

SDK集成

  1. SDK已经对加签验签逻辑做了封装,使用SDK可直接调用API。
  2. 确定接口对应的类
    例如接口名:alipay.offline.material.image.upload
    在SDK中对应的类为:每个单词首字母大写,并去掉分隔符(“.”),末尾加上Request(或Response)
    如上接口名对应的类为:
    AlipayOfflineMaterialImageUploadRequest(请求类)
    AlipayOfflineMaterialImageUploadResponse(响应类)
    具体调用方式见下方各语言。

JavaSDK集成示例

SDK包说明

  • alipay-sdk-java*.jar—————————支付宝SDK编译文件jar
  • alipay-sdk-java*-source.jar——————支付宝SDK源码文件jar
  • commons-logging-1.1.1.jar——————SDK依赖的日志jar
  • commons-logging-1.1.1-sources.jar———SDK依赖的日志源码jar

注意

  • 集成支付宝接口需要引入的文件是:
    alipay-sdk-java*.jar
    commons-logging-1.1.1.jar
  • 若进一步了解代码实现请引入文件:
    alipay-sdk-java*-source.jar
    commons-logging-1.1.1-sources.jar

普通调用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//实例化客户端
AlipayClient client = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.open.public.template.message.industry.modify
AlipayOpenPublicTemplateMessageIndustryModifyRequest request = new AlipayOpenPublicTemplateMessageIndustryModifyRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
//此次只是参数展示,未进行字符串转义,实际情况下请转义
request.setBizContent("  {
    "primary_industry_name":"IT科技/IT软件与服务",
    "primary_industry_code":"10001/20102",
    "secondary_industry_code":"10001/20102",
    "secondary_industry_name":"IT科技/IT软件与服务"
  }
");
AlipayOpenPublicTemplateMessageIndustryModifyResponse response = client.execute(request);
//调用成功,则处理业务逻辑
if(response.isSuccess()){
    //.....
}

图片上传接口调用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
AlipayClient client= new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
// 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.offline.material.image.upload
AlipayOfflineMaterialImageUploadRequest request = new AlipayOfflineMaterialImageUploadRequest();
request.setImageName("test");
FileItem item = new FileItem("C:/Downloads/ooopic_963991_7eea1f5426105f9e6069/16365_1271139700.jpg");
request.setImageType("JPG");
request.setImageContent(item);
//执行API请求
AlipayOfflineMaterialImageUploadResponse response = client.execute(request);
//调用成功,则处理业务逻辑
if(response.isSuccess()){
     //获取图片访问地址
    String imageUrl = response.getImageUrl();
    //.....
}

用户授权接口调用示例

1
2
3
4
5
6
7
AlipayClient client= new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.user.userinfo.share
AlipayUserUserinfoShareRequest request = new AlipayUserUserinfoShareRequest();
//授权类接口执行API调用时需要带上accessToken
AlipayUserUserinfoShareResponse response= client.execute(req,"accessToken");
//业务处理
//...

应用授权接口调用示例(ISV代理商户调用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
AlipayClient client= new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.open.public.template.message.industry.modify
AlipayOpenPublicTemplateMessageIndustryModifyRequest request = new AlipayOpenPublicTemplateMessageIndustryModifyRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
//此次只是参数展示,未进行字符串转义,实际情况下请转义
request.setBizContent("  {
    "primary_industry_name":"IT科技/IT软件与服务",
    "primary_industry_code":"10001/20102",
    "secondary_industry_code":"10001/20102",
    "secondary_industry_name":"IT科技/IT软件与服务"
  }
");
//ISV代理商户调用需要传入app_auth_token
request.putOtherTextParam("app_auth_token", "201511BBaaa6464f271f49e482f2e9fe63ca5F05");
AlipayOpenPublicTemplateMessageIndustryModifyResponse response = client.execute(request);
//调用成功,则处理业务逻辑
if(response.isSuccess()){
    //.....
}

.netSDK集成示例

普通调用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.open.public.template.message.industry.modify
AlipayOpenPublicTemplateMessageIndustryModifyRequest request = new AlipayOpenPublicTemplateMessageIndustryModifyRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
//此次只是参数展示,未进行字符串转义,实际情况下请转义
request.BizContent="{
    "primary_industry_name":"IT科技/IT软件与服务",
    "primary_industry_code":"10001/20102",
    "secondary_industry_code":"10001/20102",
    "secondary_industry_name":"IT科技/IT软件与服务"
  }";
AlipayOpenPublicTemplateMessageIndustryModifyResponse response = client.execute(request);
//调用成功,则处理业务逻辑
if(response.isSuccess()){
    //.....
}

图片上传接口调用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
// 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.offline.material.image.upload
AlipayOfflineMaterialImageUploadRequest request = new AlipayOfflineMaterialImageUploadRequest();
request.setImageName("test");
FileItem item = new FileItem("C:/Downloads/ooopic_963991_7eea1f5426105f9e6069/16365_1271139700.jpg");
request.setImageType("JPG");
request.setImageContent(item);
//执行API请求
AlipayOfflineMaterialImageUploadResponse response = alipayClient.execute(request);
//调用成功,则处理业务逻辑
if(response.isSuccess()){
     //获取图片访问地址
    String imageUrl = response.getImageUrl();
    //.....
}

用户授权接口调用示例

1
2
3
4
5
6
7
IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.user.userinfo.share
AlipayUserUserinfoShareRequest request = new AlipayUserUserinfoShareRequest();
//授权类接口执行API调用时需要带上accessToken
AlipayUserUserinfoShareResponse response= client.execute(req,"accessToken");
//业务处理
//...

应用授权接口调用示例(ISV代理商户调用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY);
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.open.public.template.message.industry.modify
AlipayOpenPublicTemplateMessageIndustryModifyRequest request = new AlipayOpenPublicTemplateMessageIndustryModifyRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
//此次只是参数展示,未进行字符串转义,实际情况下请转义
request.setBizContent("  {
    "primary_industry_name":"IT科技/IT软件与服务",
    "primary_industry_code":"10001/20102",
    "secondary_industry_code":"10001/20102",
    "secondary_industry_name":"IT科技/IT软件与服务"
  }
");
AlipayOpenPublicTemplateMessageIndustryModifyResponse response = client.execute(request,null,"app_auth_token");
//调用成功,则处理业务逻辑
if(response.isSuccess()){
    //.....
}

phpSDK集成示例

普通调用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$c = new AopClient;
$c->appId = "app_id";
$c->privateKey = "your private_key";
$c->format = "json";
$c->charset= "GBK";
$c->alipayPublicKey = "alipay_public_key";
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.open.public.template.message.industry.modify
$req = new AlipayOpenPublicTemplateMessageIndustryModifyRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
//此次只是参数展示,未进行字符串转义,实际情况下请转义
$request->bizContent = "{
    "primary_industry_name":"IT科技/IT软件与服务",
    "primary_industry_code":"10001/20102",
    "secondary_industry_code":"10001/20102",
    "secondary_industry_name":"IT科技/IT软件与服务"
  }";
$response= $c->execute($req);

图片上传接口调用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$c = new AopClient;
$c->appId = "app_id";
$c->privateKey = "your private_key";
$c->format = "json";
$c->charset = "GBK";
$c->alipayPublicKey = "alipay_public_key";
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.offline.material.image.upload
$request = new AlipayOfflineMaterialImageUploadRequest();
$request->setImageName("测试文件");
$request->setImageType("jpg");
$request->setImageContent("@"."本地文件路径");
$response = $c->execute($req);
//获取图片地址
$response->getImageUrl();

用户授权接口调用示例

1
2
3
4
5
6
7
8
9
10
11
$c = new AopClient;
$c->appId = "app_id";
$c->privateKey = "your private_key";
$c->format = "json";
$c->charset = "GBK";
$c->alipayPublicKey = "alipay_public_key";
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.user.userinfo.share
$request= new AlipayUserUserinfoShareRequest();
//授权类接口执行API调用时需要带上accessToken
$response= $c->execute($req,"accessToken");

应用授权接口调用示例(ISV代理商户调用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$c = new AopClient;
$c->appId = "app_id";
$c->privateKey = "your private_key";
$c->format = "json";
$c->charset = "GBK";
$c->alipayPublicKey = "alipay_public_key";
##实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.open.public.template.message.industry.modify
$request = new AlipayOpenPublicTemplateMessageIndustryModifyRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
//此次只是参数展示,未进行字符串转义,实际情况下请转义
$request->bizContent = "{
    "primary_industry_name":"IT科技/IT软件与服务",
    "primary_industry_code":"10001/20102",
    "secondary_industry_code":"10001/20102",
    "secondary_industry_name":"IT科技/IT软件与服务"
  }";
//ISV代理商户调用需要传入app_auth_token
$response= $c->execute($req,NULL,"app_auth_token");

方法说明

加签方法(如果不用SDK调用,推荐用该方法加签)

1
2
3
4
5
6
/**
@param params 参数列表 key-参数名称 value-参数值
@param privateKey 加签私钥
@param charset 加签字符集
**/
String AlipaySignature.rsaSign(Map<String, String> params, String privateKey, String charset)

验签方法(同步请求时,如果不用SDK调用,推荐用该方法验签)

1
2
3
4
5
6
7
/**
@param content 待验签字符串
@param sign 签名值
@param publicKey 验签公钥
@param charset 验签字符集
**/
boolean AlipaySignature.rsaCheckContent(String content, String sign, String publicKey, String charset)

验签方法(例如异步通知的时候,用户需要用到验签方法)

1
2
3
4
5
6
/**
@param params 参数列表(包括待验签参数和签名值sign) key-参数名称 value-参数值
@param publicKey 验签公钥
@param charset 验签字符集
**/
boolean AlipaySignature.rsaCheckV2(Map<String, String> params, String publicKey, String charset)

注意事项

  • AlipayClient的实现类都是线程安全的,所以没有必要每次API请求都新建一个AlipayClient实现类;
  • 创建AlipayClient实现类的实例时,指定format=json,相比xml格式,可以减少数据传输量,提升API请求效率。

FAQ

关于此文档暂时还没有FAQ

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多