# Alipay SDK(通用版)
通用版服务端 SDK 适用于 **Java**、**PHP**、**C#**、**Python**、**Node.js** 编程语言,可调用所有 OpenAPI 接口。
## 获取 Alipay SDK
| **开发语言** | **资源下载** | **环境要求** |
| --- | --- | --- |
| Java 版资源 |
- [Maven 项目依赖](https://search.maven.org/artifact/com.alipay.sdk/alipay-sdk-java)
- [GitHub 项目主页](https://github.com/alipay/alipay-sdk-java-all)
| 适用于 Java 语言、JDK 版本 1.8 及以上的开发环境。 |
| .NET 版资源 |
- [NuGet 项目依赖](https://www.nuget.org/packages/AlipaySDKNet.Standard/)
- [GitHub 项目主页](https://github.com/alipay/alipay-sdk-net-all)
|
- 适用于符合.Net Standard 2.0规范的各类微软框架(如:.Net Framework >= 4.6.1、.Net Core >= 2.0 等)。
- .Net Framework(3.5 ~ 4.6)的用户可以继续使用 [AlipaySDKNet](https://www.nuget.org/packages/AlipaySDKNet/)。
|
| PHP 版资源 |
- [GitHub 项目主页](https://github.com/alipay/alipay-sdk-php-all)
| 适用于 PHP 5.5 以上的开发环境。 |
| PYTHON 版资源 |
- [PyPI 项目依赖](https://pypi.org/project/alipay-sdk-python/3.3.398/)
| 适用于 Python 2.7 及以上版本的开发环境。 |
| NodeJS 版资源 |
- [NPM 项目依赖](https://www.npmjs.com/package/alipay-sdk)
| 适用于 Node.js v8.0.0 及以上版本的开发环境。 |
**说明**:
其它编程语言的 SDK(比如 GO 语言 SDK 等),支付宝官方暂未支持,您可以前往开源社区寻找开源版本。
另外,支付宝现已推出符合 OAS3.0 规范的 API(V3版本),拥有更简洁的协议格式处理/签名/验签处理逻辑,推荐无法使用 SDK 的用户,直接对接 [V3版本的OpenAPI](https://ideservice.alipay.com/cms/site//05419m?pathHash=a5cb620e)。
## Alipay SDK 调用示例
### Alipay SDK 集成说明
- 由于实例化 SDK 客户端时需要指定应用的私钥信息,请务必注意不要将私钥信息配置在源码中(例如配置为常量或储存在配置文件的某个字段中等),因为私钥的保密等级往往比源码高得多,将会增加私钥泄露的风险。推荐将私钥信息储存在专用的私钥文件中,将私钥文件通过安全的流程分发到服务器的安全储存区域上,仅供自己的应用运行时读取。
- SDK 已经对加签验签逻辑做了封装,使用 SDK 时传入支付宝公钥等内容可直接通过 SDK 自动进行加验签。
- **集成调试说明**:通用版 4.40.0.ALL 及以上版本支持通过`DiagnosisUtils.getTraceId(response);` 方法获取 OpenAPI 接口请求的 trace_id,便于集成接入过程中的问题排查。
### 确定接口对应的类
例如接口名为:`alipay.offline.material.image.upload`
在 SDK 中对应的类为:每个单词首字母大写,并去掉分隔符(“.”),末尾加上 Request(或 Response)。
#### 如上接口名对应的类为
AlipayOfflineMaterialImageUploadRequest(请求类)
AlipayOfflineMaterialImageUploadResponse(响应类)
具体调用方式见下方各语言集成示例。
## 签名方法
加签验签详情可查看 [数据签名](https://ideservice.alipay.com/cms/site//02kf5q)。
# Alipay Easy SDK
Easy 版服务端 SDK([Alipay Easy SDK](https://github.com/alipay/alipay-easysdk))适用于 **Java、C#、PHP** 编程语言,对开放产品的 API 进行了更加贴近高频场景的精心设计与裁剪,简化了服务端调用方式,让开发者享受极简编程体验,快速访问支付宝开放平台开放的各项核心产品。
同时,开发者不必担心面向高频场景提炼的 API 无法完全契合自身个性化场景的问题,Alipay Easy SDK 支持灵活的动态扩展方式,同样可以满足低频参数、低频 API 的使用需求。
**注意:**Alipay Easy SDK 需使用 maven 依赖引入,请勿直接下载 JAR 包导入项目。
### Easy 版、通用版服务端 SDK 相关说明
- 通用版 SDK 中:
- certificateExecute 和 execute 方法,可使用 Easy 版服务端 SDK 提供的 Factory.Util.Generic.execute 方法替换。
- sdkExecute 方法,可以用 Easy 版服务端 SDK 提供的 Factory.Util.Generic.sdkExecute 方法替换。
- 文件上传场景,可以用 Easy 版服务端 SDK Factory.Util.Generic.fileExecute 方法替换。
- 更多场景查看下文对应语言 **动态扩展 SDK 功能满足个性化需求。**
- 通用版 SDK 中的门店照片和视频文件的上传,可使用Easy版服务端 SDK 中的 Factory.Base.Image.upload 和 Factory.Base.Video.upload 覆盖。
- 通用版 SDK 中的支付类异步通知验签 AlipaySignature.rsaCertCheckV1 和 AlipaySignature.rsaCheckV1 方法,可使用Easy版本服务端 SDK 提供的 Factory.Payment.Common.verifyNotify 方法替换。
- 两个版本 SDK 并无冲突,可以共存。
## 获取 Alipay Easy SDK
| **开发语言** | **资源下载** | **环境要求** |
| --- | --- | --- |
| Java | [Maven 项目依赖](https://mvnrepository.com/artifact/com.alipay.sdk/alipay-easysdk)
[GitHub 项目主页](https://github.com/alipay/alipay-easysdk/tree/master/java) | 适用于 JDK 1.8 及其以上版本
**注意:**需使用 maven 依赖引入,请勿直接下载 JAR 包导入项目。 |
| C# | [NuGet 项目依赖](https://www.nuget.org/packages/AlipayEasySDK)
[GitHub 项目主页](https://github.com/alipay/alipay-easysdk/tree/master/csharp) | 适用于 .Net Framework 4.6.1、.Net Core 2.0 及其以上版本 |
| PHP | [Composer 项目依赖](https://packagist.org/packages/alipaysdk/easysdk)
[GitHub 项目主页](https://github.com/alipay/alipay-easysdk/tree/master/php) | 适用于 PHP 7.0 及其以上版本 |
## Alipay Easy SDK API 使用规范
在 Alipay Easy SDK 中,API 的引用路径遵循如下命名规范:
```java
Factory.能力类别.场景类别.接口方法名称( ... )
```
**注意:**不同语言连接符可能不一致,以各语言示例为准。
## Alipay Easy SDK API 总览
| **能力类别** | **场景类别** | **接口方法名称** |
| --- | --- | --- |
| Base(基础能力) | OAuth(用户授权) | getToken(获取授权访问令牌和用户 user_id) |
| Base(基础能力) | OAuth(用户授权) | refreshToken(刷新授权访问令牌) |
| Base(基础能力) | Qrcode(小程序二维码) | create(创建小程序二维码) |
| Base(基础能力) | Image(图片) | upload(上传门店照片) |
| Base(基础能力) | Video(视频) | upload(上传门店视频) |
| Member(会员能力) | Identification(支付宝身份认证) | init(身份认证初始化) |
| Member(会员能力) | Identification(支付宝身份认证) | certify(生成认证链接) |
| Member(会员能力) | Identification(支付宝身份认证) | query(身份认证记录查询) |
| Payment(支付能力) | Common(通用) | create(创建交易) |
| Payment(支付能力) | Common(通用) | query(查询交易) |
| Payment(支付能力) | Common(通用) | refund(交易退款) |
| Payment(支付能力) | Common(通用) | close(关闭交易) |
| Payment(支付能力) | Common(通用) | cancel(撤销交易) |
| Payment(支付能力) | Common(通用) | queryRefund(交易退款查询) |
| Payment(支付能力) | Common(通用) | downloadBill(查询对账单下载地址) |
| Payment(支付能力) | Common(通用) | verifyNotify(异步通知验签) |
| Payment(支付能力) | Huabei(花呗分期) | create(创建花呗分期交易) |
| Payment(支付能力) | FaceToFace(当面付) | pay(扫用户出示的付款码,完成付款) |
| Payment(支付能力) | FaceToFace(当面付) | precreate(生成交易付款码,待用户扫码付款) |
| Payment(支付能力) | App(手机APP) | pay(生成订单串,再使用客户端 SDK 凭此串唤起支付宝收银台) |
| Payment(支付能力) | Page(电脑网站) | pay(生成交易表单,渲染后自动跳转支付宝网站引导用户完成支付) |
| Payment(支付能力) | Wap(手机网站) | pay(生成交易表单,渲染后自动跳转支付宝网站引导用户完成支付) |
| Security(安全能力) | TextRisk(文本内容安全) | detect(检测内容风险) |
| Marketing(营销能力) | Pass(支付宝卡包) | createTemplate(卡券模板创建) |
| Marketing(营销能力) | Pass(支付宝卡包) | updateTemplate(卡券模板更新) |
| Marketing(营销能力) | Pass(支付宝卡包) | addInstance(卡券实例发放) |
| Marketing(营销能力) | Pass(支付宝卡包) | updateInstance(卡券实例更新) |
| Marketing(营销能力) | TemplateMessage(小程序模板消息) | send(发送模板消息) |
| Marketing(营销能力) | OpenLife(生活号) | createImageTextContent(创建图文消息内容) |
| Marketing(营销能力) | OpenLife(生活号) | modifyImageTextContent(更新图文消息内容) |
| Marketing(营销能力) | OpenLife(生活号) | sendText(群发本文消息) |
| Marketing(营销能力) | OpenLife(生活号) | sendImageText(群发图文消息) |
| Marketing(营销能力) | OpenLife(生活号) | sendSingleMessage(单发模板消息) |
| Marketing(营销能力) | OpenLife(生活号) | recallMessage(生活号消息撤回) |
| Marketing(营销能力) | OpenLife(生活号) | setIndustry(模板消息行业设置) |
| Marketing(营销能力) | OpenLife(生活号) | getIndustry(生活号查询行业设置) |
| Util(辅助工具) | AES(加解密) | decrypt(解密,常用于会员手机号解密) |
| Util(辅助工具) | AES(加解密) | encrypt(加密) |
| Util(辅助工具) | Generic(通用接口) | execute(自行拼接参数,执行OpenAPI调用) |
| Util(辅助工具) | Generic(通用接口) | sdkExecute(自行拼接参数,生成加签串,功能等同于通用版 SDK 中的 sdkExecute 方法) |
**注意:**各个API的详细参数说明可查看[《Alipay Easy SDK API Doc》](https://github.com/alipay/alipay-easysdk/blob/master/APIDoc.md)。
## sdk示例代码
| SDK类型 | 访问链接 |
| --- | --- |
| Java 通用版 | [https://ideservice.alipay.com/cms/site/02kkv2](https://ideservice.alipay.com/cms/site/02kkv2) |
| Java Easy版 | [https://ideservice.alipay.com/cms/site/02np95](https://ideservice.alipay.com/cms/site/02np95) |
| PHP 通用版 | [https://ideservice.alipay.com/cms/site/02nk10](https://ideservice.alipay.com/cms/site/02nk10) |
| PHP Easy版 | [https://ideservice.alipay.com/cms/site/02nlge](https://ideservice.alipay.com/cms/site/02nlge) |
| .NET 通用版 | [https://ideservice.alipay.com/cms/site/02nk11](https://ideservice.alipay.com/cms/site/02nk11) |
| .NET Easy版 | [https://ideservice.alipay.com/cms/site/02nk12](https://ideservice.alipay.com/cms/site/02nk12) |
| Python | [https://ideservice.alipay.com/cms/site/02np8q](https://ideservice.alipay.com/cms/site/02np8q) |
| Node.js | [https://ideservice.alipay.com/cms/site/02np8r](https://ideservice.alipay.com/cms/site/02np8r) |