You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

16 KiB

FOSSA Status Maven Central NuGet Packagist

欢迎使用 Alipay Easy SDK。

打造最好用的支付宝开放平台服务端SDKAlipay Easy SDK让您享受极简编程体验,快速访问支付宝开放平台开放的各项核心能力

设计理念

不同于原有的Alipay SDK通用而全面的设计理念Alipay Easy SDK对开放能力的API进行了更加贴近高频场景的精心设计与裁剪简化了服务端调用方式让调用API像使用语言内置的函数一样简便。

同时您也不必担心面向高频场景提炼的API可能无法完全契合自己的个性化场景Alipay Easy SDK支持灵活的动态扩展方式同样可以满足低频参数、低频API的使用需求。

Alipay Easy SDK提供了与能力地图相对应的代码组织结构让开发者可以快速找到不同能力对应的API。

Alipay Easy SDK主要目标是提升开发者在服务端集成支付宝开放平台开放的各类核心能力的效率。

化繁为简

Alipay Easy SDK Alipay SDK
极简代码风格,更贴近自然语言阅读习惯 传统代码风格,需要多行代码完成一个接口的调用
Factory单例全局任何地方都可直接引用 AlipayClient实例需自行创建并在上下文中传递
API中只保留高频场景下的必备参数同时提供低频可选参数的装配能力 没有区分高低频参数单API最多可达数十个入参对普通开发者的干扰较大
  • Alipay Easy SDK 😃
Factory.Payment.Common().create("Iphone6 16G", "202003019443", "0.10", "2088002656718920");
  • Alipay SDK 😕
AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();

AlipayTradeCreateModel model = new AlipayTradeCreateModel();
model.setSubject("Iphone6 16G");
model.setOutTradeNo("202003019443");
model.setTotalAmount("0.10");
model.setBuyerId("2088002656718920");
...

request.setBizModel(model);
...

alipayClient.execute(request);

如何切换

  • 无论是Alipay Easy SDK还是Alipay SDK本质都是发送HTTP请求访问Open API网关所以只需将原来通过Alipay SDK调用Open API的代码替换为Alipay Easy SDK中对应API的调用即可。Alipay Easy SDK和Alipay SDK并无冲突可以共存。

  • 如果您所需对接的开放平台能力Alipay Easy SDK尚未提炼出API支持已支持的API列表),您可以通过通用接口完成调用。

  • 我们会持续挖掘高频场景不断丰富Alipay Easy SDK支持的API让您在绝大多数常见场景下都能享受Alipay Easy SDK带来的便捷。

技术特点

纯语言开发

所有Alipay Easy SDK的具体编程语言的实现均只采用纯编程语言进行开发不引入任何重量级框架减少潜在的框架冲突让SDK可以自由集成进任何代码环境中。

结构清晰

我们按照能力类别和场景类别对API进行了归类结构更加清晰一目了然。

更多信息请参见API组织规范

参数精简

Alipay Easy SDK对每个API都精心打磨剔除了Open API中不常用的可选参数,减少普通用户的无效选择,提升开发效率。

灵活扩展

开发者可以通过Fluent风格的API链式调用在为高频场景打造的API基础上不断扩展自己的个性化场景需求。

// 通过调用agent方法扩展支持ISV代调用场景
Factory.Payment.FaceToFace().agent("ca34ea491e7146cc87d25fca24c4cD11").preCreate(...)

// 通过调用optional方法扩展支持个性化可选参数
Factory.Payment.FaceToFace().optional("extend_params", extendParams).preCreate(...)

// 多种扩展可灵活搭配,不同扩展方法功能详细说明请前往各语言主页中的“快速开始-扩展调用”栏目中查看
Factory.Payment.FaceToFace()
	.agent(...)
	.optionalArgs(...)
	.auth(...)
	.asyncNotify(...)
	.preCreate(...)

测试/示例完备

每个API都有对应的单元测试进行覆盖良好的单元测试天生就是最好的示例。

同时您也可以前往API Doc查看每个API的详细使用说明。

注:单元测试中使用到的私钥均进行了脱敏处理,会导致单元测试无法直接执行。您可以自行更改单元测试项目中的TestAccout类privateKey.json文件中的相关账号与私钥配置后再执行单元测试。

多语言

Alipay Easy SDK基于阿里集团研发的Tea DSL工具链进行架构通过DSL中间语言定义API模型再基于DSL语言自动生成不同编程语言Java、C#、PHP、TS等实现的SDK极大地提升了SDK能力的扩展效率和适用范围同时也保证了相同的Easy API在不同语言生态中体验的一致性。

API模型的Tea DSL描述可以进入tea目录查看。

Tea DSL相关介绍和编写规范正在筹划开放中后续您也可以参与Tea DSL的编写贡献更多优秀的Easy API模型,而无需关心多语言问题。

快速集成

各语言SDK均会在各自的中央仓库Maven、NuGet、Composer、NPM etc.中同步发布让您使用各语言主流依赖管理工具即可一键安装集成SDK。

语言支持情况

Alipay Easy SDK首发暂只支持JavaC#PHP编程语言,更多编程语言支持正在积极新增中,敬请期待。

各语言具体的使用说明详细介绍请点击如下链接进入各语言主目录查看。

Java

C#

PHP

API组织规范

在Alipay Easy SDK中API的引用路径与能力地图的组织层次一致遵循如下规范

Factory.能力类别.场景类别.接口方法名称( ... )

比如,如果您想要使用能力地图营销能力下的模板消息场景中的小程序发送模板消息,只需按如下形式编写调用代码即可(不同编程语言的连接符号可能不同)。

Factory.Marketing.TemplateMessage().send( ... )

其中接口方法名称通常是对其依赖的OpenAPI功能的一个最简概况接口方法的出入参与OpenAPI中同名参数含义一致可参照OpenAPI相关参数的使用说明。

Alipay Easy SDK将致力于保持良好的API命名以符合开发者的编程直觉。

已支持的API列表

能力类别 场景类别 接口方法名称 调用的OpenAPI名称
Base基础能力 OAuth用户授权 getToken获取授权访问令牌和用户user_id alipay.system.oauth.token
Base基础能力 OAuth用户授权 refreshToken刷新授权访问令牌 alipay.system.oauth.token
Base基础能力 Qrcode小程序二维码 create创建小程序二维码 alipay.open.app.qrcode.create
Base基础能力 Image图片 upload上传门店照片 alipay.offline.material.image.upload
Base基础能力 Video视频 upload上传门店视频 alipay.offline.material.image.upload
Member会员能力 Identification支付宝身份认证 init身份认证初始化 alipay.user.certify.open.initialize
Member会员能力 Identification支付宝身份认证 certify生成认证链接 alipay.user.certify.open.certify
Member会员能力 Identification支付宝身份认证 query身份认证记录查询 alipay.user.certify.open.query
Payment支付能力 Common通用 create创建交易 alipay.trade.create
Payment支付能力 Common通用 query查询交易 alipay.trade.query
Payment支付能力 Common通用 refund交易退款 alipay.trade.refund
Payment支付能力 Common通用 close关闭交易 alipay.trade.close
Payment支付能力 Common通用 cancel撤销交易 alipay.trade.cancel
Payment支付能力 Common通用 queryRefund交易退款查询 alipay.trade.fastpay.refund.query
Payment支付能力 Common通用 downloadBill查询对账单下载地址 alipay.data.dataservice.bill.downloadurl.query
Payment支付能力 Common通用 verifyNotify异步通知验签 -
Payment支付能力 Huabei花呗分期 create创建花呗分期交易 alipay.trade.create
Payment支付能力 FaceToFace当面付 pay扫用户出示的付款码完成付款 alipay.trade.pay
Payment支付能力 FaceToFace当面付 precreate生成交易付款码待用户扫码付款 alipay.trade.precreate
Payment支付能力 App手机APP pay生成订单串再使用客户端 SDK 凭此串唤起支付宝收银台) alipay.trade.app.pay
Payment支付能力 Page电脑网站 pay生成交易表单渲染后自动跳转支付宝网站引导用户完成支付 alipay.trade.page.pay
Payment支付能力 Wap手机网站 pay生成交易表单渲染后自动跳转支付宝网站引导用户完成支付 alipay.trade.wap.pay
Security安全能力 TextRisk文本内容安全 detect检测内容风险 alipay.security.risk.content.detect
Marketing营销能力 Pass支付宝卡包 createTemplate卡券模板创建 alipay.pass.template.add
Marketing营销能力 Pass支付宝卡包 updateTemplate卡券模板更新 alipay.pass.template.update
Marketing营销能力 Pass支付宝卡包 addInstance卡券实例发放 alipay.pass.instance.add
Marketing营销能力 Pass支付宝卡包 updateInstance卡券实例更新 alipay.pass.instance.update
Marketing营销能力 TemplateMessage小程序模板消息 send (发送模板消息) alipay.open.app.mini.templatemessage.send
Marketing营销能力 OpenLife生活号 createImageTextContent创建图文消息内容 alipay.open.public.message.content.create
Marketing营销能力 OpenLife生活号 modifyImageTextContent更新图文消息内容 alipay.open.public.message.content.modify
Marketing营销能力 OpenLife生活号 sendText群发本文消息 alipay.open.public.message.total.send
Marketing营销能力 OpenLife生活号 sendImageText群发图文消息 alipay.open.public.message.total.send
Marketing营销能力 OpenLife生活号 sendSingleMessage单发模板消息 alipay.open.public.message.single.send
Marketing营销能力 OpenLife生活号 recallMessage生活号消息撤回 alipay.open.public.life.msg.recall
Marketing营销能力 OpenLife生活号 setIndustry模板消息行业设置 alipay.open.public.template.message.industry.modify
Marketing营销能力 OpenLife生活号 getIndustry生活号查询行业设置 alipay.open.public.setting.category.query
Util辅助工具 AES加解密 decrypt解密常用于会员手机号解密 -
Util辅助工具 AES加解密 encrypt加密 -
Util辅助工具 Generic通用接口 execute自行拼接参数执行OpenAPI调用 -

更多高频场景的API持续更新中敬请期待。

您还可以前往API Doc查看每个API的详细使用说明。

变更日志

每个版本的详细更改记录在变更日志中。

版本号最末一位修订号的增加(比如从1.0.0升级为1.0.1意味着SDK的功能没有发生任何变化仅仅是修复了部分Bug。该类升级可能不会记录在变更日志中。

版本号中间一位次版本号的增加(比如从1.0.0升级为1.1.0意味着SDK的功能发生了可向下兼容的新增或修改。

版本号首位主版本号的增加(比如从1.0.0升级为2.0.0意味着SDK的功能可能发生了不向下兼容的较大调整升级主版本号后请注意做好相关的回归测试工作。

相关

许可证

FOSSA Status

交流与技术支持

不管您在使用Alipay Easy SDK的过程中遇到任何问题欢迎在当前 GitHub 提交 Issues

您也可以使用钉钉扫描下方二维码,与更多开发者和支付宝工程师共同交流。

支付宝官方Alipay Easy SDK开源交流群