{"id":15029096,"url":"https://github.com/alipay/alipay-easysdk","last_synced_at":"2025-05-14T11:11:21.934Z","repository":{"id":38086584,"uuid":"242659126","full_name":"alipay/alipay-easysdk","owner":"alipay","description":"Alipay Easy SDK for multi-language(java、c#、php、ts etc.) allows you to enjoy a minimalist programming experience and quickly access the various high-frequency capabilities of the Alipay Open Platform.","archived":false,"fork":false,"pushed_at":"2024-06-14T02:59:15.000Z","size":1953,"stargazers_count":1149,"open_issues_count":84,"forks_count":444,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-05-12T11:06:53.803Z","etag":null,"topics":["alipay","csharp","java","sdk","tea"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alipay.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-24T06:03:59.000Z","updated_at":"2025-05-08T01:59:11.000Z","dependencies_parsed_at":"2024-06-18T11:28:57.128Z","dependency_job_id":null,"html_url":"https://github.com/alipay/alipay-easysdk","commit_stats":{"total_commits":142,"total_committers":9,"mean_commits":"15.777777777777779","dds":0.4436619718309859,"last_synced_commit":"02751ac6584577631945dd03519ecc910bd41031"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alipay%2Falipay-easysdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alipay%2Falipay-easysdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alipay%2Falipay-easysdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alipay%2Falipay-easysdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alipay","download_url":"https://codeload.github.com/alipay/alipay-easysdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254022360,"owners_count":22001121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alipay","csharp","java","sdk","tea"],"created_at":"2024-09-24T20:09:43.431Z","updated_at":"2025-05-14T11:11:16.910Z","avatar_url":"https://github.com/alipay.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Falipay%2Falipay-easysdk.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Falipay%2Falipay-easysdk?ref=badge_shield)\n[![Maven Central](https://img.shields.io/maven-central/v/com.alipay.sdk/alipay-easysdk.svg)](https://mvnrepository.com/artifact/com.alipay.sdk/alipay-easysdk)\n[![NuGet](https://badge.fury.io/nu/AlipayEasySDK.svg)](https://badge.fury.io/nu/AlipayEasySDK)\n[![Packagist](https://poser.pugx.org/alipaysdk/easysdk/v/stable)](https://packagist.org/packages/alipaysdk/easysdk)\n\n欢迎使用 Alipay **Easy** SDK。\n\n打造**最好用**的支付宝开放平台**服务端SDK**，Alipay Easy SDK让您享受**极简编程**体验，快速访问支付宝开放平台开放的各项**核心能力**。\n\n## 设计理念\n不同于原有的Alipay SDK通用而全面的设计理念，Alipay Easy SDK对开放能力的API进行了更加贴近高频场景的精心设计与裁剪，简化了服务端调用方式，让调用API像使用语言内置的函数一样简便。\n\n同时，您也不必担心面向高频场景提炼的API可能无法完全契合自己的个性化场景，Alipay Easy SDK支持灵活的[动态扩展](#extension)方式，同样可以满足低频参数、低频API的使用需求。\n\nAlipay Easy SDK提供了与[能力地图](https://opendocs.alipay.com/mini/00am3f)相对应的代码组织结构，让开发者可以快速找到不同能力对应的API。\n\nAlipay Easy SDK主要目标是提升开发者在**服务端**集成支付宝开放平台开放的各类核心能力的效率。\n\n### 化繁为简\n\n| Alipay Easy SDK  | Alipay SDK                                                     |\n|------------------|----------------------------------------------------------------|\n| 极简代码风格，更贴近自然语言阅读习惯  | 传统代码风格，需要多行代码完成一个接口的调用 |\n| Factory单例全局任何地方都可直接引用 | AlipayClient实例需自行创建并在上下文中传递 |\n| API中只保留高频场景下的必备参数，同时提供低频可选参数的装配能力    | 没有区分高低频参数，单API最多可达数十个入参，对普通开发者的干扰较大 |\n\n\n* Alipay Easy SDK :smiley:\n\n```java\nFactory.Payment.Common().create(\"Iphone6 16G\", \"202003019443\", \"0.10\", \"2088002656718920\");\n```\n\n* Alipay SDK :confused:\n\n```java\nAlipayTradeCreateRequest request = new AlipayTradeCreateRequest();\n\nAlipayTradeCreateModel model = new AlipayTradeCreateModel();\nmodel.setSubject(\"Iphone6 16G\");\nmodel.setOutTradeNo(\"202003019443\");\nmodel.setTotalAmount(\"0.10\");\nmodel.setBuyerId(\"2088002656718920\");\n...\n\nrequest.setBizModel(model);\n...\n\nalipayClient.execute(request);\n```\n\n### 如何切换\n* 无论是Alipay Easy SDK还是Alipay SDK，本质都是发送HTTP请求访问Open API网关，所以只需将原来通过Alipay SDK调用Open API的代码，替换为Alipay Easy SDK中对应API的调用即可。Alipay Easy SDK和Alipay SDK并无冲突，可以共存。\n\n* 如果您所需对接的开放平台能力，Alipay Easy SDK尚未提炼出API支持（[已支持的API列表](#apiList)），您可以通过[通用接口](./APIDoc.md#generic)完成调用。\n\n* 我们会持续挖掘高频场景，不断丰富Alipay Easy SDK支持的API，让您在绝大多数常见场景下，都能享受Alipay Easy SDK带来的便捷。\n\n## 技术特点\n### 纯语言开发\n所有Alipay Easy SDK的具体编程语言的实现，均只采用纯编程语言进行开发，不引入任何重量级框架，减少潜在的框架冲突，让SDK可以自由集成进任何代码环境中。\n\n### 结构清晰\n我们按照能力类别和场景类别对API进行了归类，结构更加清晰，一目了然。\n\u003e 更多信息请参见[API组织规范](#spec)。\n\n### 参数精简\nAlipay Easy SDK对每个API都精心打磨，剔除了`Open API`中不常用的可选参数，减少普通用户的无效选择，提升开发效率。\n\n\u003ca name=\"extension\"/\u003e\n\n### 灵活扩展\n开发者可以通过Fluent风格的API链式调用，在为高频场景打造的API基础上，不断扩展自己的个性化场景需求。\n\n```java\n// 通过调用agent方法，扩展支持ISV代调用场景\nFactory.Payment.FaceToFace().agent(\"ca34ea491e7146cc87d25fca24c4cD11\").preCreate(...)\n\n// 通过调用optional方法，扩展支持个性化可选参数\nFactory.Payment.FaceToFace().optional(\"extend_params\", extendParams).preCreate(...)\n\n// 多种扩展可灵活搭配，不同扩展方法功能详细说明请前往各语言主页中的“快速开始-扩展调用”栏目中查看\nFactory.Payment.FaceToFace()\n\t.agent(...)\n\t.optionalArgs(...)\n\t.auth(...)\n\t.asyncNotify(...)\n\t.preCreate(...)\n```\n\n### 测试/示例完备\n每个API都有对应的单元测试进行覆盖，良好的单元测试天生就是最好的示例。\n\n同时您也可以前往[API Doc](./APIDoc.md)查看每个API的详细使用说明。\n\n\u003e 注：单元测试中使用到的私钥均进行了脱敏处理，会导致单元测试无法直接执行。您可以自行更改单元测试项目中的`TestAccout类`和`privateKey.json`文件中的相关账号与私钥配置后再执行单元测试。\n\n### 多语言\nAlipay Easy SDK基于阿里集团研发的[`Darabonba`](https://github.com/aliyun/darabonba)进行架构，通过DSL中间语言定义API模型，再基于DSL语言自动生成不同编程语言（Java、C#、PHP、TS等）实现的SDK，极大地提升了SDK能力的扩展效率和适用范围，同时也保证了相同的`Easy API`在不同语言生态中体验的一致性。\n\nAPI模型的DSL描述可以进入[tea](./tea)目录查看。\n\n### 快速集成\n各语言SDK均会在各自的中央仓库（Maven、NuGet、Composer、NPM etc.）中同步发布，让您使用各语言主流依赖管理工具即可一键安装集成SDK。\n\n## 语言支持情况\nAlipay Easy SDK首发暂只支持`Java`、`C#`、`PHP`编程语言，更多编程语言支持正在积极新增中，敬请期待。\n\n各语言具体的**使用说明**和**详细介绍**请点击如下链接进入各语言主目录查看。\n\n[Java](./java)\n\n[C#](./csharp)\n\n[PHP](./php)\n\n\u003ca name=\"spec\"/\u003e\n\n## API组织规范\n\n在Alipay Easy SDK中，API的引用路径与能力地图的组织层次一致，遵循如下规范\n\n\u003e Factory.能力类别.场景类别.接口方法名称( ... )\n\n比如，如果您想要使用[能力地图](https://opendocs.alipay.com/mini/00am3f)中`营销能力`下的`模板消息`场景中的`小程序发送模板消息`，只需按如下形式编写调用代码即可（不同编程语言的连接符号可能不同）。\n\n`Factory.Marketing.TemplateMessage().send( ... )`\n\n其中，接口方法名称通常是对其依赖的OpenAPI功能的一个最简概况，接口方法的出入参与OpenAPI中同名参数含义一致，可参照OpenAPI相关参数的使用说明。\n\nAlipay Easy SDK将致力于保持良好的API命名，以符合开发者的编程直觉。\n\n\u003ca name=\"apiList\"/\u003e\n\n## 已支持的API列表\n\n| 能力类别      | 场景类别            | 接口方法名称                 | 调用的OpenAPI名称                                              |\n|-----------|-----------------|------------------------|-----------------------------------------------------------|\n| Base\u003cbr/\u003e基础能力      | OAuth\u003cbr/\u003e用户授权           | getToken\u003cbr/\u003e获取授权访问令牌和用户user_id               | alipay\\.system\\.oauth\\.token                              |\n| Base\u003cbr/\u003e基础能力     | OAuth\u003cbr/\u003e用户授权           | refreshToken\u003cbr/\u003e刷新授权访问令牌           | alipay\\.system\\.oauth\\.token                              |\n| Base\u003cbr/\u003e基础能力      | Qrcode\u003cbr/\u003e小程序二维码          | create\u003cbr/\u003e创建小程序二维码                 | alipay\\.open\\.app\\.qrcode\\.create                         |\n| Base\u003cbr/\u003e基础能力      | Image\u003cbr/\u003e图片           | upload\u003cbr/\u003e上传门店照片                 | alipay\\.offline\\.material\\.image\\.upload                  |\n| Base\u003cbr/\u003e基础能力      | Video\u003cbr/\u003e视频           | upload\u003cbr/\u003e上传门店视频                 | alipay\\.offline\\.material\\.image\\.upload                  |\n| Member\u003cbr/\u003e会员能力    | Identification\u003cbr/\u003e支付宝身份认证  | init\u003cbr/\u003e身份认证初始化                   | alipay\\.user\\.certify\\.open\\.initialize                   |\n| Member\u003cbr/\u003e会员能力    | Identification\u003cbr/\u003e支付宝身份认证  | certify\u003cbr/\u003e生成认证链接                | alipay\\.user\\.certify\\.open\\.certify                      |\n| Member\u003cbr/\u003e会员能力    | Identification\u003cbr/\u003e支付宝身份认证  | query\u003cbr/\u003e身份认证记录查询                  | alipay\\.user\\.certify\\.open\\.query                        |\n| Payment\u003cbr/\u003e支付能力   | Common\u003cbr/\u003e通用          | create\u003cbr/\u003e创建交易                 | alipay\\.trade\\.create                                     |\n| Payment\u003cbr/\u003e支付能力   | Common\u003cbr/\u003e通用          | query\u003cbr/\u003e查询交易                  | alipay\\.trade\\.query                                      |\n| Payment\u003cbr/\u003e支付能力   | Common\u003cbr/\u003e通用          | refund\u003cbr/\u003e交易退款                 | alipay\\.trade\\.refund                                     |\n| Payment\u003cbr/\u003e支付能力   | Common\u003cbr/\u003e通用          | close\u003cbr/\u003e关闭交易                  | alipay\\.trade\\.close                                      |\n| Payment\u003cbr/\u003e支付能力   | Common\u003cbr/\u003e通用          | cancel\u003cbr/\u003e撤销交易                 | alipay\\.trade\\.cancel                                     |\n| Payment\u003cbr/\u003e支付能力   | Common\u003cbr/\u003e通用          | queryRefund\u003cbr/\u003e交易退款查询            | alipay\\.trade\\.fastpay\\.refund\\.query                     |\n| Payment\u003cbr/\u003e支付能力   | Common\u003cbr/\u003e通用          | downloadBill\u003cbr/\u003e查询对账单下载地址           | alipay\\.data\\.dataservice\\.bill\\.downloadurl\\.query       |\n| Payment\u003cbr/\u003e支付能力   | Common\u003cbr/\u003e通用          | verifyNotify\u003cbr/\u003e异步通知验签           | -                                                         |\n| Payment\u003cbr/\u003e支付能力   | Huabei\u003cbr/\u003e花呗分期          | create\u003cbr/\u003e创建花呗分期交易                 | alipay\\.trade\\.create                                     |\n| Payment\u003cbr/\u003e支付能力   | FaceToFace\u003cbr/\u003e当面付      | pay\u003cbr/\u003e扫用户出示的付款码，完成付款                    | alipay\\.trade\\.pay                                        |\n| Payment\u003cbr/\u003e支付能力   | FaceToFace\u003cbr/\u003e当面付      | precreate\u003cbr/\u003e生成交易付款码，待用户扫码付款              | alipay\\.trade\\.precreate                                  |\n| Payment\u003cbr/\u003e支付能力   | App\u003cbr/\u003e手机APP             | pay\u003cbr/\u003e生成订单串，再使用客户端 SDK 凭此串唤起支付宝收银台                    | alipay\\.trade\\.app\\.pay                                   |\n| Payment\u003cbr/\u003e支付能力   | Page\u003cbr/\u003e电脑网站            | pay\u003cbr/\u003e生成交易表单，渲染后自动跳转支付宝网站引导用户完成支付                    | alipay\\.trade\\.page\\.pay                                  |\n| Payment\u003cbr/\u003e支付能力   | Wap\u003cbr/\u003e手机网站             | pay\u003cbr/\u003e生成交易表单，渲染后自动跳转支付宝网站引导用户完成支付                    | alipay\\.trade\\.wap\\.pay                                   |\n| Security\u003cbr/\u003e安全能力  | TextRisk\u003cbr/\u003e文本内容安全        | detect\u003cbr/\u003e检测内容风险                 | alipay\\.security\\.risk\\.content\\.detect                   |\n| Marketing\u003cbr/\u003e营销能力 | Pass\u003cbr/\u003e支付宝卡包            | createTemplate\u003cbr/\u003e卡券模板创建         | alipay\\.pass\\.template\\.add                               |\n| Marketing\u003cbr/\u003e营销能力 | Pass\u003cbr/\u003e支付宝卡包            | updateTemplate\u003cbr/\u003e卡券模板更新         | alipay\\.pass\\.template\\.update                            |\n| Marketing\u003cbr/\u003e营销能力 | Pass\u003cbr/\u003e支付宝卡包            | addInstance\u003cbr/\u003e卡券实例发放            | alipay\\.pass\\.instance\\.add                               |\n| Marketing\u003cbr/\u003e营销能力 | Pass\u003cbr/\u003e支付宝卡包            | updateInstance\u003cbr/\u003e卡券实例更新         | alipay\\.pass\\.instance\\.update                            |\n| Marketing\u003cbr/\u003e营销能力 | TemplateMessage\u003cbr/\u003e小程序模板消息 | send \u003cbr/\u003e发送模板消息| alipay\\.open\\.app\\.mini\\.templatemessage\\.send            |\n| Marketing\u003cbr/\u003e营销能力 | OpenLife\u003cbr/\u003e生活号        | createImageTextContent\u003cbr/\u003e创建图文消息内容 | alipay\\.open\\.public\\.message\\.content\\.create            |\n| Marketing\u003cbr/\u003e营销能力 | OpenLife\u003cbr/\u003e生活号        | modifyImageTextContent\u003cbr/\u003e更新图文消息内容 | alipay\\.open\\.public\\.message\\.content\\.modify            |\n| Marketing\u003cbr/\u003e营销能力 | OpenLife\u003cbr/\u003e生活号        | sendText\u003cbr/\u003e群发本文消息               | alipay\\.open\\.public\\.message\\.total\\.send                |\n| Marketing\u003cbr/\u003e营销能力 | OpenLife\u003cbr/\u003e生活号        | sendImageText\u003cbr/\u003e群发图文消息          | alipay\\.open\\.public\\.message\\.total\\.send                |\n| Marketing\u003cbr/\u003e营销能力 | OpenLife\u003cbr/\u003e生活号        | sendSingleMessage\u003cbr/\u003e单发模板消息      | alipay\\.open\\.public\\.message\\.single\\.send               |\n| Marketing\u003cbr/\u003e营销能力 | OpenLife\u003cbr/\u003e生活号        | recallMessage\u003cbr/\u003e生活号消息撤回          | alipay\\.open\\.public\\.life\\.msg\\.recall                   |\n| Marketing\u003cbr/\u003e营销能力 | OpenLife\u003cbr/\u003e生活号        | setIndustry\u003cbr/\u003e模板消息行业设置            | alipay\\.open\\.public\\.template\\.message\\.industry\\.modify |\n| Marketing\u003cbr/\u003e营销能力 | OpenLife\u003cbr/\u003e生活号        | getIndustry\u003cbr/\u003e生活号查询行业设置            | alipay\\.open\\.public\\.setting\\.category\\.query            |\n| Util\u003cbr/\u003e辅助工具      | AES\u003cbr/\u003e加解密             | decrypt\u003cbr/\u003e解密，常用于会员手机号解密                | -                                                         |\n| Util\u003cbr/\u003e辅助工具      | AES\u003cbr/\u003e加解密             | encrypt\u003cbr/\u003e加密                | -                                                         |\n| Util\u003cbr/\u003e辅助工具      | Generic\u003cbr/\u003e通用接口         | execute\u003cbr/\u003e自行拼接参数，执行OpenAPI调用                | -                                                         |\n\n\u003e 注：更多高频场景的API持续更新中，敬请期待。\n\n您还可以前往[API Doc](./APIDoc.md)查看每个API的详细使用说明。\n\n# 变更日志\n每个版本的详细更改记录在[变更日志](./CHANGELOG)中。\n\n\u003e 版本号最末一位修订号的增加（比如从`1.0.0`升级为`1.0.1`），意味着SDK的功能没有发生任何变化，仅仅是修复了部分Bug。该类升级可能不会记录在变更日志中。\n\n\u003e 版本号中间一位次版本号的增加（比如从`1.0.0`升级为`1.1.0`），意味着SDK的功能发生了可向下兼容的新增或修改。\n\n\u003e 版本号首位主版本号的增加（比如从`1.0.0`升级为`2.0.0`），意味着SDK的功能可能发生了不向下兼容的较大调整，升级主版本号后请注意做好相关的回归测试工作。\n\n# 相关\n* [支付宝开放平台](https://open.alipay.com/platform/home.htm)\n* [支付宝开放平台文档中心](https://docs.open.alipay.com/catalog)\n* [最新源码](https://github.com/alipay/alipay-easysdk)\n\n# 许可证\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Falipay%2Falipay-easysdk.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Falipay%2Falipay-easysdk?ref=badge_large)\n\n# 交流与技术支持\n不管您在使用Alipay Easy SDK的过程中遇到任何问题，欢迎前往 [支付宝开放社区](https://forum.alipay.com/mini-app/channel/1100001)  发帖与支付宝工作人员和其他开发者一起交流。\n\n注：为了提高开发者问题的响应时效，github本身的issue功能已关闭，支付宝开放社区中发帖的问题，通常会在2小时内响应。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falipay%2Falipay-easysdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falipay%2Falipay-easysdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falipay%2Falipay-easysdk/lists"}