{"id":33983703,"url":"https://github.com/abbotton/alipay-sdk-php","last_synced_at":"2025-12-13T04:09:35.657Z","repository":{"id":47418028,"uuid":"141678964","full_name":"Abbotton/alipay-sdk-php","owner":"Abbotton","description":"🐜支付宝（蚂蚁金服）开放平台第三方 PHP SDK，基于官方最新版本。","archived":false,"fork":false,"pushed_at":"2022-10-29T09:29:09.000Z","size":3000,"stargazers_count":209,"open_issues_count":4,"forks_count":50,"subscribers_count":9,"default_branch":"v2.0","last_synced_at":"2025-11-27T23:43:16.935Z","etag":null,"topics":["alipay","aop","mini-app","mini-program"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"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/Abbotton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-20T07:29:04.000Z","updated_at":"2025-10-24T07:23:03.000Z","dependencies_parsed_at":"2022-09-06T17:10:50.592Z","dependency_job_id":null,"html_url":"https://github.com/Abbotton/alipay-sdk-php","commit_stats":null,"previous_names":["wi1dcard/alipay-sdk-php"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/Abbotton/alipay-sdk-php","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abbotton%2Falipay-sdk-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abbotton%2Falipay-sdk-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abbotton%2Falipay-sdk-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abbotton%2Falipay-sdk-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Abbotton","download_url":"https://codeload.github.com/Abbotton/alipay-sdk-php/tar.gz/refs/heads/v2.0","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abbotton%2Falipay-sdk-php/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27699695,"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","status":"online","status_checked_at":"2025-12-13T02:00:09.769Z","response_time":147,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","aop","mini-app","mini-program"],"created_at":"2025-12-13T04:09:31.177Z","updated_at":"2025-12-13T04:09:35.650Z","avatar_url":"https://github.com/Abbotton.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://i.loli.net/2018/07/24/5b56e980b155e.png\" width=\"40px\" height=\"40px\"\u003e Alipay SDK for PHP\n==========\n\n🐜 支付宝开放平台（又称：蚂蚁金服开放平台）**第三方** PHP SDK，基于[官方][OfficialSDK]最新版本。\n\n* **目录**\n  * [为什么不用官方](#为什么不用官方)\n  * [主要目的](#主要目的)\n  * [小试牛刀](#小试牛刀)\n  * [如何使用](#如何使用)\n  * [注意事项](#注意事项)\n  * [实用工具](#实用工具)\n  * [其它资源](#其它资源)\n  * [已知 Issue](#已知-issue)\n  * [感谢](#感谢)\n\n## 为什么不用官方\n\n| 官方 SDK                                                 | 本 SDK                                                    | 链接                                                                                                               |\n| :------------------------------------------------------- | :-------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |\n| 无 Composer 集成，自动加载依赖第三方 PHP 框架 `lotusphp` | 集成                                                      | [![Packagist](https://img.shields.io/packagist/v/abbotton/alipay-sdk.svg)][Packagist]                              |\n| 代码不严谨，各种 Warning                                 | 持续构建，Notice 也不放过                                 |  |\n| 零单元测试                                               | 99% 测试覆盖率                                            |  |\n| 代码风格、命名风格鱼龙混杂                               | PSR1 + PSR2                                               |  |\n| 几乎零 PHPDoc                                            | 持续补充中                                                | [对比图](https://i.loli.net/2018/08/01/5b611dc917bea.png)                                                          |\n| 异常和错误处理不统一                                     | 所有错误都将以异常的形式抛出，确保返回数据可靠            | [Exceptions](aop/Exception)                                                                                        |\n| 需手动根据接口名拼接请求类名                             | 请求类工厂，根据 API 名直接创建请求类                     | [AlipayRequestFactory](aop/AlipayRequestFactory.php)                                                               |\n| 耦合度高，难以升级或替换                                 | 几乎完全解耦，任意替换签名 / 密钥 / 响应 甚至 HTTP 客户端 | [AopClient](aop/AopClient.php)                                                                                     |\n\n[Packagist]: https://packagist.org/packages/abbotton/alipay-sdk\n\n## 主要目的\n\n- [x] 集成 Composer。\n- [x] 降低 PHP 依赖至 5.4。\n- [x] 整理代码风格使其符合 `PSR-1`、`PSR-2`。\n- [x] 增加单元测试。\n- [x] 兼容 PHP 7.x。\n- [x] 移除官方 API 文档内 `已弃用` 特性。\n- [x] 移除难以拓展的调试、日志等特性，以便于集成第三方框架和扩展包。\n- [x] 移除编码转换特性，统一使用 `UTF-8`。\n- [ ] 其它优化，持续进行中 ...\n\n## 小试牛刀\n\n- [获取小程序用户信息](examples/alipay.system.oauth.token.md)\n\n## 如何使用\n\n1. Composer 安装。\n\n    ```bash\n    composer require abbotton/alipay-sdk\n    ```\n\n2. 创建 `AlipayKeyPair` 实例。\n\n    ```php\n   // 通过密钥文件创建(推荐)\n    $keyPair = \\Alipay\\Key\\AlipayKeyPair::create(\n        __DIR__ . '/private.pem',\n        __DIR__ . '/public.pem'\n    );\n   \n   // 通过密钥字符串创建\n   $privateKey = '-----BEGIN RSA PRIVATE KEY-----\n   // ......\n   kXTZhB4nQqZXWFu8R+RdqC6gTh9k2dDz0NlibYSW9xApWRN572M9/n737110Yxa2\n   JZX27eBHLqR8aCZcXkADRpe9+yAL9SqErEOMh26nWFtwP5ZugHRf\n    -----END RSA PRIVATE KEY-----';\n   $publicKey = '-----BEGIN PUBLIC KEY-----\n   // ......\n    C9ykBV6BfujeeVQ2wUdpxFtI4gW8A4rgqecMvbL/KngU+aChG+W6SGXD8QY0fC4d\n    4QIDAQAB\n    -----END PUBLIC KEY-----';\n   $keyPair = \\Alipay\\Key\\AlipayKeyPair::create($privateKey, $publicKey);\n    ```\n\n    `AlipayKeyPair` 用于存储应用私钥、支付宝公钥；两份密钥将分别用于与支付宝服务器通信时，生成请求签名、验证响应签名等。\n\n3. 创建 `AopClient` 实例。\n\n    ```php\n    $aop = new \\Alipay\\AopClient('APP_ID', $keyPair);\n    ```\n\n    `AopClient` 通常情况会贯穿整条业务，除非你须要在同一套代码内处理多个商户号/小程序，否则只需在初始化阶段创建一次即可。\n\n4. 根据业务需要，创建 `AlipayRequest` 实例。\n\n    ```php\n   $bizContent = [\n        'start_time' =\u003e '2021-08-01 00:00:00',\n        'end_time' =\u003e '2021-08-31 23:59:59',\n        'type' =\u003e 'TRANSFER',\n        'page_no' =\u003e 1\n   ];\n   \n   // 通过工厂类创建\n    $request = (new \\Alipay\\AlipayRequestFactory)-\u003ecreate('alipay.data.bill.transfer.query', [\n        'biz_content' =\u003e $bizContent,\n        // ...\n    ]);\n   \n   // 直接创建\n   $request = (new \\Alipay\\Request\\AlipayRequest())\n        -\u003esetApiMethodName('alipay.data.bill.transfer.query')\n        -\u003esetBizContent($bizContent);\n    ```\n\n5. 发送请求，获得响应数据。\n\n    ```php\n    $result = $aop-\u003eexecute($request)-\u003egetData();\n    ```\n\n    所有错误（包括但不限于网络通信异常、数据格式异常、支付宝服务器返回的错误）都会被转换为异常，请注意捕捉。\n\n6. 更多实例，请移步 [`examples`](examples/) 目录。\n\n    最后，官方 SDK 内 `AopClient::pageExecute()` 被分离为 `pageExecuteUrl` 和 `pageExecuteForm`。\n    `AopClient::sdkExecute()` 和 `AopClient::execute()` 方法名保持不变，参数和返回值有所改动。\n\n## 注意事项\n\n- 请不要依赖任何在官方 SDK 内被标注为 `private` 的属性，它们可能已在迭代中被修改或废弃。\n- 请不要依赖任何在官方 API 文档内被标注为 `已废弃` 的特性，它们可能已在迭代中被废弃或移除。\n- 本 SDK 已移除所有编码转换特性；请确保执行上传文件请求时，文件编码为 `UTF-8` 而非 `GBK`。\n\n## 实用工具\n\n可执行文件位于 [`bin`](bin/) 目录下，点此查看 [详细说明](bin/README.md)。\n\n## 其它资源\n\n- [支付宝开放平台 - API 文档](https://docs.open.alipay.com/api/)\n- [支付宝开放平台 - 开发者社区](https://openclub.alipay.com/index.php)\n\n## 已知 Issue\n\nOpenSSL 在 Win32 平台需要配置 `openssl.cnf` 路径，参见 [OpenSSL 安装 - PHP 手册](http://php.net/manual/zh/openssl.installation.php)。\n\n在本 SDK 内，也可通过自定义 `$configargs` 参数来自定义此文件路径，而不需要配置环境变量；参见 [examples/keys/generate.php](examples/keys/generate.php)。\n\n目前已知以下方法依赖于此配置文件：\n\n- 生成密钥对：`AlipayKeyPair::generate()`\n- 将私钥资源转换为字符串：`AlipayPrivateKey::toString()`\n\n## 感谢\n\n- [支付宝开放平台 SDK][OfficialSDK]\n- [第一作者Wi1dcard](https://github.com/wi1dcard)\n\n[OfficialSDK]: https://docs.open.alipay.com/54/103419/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabbotton%2Falipay-sdk-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabbotton%2Falipay-sdk-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabbotton%2Falipay-sdk-php/lists"}