• Stars
    star
    1,099
  • Rank 42,192 (Top 0.9 %)
  • Language
    Java
  • License
    MIT License
  • Created over 4 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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.

FOSSA Status Maven Central NuGet Packagist

欢迎使用 Alipay Easy SDK。

打造最好用的支付宝开放平台服务端SDK,Alipay 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基于阿里集团研发的Darabonba进行架构,通过DSL中间语言定义API模型,再基于DSL语言自动生成不同编程语言(Java、C#、PHP、TS等)实现的SDK,极大地提升了SDK能力的扩展效率和适用范围,同时也保证了相同的Easy API在不同语言生态中体验的一致性。

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

快速集成

各语言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本身的issue功能已关闭,支付宝开放社区中发帖的问题,通常会在2小时内响应。

More Repositories

1

SoloPi

SoloPi 自动化测试工具
Java
5,736
star
2

agentUniverse

agentUniverse is a LLM multi-agent framework that allows developers to easily build multi-agent applications.
Python
799
star
3

alipay-sdk-java-all

支付宝开放平台 Alipay SDK for Java
Java
521
star
4

alipay-sdk-nodejs-all

支付宝开放平台 Alipay SDK for Node.js
TypeScript
408
star
5

mPaaS

mPaaS Demo 合集,mPaaS 是源自于支付宝的移动开发平台。The collection of demos for mPaaS components. mPaaS is the Mobile Development Platform which oriented from Alipay.
C
323
star
6

ant-application-security-testing-benchmark

xAST评价体系,让安全工具不再“黑盒”. The xAST evaluation benchmark makes security tools no longer a "black box".
Java
301
star
7

PainlessInferenceAcceleration

Python
283
star
8

alipay-sdk-python-all

支付宝开放平台 Alipay SDK for Python
Python
268
star
9

Owfuzz

Owfuzz: a WiFi protocol fuzzing tool
C
216
star
10

alipay-sdk-net-all

支付宝开放平台 Alipay SDK for .NET
C#
200
star
11

cvpr2020-plant-pathology

Python
170
star
12

antcloud-node-stack

蚂蚁金融科技官方 Node 技术栈脚本
JavaScript
159
star
13

financial_evaluation_dataset

Python
154
star
14

rdf-file

Rdf-File是一个处理结构化文本文件的工具组件
Java
149
star
15

alipay-sdk-php-all

支付宝开放平台 Alipay SDK for PHP
PHP
146
star
16

SOFAStack

SOFAStack™ (Scalable Open Financial Architecture Stack) is a collection of cloud native middleware components, which are designed to build distributed systems with high performance and reliability, and have been fully validated by mission-critical financial business scenarios.
139
star
17

Ant-Multi-Modal-Framework

Research Code for Multimodal-Cognition Team in Ant Group
Python
117
star
18

vsag

vsag is a vector indexing library used for similarity search.
C++
115
star
19

Pyraformer

Python
100
star
20

container-observability-service

Simplify Kubernetes applications operation with one-stop observability services, including resource delivery SLO,root cause diagnoses and container lifecycle tracing and more.
Go
88
star
21

ios-malicious-bithunter

iOS Malicious Bit Hunter is a malicious plug-in detection engine for iOS applications. It can analyze the head of the macho file of the injected dylib dynamic library based on runtime. If you are interested in other programs of the author, please visit https://github.com/SecurityLife
C
83
star
22

goldfish

A development framework for Alipay Mini Program.
TypeScript
80
star
23

SQLFlow

SQLFlow is a bridge that connects a SQL engine, e.g. MySQL, Hive, SparkSQL or SQL Server, with TensorFlow and other machine learning toolkits. SQLFlow extends the SQL language to enable model training, prediction and inference.
73
star
24

KnowledgeGraphEmbeddingsViaPairedRelationVectors_PairRE

Python
61
star
25

Antchain-MPC

Antchain-MPC is a library of MPC (Multi-Parties Computation)
Terra
57
star
26

VCSL

Video Copy Segment Localization (VCSL) dataset and benchmark [CVPR2022]
Python
49
star
27

StructuredLM_RTDT

A library for building hierarchical text representation and corresponding downstream applications.
Python
48
star
28

RJU_Ant_QA

The RJUA-QA (RenJi hospital department of Urology and Antgroup collaborative Question and Answer dataset) is an innovative medical urology specialty QA inference dataset.
47
star
29

Z-RareCharacterSolution

TypeScript
45
star
30

quic-lb

nginx-quic-lb is an implementation of ietf-quic-lb, based on nginx-release-1.18.0, you can see the detailed code in this pull request
C
41
star
31

jpmml-sparkml-lightgbm

JPMML-SparkML plugin for converting LightGBM-Spark models to PMML
Java
41
star
32

PASE

C
41
star
33

global-open-sdk-java

Ant global gateway SDK
Java
35
star
34

container-auto-tune

Container Auto Tune is an intelligent parameter tuning product that helps developers, operators automatically adjust the application, analyzes JVM reasonable configuration parameters through intelligent algorithms.Please visit the official site for the quick start guide and documentation.
Java
32
star
35

promo-mini-component

支付宝营销玩法小程序组件库
JavaScript
31
star
36

private_llm

Python
28
star
37

tls13-sm-spec

IETF Internet-Draft (I-D) of Chinese cipher suites in TLSv1.3 and related documentation.
Makefile
27
star
38

microservice_system_twin_graph_based_anomaly_detection

Python
26
star
39

mobile-agent

Python
26
star
40

alipay-intellij-plugin

Intellij IDEA Plugin
20
star
41

character-js

TypeScript
19
star
42

global-open-sdk-php

Ant global gateway SDK
PHP
17
star
43

ams-java-sdk

AMS Java binding
Java
13
star
44

antchain-openapi-prod-sdk

PHP
10
star
45

Pattern-Based-Compression

High-Ratio Compression for Machine-Generated Data
C
10
star
46

global-open-sdk-python

Ant global gateway SDK
Python
10
star
47

PC2-NoiseofWeb

Noise of Web (NoW) is a challenging noisy correspondence learning (NCL) benchmark containing 100K image-text pairs for robust image-text matching/retrieval models.
Python
9
star
48

YiJian-Community

YiJian-Comunity: a full-process automated large model safety evaluation tool designed for academic research
Python
9
star
49

AOP-Based-Runtime-Security-Analysis-Toolkit

TypeScript
8
star
50

ant-application-security-testing-benchmark-nodejs

JavaScript
8
star
51

agentUniverse-Guides

8
star
52

RGSL

Python
8
star
53

POA

Python
7
star
54

payment-code-widget

A lightweight library provides UI widgets to display payment code in mobile applications. The dimension of the payment code is optimal and scanner-friendly.
Java
6
star
55

TDEER

Code For TDEER: An Efficient Translating Decoding Schema for Joint Extraction of Entities and Relations (EMNLP 2021)
Python
5
star
56

Finite_State_Autoregressive_Entropy_Coding

Python
5
star
57

ComBERT

4
star
58

Parameter_Inference_Efficient_PIE

Python
4
star
59

NMCDR

Python
4
star
60

A2-efficient-automated-attacker-for-boosting-adversarial-training

Python
4
star
61

global-open-sdk-dotnet

C#
3
star
62

tldk

This is a fork of FDio/tldk.
C
3
star
63

DUPLEX

Python
3
star
64

antchain-openapi-util-sdk

C#
3
star
65

Automatic_AI_Model_Greenness_Track_Toolkit

JavaScript
3
star
66

style-tokenizer

Python
3
star
67

Timestep-aware-SentenceEmbedding-and-AcmeCoverage

Python
2
star
68

ATTEMPT_Pre-training_with_Aspect-Content_Text_Mutual_Prediction

Python
2
star
69

hypro_tpp

Python
1
star
70

BehaviorAugmentedRelevanceModel

Implementation and data of the paper "Beyond Semantics: Learning a Behavior Augmented Relevance Model with Self-supervised Learning" in CIKM'23.
Python
1
star
71

A-Knowledge-augmented-Method-DiKGRS

Python
1
star
72

Analogic-Reasoning-Augmented-Large-Language-Model

Python
1
star
73

MMDL-based-Data-Augmentation-with-Domain-Knowledge-for-Time-Series-Classification

This repository contains the official implementation for the paper: MMDL-based Data Augmentation with Domain Knowledge for Time Series Classification.
Python
1
star