PHPackages                             cjl2029/alipay-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. cjl2029/alipay-sdk

ActiveLibrary[Payment Processing](/categories/payments)

cjl2029/alipay-sdk
==================

支付宝（蚂蚁金服）开放平台第三方 PHP SDK，基于官方 3.3.2 版本。

00PHP

Since Feb 24Pushed 6y ago1 watchersCompare

[ Source](https://github.com/cjl2029/alipay-php-sdk)[ Packagist](https://packagist.org/packages/cjl2029/alipay-sdk)[ RSS](/packages/cjl2029-alipay-sdk/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

[![](https://camo.githubusercontent.com/8a25149490ce2c4f42fa1e458be14dfece8417e4658ca5e493abbf33d843cd36/68747470733a2f2f692e6c6f6c692e6e65742f323031382f30372f32342f356235366539383062313535652e706e67)](https://camo.githubusercontent.com/8a25149490ce2c4f42fa1e458be14dfece8417e4658ca5e493abbf33d843cd36/68747470733a2f2f692e6c6f6c692e6e65742f323031382f30372f32342f356235366539383062313535652e706e67) Alipay SDK for PHP
================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#-alipay-sdk-for-php)

> 由于近期工作繁忙，并且已经不再涉及支付宝小程序相关工作，本 SDK 跟随官方更新将暂时延缓。
>
> 寻找有能力继续保持更新的有缘人，希望能将该项目转移，谢谢。

🐜 支付宝开放平台（又称：蚂蚁金服开放平台）**第三方** PHP SDK，基于[官方](https://docs.open.alipay.com/54/103419/) 3.3.2 版本；已在公司产品应用，运行在数百台客户服务器内。

🎉 [百度小程序第三方 PHP SDK](https://github.com/wi1dcard/baidu-mini-program-sdk)。

- **目录**
    - [为什么不用官方](#%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E7%94%A8%E5%AE%98%E6%96%B9)
    - [主要目的](#%E4%B8%BB%E8%A6%81%E7%9B%AE%E7%9A%84)
    - [小试牛刀](#%E5%B0%8F%E8%AF%95%E7%89%9B%E5%88%80)
    - [如何使用](#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8)
    - [注意事项](#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9)
    - [实用工具](#%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7)
    - [其它资源](#%E5%85%B6%E5%AE%83%E8%B5%84%E6%BA%90)
    - [已知 Issue](#%E5%B7%B2%E7%9F%A5-issue)
    - [感谢](#%E6%84%9F%E8%B0%A2)
    - [感想](#%E6%84%9F%E6%83%B3)

为什么不用官方
-------

[](#为什么不用官方)

官方 SDK本 SDK链接无 Composer 集成，自动加载依赖第三方 PHP 框架 `lotusphp`集成[![Packagist](https://camo.githubusercontent.com/ab9a24bb4eb07729b6bbdbe9f085b83c5ca0594819c4c7365764a63bafacd0b0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f77693164636172642f616c697061792d73646b2e737667)](https://packagist.org/packages/wi1dcard/alipay-sdk)代码不严谨，各种 Warning持续构建，Notice 也不放过[![Build Status](https://camo.githubusercontent.com/900fa7c3c197dc1212139171ef649d363c1e7898572c82a829db699e91988bca/68747470733a2f2f7472617669732d63692e6f72672f77693164636172642f616c697061792d73646b2d7068702e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/wi1dcard/alipay-sdk-php)零单元测试99% 测试覆盖率[![Coverage Status](https://camo.githubusercontent.com/e1c7d96d72fa94a88ebc895930d89ee63cb0e684fdd6c05308625c4d16bbcae7/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f77693164636172642f616c697061792d73646b2d7068702f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/wi1dcard/alipay-sdk-php?branch=master)代码风格、命名风格鱼龙混杂PSR1 + PSR2[![StyleCI](https://camo.githubusercontent.com/f7fd7d6626e7f4cd756e22c01753458de86823d7b5b4c7b20a5d55da485dd13b/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3134313637383936342f736869656c643f6272616e63683d6d6173746572)](https://github.styleci.io/repos/141678964)弃用特性残留已根据官方文档移除奇葩测试文件残留已移除[讨论帖](https://openclub.alipay.com/read.php?tid=8168&fid=72)几乎零 PHPDoc持续补充中[对比图](https://i.loli.net/2018/08/01/5b611dc917bea.png)请求类居然没有抽象基类或接口抽象基类，公共方法统一化[AbstractAlipayRequest](aop/Request/AbstractAlipayRequest.php)异常和错误处理不统一所有错误都将以异常的形式抛出，确保返回数据可靠[Exceptions](aop/Exception)需手动根据接口名拼接请求类名请求类工厂，根据 API 名直接创建请求类[AlipayRequestFactory](aop/AlipayRequestFactory.php)耦合度高，难以升级或替换几乎完全解耦，任意替换签名 / 密钥 / 响应 甚至 HTTP 客户端[AopClient](aop/AopClient.php)主要目的
----

[](#主要目的)

- 集成 Composer。
- 降低 PHP 依赖至 5.4。
- 移除官方 SDK 内 [`lotusphp`](https://github.com/qinjx/lotusphp) 依赖。
- 整理代码风格使其符合 `PSR-1`、`PSR-2`。
- 增加单元测试。
- 兼容 PHP 7.2，替换 MCrypt 为 OpenSSL。
- 移除官方 API 文档内 `已弃用` 特性。
- 移除难以拓展的调试、日志等特性，以便于集成第三方框架和扩展包。
- 移除编码转换特性，统一使用 `UTF-8`。
- 其它优化，持续进行中 ...

目前，开源圈内已有不少质量不错的支付宝「[支付](https://gitee.com/explore/starred/payment-dev?lang=PHP)」相关扩展包；而支付宝「小程序」推出不久，目前仍处于公测阶段。此项目的初衷并不是 `Yet another`，而是填补小程序 API 的空缺，文档和示例也将会有所侧重。

小试牛刀
----

[](#小试牛刀)

- [获取小程序用户信息](examples/alipay.system.oauth.token.md)

如何使用
----

[](#如何使用)

1. Composer 安装。

    ```
    composer require wi1dcard/alipay-sdk
    ```
2. 创建 `AlipayKeyPair` 实例。

    ```
    $keyPair = \Alipay\Key\AlipayKeyPair::create(
        '应用私钥',
        '支付宝公钥',
    );
    ```

    `AlipayKeyPair` 用于存储应用私钥、支付宝公钥；两份密钥将分别用于与支付宝服务器通信时，生成请求签名、验证响应签名等。
3. 创建 `AopClient` 实例。

    ```
    $aop = new \Alipay\AopClient('APP_ID', $keyPair);
    ```

    `AopClient` 通常情况会贯穿整条业务，除非你须要在同一套代码内处理多个商户号/小程序，否则只需在初始化阶段创建一次即可。
4. 根据业务需要，创建 `AlipayRequest` 实例。

    ```
    $request = (new \Alipay\AlipayRequestFactory)->create('点号连接的API名称', [
        '请求参数名' => '对应参数值',
        // ...
    ]);
    ```

    另外，你也可以不使用请求类工厂，就像官方文档那样，手动创建请求类。

    例如：

    ```
    $request = new \Alipay\Request\AlipaySystemOauthTokenRequest();
    $request->setCode('authcode');
    ```
5. 发送请求，获得响应数据。

    ```
    $result = $aop->execute($request)->getData();
    ```

    所有错误（包括但不限于网络通信异常、数据格式异常、支付宝服务器返回的错误）都会被转换为异常，请注意捕捉。
6. 更多实例，请移步 [`examples`](examples/) 目录。

    最后，官方 SDK 内 `AopClient::pageExecute()` 被分离为 `pageExecuteUrl` 和 `pageExecuteForm`。 `AopClient::sdkExecute()` 和 `AopClient::execute()` 方法名保持不变，参数和返回值有所改动。

注意事项
----

[](#注意事项)

- 请不要依赖任何在官方 SDK 内被标注为 `private` 的属性，它们可能已在迭代中被修改或废弃。
- 请不要依赖任何在官方 API 文档内被标注为 `已废弃` 的特性，它们可能已在迭代中被废弃或移除。
- 本 SDK 已移除所有编码转换特性；请确保执行上传文件请求时，文件编码为 `UTF-8` 而非 `GBK`。

实用工具
----

[](#实用工具)

可执行文件位于 [`bin`](bin/) 目录下，点此查看 [详细说明](bin/README.md)。

其它资源
----

[](#其它资源)

- [支付宝开放平台 - API 文档](https://docs.open.alipay.com/api/)
- [支付宝开放平台 - 开发者社区](https://openclub.alipay.com/index.php)
- [支付宝小程序 - 开发文档](https://docs.alipay.com/mini/introduce)

已知 Issue
--------

[](#已知-issue)

OpenSSL 在 Win32 平台需要配置 `openssl.cnf` 路径，参见 [OpenSSL 安装 - PHP 手册](http://php.net/manual/zh/openssl.installation.php)。

在本 SDK 内，也可通过自定义 `$configargs` 参数来自定义此文件路径，而不需要配置环境变量；参见 [examples/keys/generate.php](examples/keys/generate.php)。

目前已知以下方法依赖于此配置文件：

- 生成密钥对：`AlipayKeyPair::generate()`
- 将私钥资源转换为字符串：`AlipayPrivateKey::toString()`

感谢
--

[](#感谢)

- [支付宝开放平台 SDK](https://docs.open.alipay.com/54/103419/)

感想
--

[](#感想)

最后，一点感想。

作为一个名不见经传的小白，不敢妄言阿里的工程师技术欠佳；但可以确定的是，官方提供的 PHP SDK 绝对不是用心之作。

做开放平台，对待第三方开发者是这样的态度，怎能做到与微信比肩？

硬广，欢迎关注我们的产品：

[![](https://camo.githubusercontent.com/9be2295cbcf35cdcafda63714e3cdd6d79af40c8fa3ddfa737538ff151e326da/68747470733a2f2f692e6c6f6c692e6e65742f323031382f30372f32342f356235366464613736623262612e706e67)](http://www.zjhejiang.com/)

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4728649?v=4)[caojunling](/maintainers/cjl2029)[@cjl2029](https://github.com/cjl2029)

### Embed Badge

![Health badge](/badges/cjl2029-alipay-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/cjl2029-alipay-sdk/health.svg)](https://phpackages.com/packages/cjl2029-alipay-sdk)
```

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)[omnipay/dummy

Dummy driver for the Omnipay payment processing library

271.2M33](/packages/omnipay-dummy)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
