All Projects → wi1dcard → Alipay Sdk Php

wi1dcard / Alipay Sdk Php

🐜支付宝(蚂蚁金服)开放平台第三方 PHP SDK,基于官方 3.3.2 版本,助力支付宝小程序后端开发。

Projects that are alternatives of or similar to Alipay Sdk Php

Wxa
🖖 渐进式小程序开发框架。轻量级的渐进式小程序开发框架,专注于小程序原生开发,提供更好的工程化、代码复用能力,提高开发效率并改善开发体验。
Stars: ✭ 149 (-10.78%)
Mutual labels:  mini-program, aop
Wxapp Webpack Plugin
📦 微信小程序 webpack 插件
Stars: ✭ 185 (+10.78%)
Mutual labels:  alipay, mini-program
Wxapp Boilerplate
使用 webpack, babel, scss 开发的微信/支付宝小程序项目脚手架
Stars: ✭ 367 (+119.76%)
Mutual labels:  alipay, mini-program
Best Pay Demo
best-pay-sdk demo
Stars: ✭ 120 (-28.14%)
Mutual labels:  alipay
Methodinterceptproxy
MethodInterceptProxy for Android.It is used by AOP, testing, data access frameworks to generate dynamic proxy objects and intercept field access.
Stars: ✭ 125 (-25.15%)
Mutual labels:  aop
Plmcodetemplate
给部门制定的代码框架模板
Stars: ✭ 1,871 (+1020.36%)
Mutual labels:  aop
Alipayhome
高仿支付宝首页的头部伸缩动画(使用design实现效果,CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar)
Stars: ✭ 164 (-1.8%)
Mutual labels:  alipay
Ibase4j
Spring,SpringBoot 2.0,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis缓存,Shiro权限管理,Spring-Session单点登录,Quartz分布式集群调度,Restful服务,QQ/微信登录,App token登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel导入导出、FTP/SFTP/fastDFS上传下载、二维码、XML读写、高精度计算、系统配置工具类等等。
Stars: ✭ 1,548 (+826.95%)
Mutual labels:  aop
Pay Java Parent
第三方支付对接全能支付Java开发工具包.优雅的轻量级支付模块集成支付对接支付整合(微信,支付宝,银联,友店,富友,跨境支付paypal,payoneer(P卡派安盈)易极付)app,扫码,网页刷脸付刷卡付条码付转账服务商模式,微信分账,微信合单支付、支持多种支付类型多支付账户,支付与业务完全剥离,简单几行代码即可实现支付,简单快速完成支付模块的开发,可轻松嵌入到任何系统里 目前仅是一个开发工具包(即SDK),只提供简单Web实现,建议使用maven或gradle引用本项目即可使用本SDK提供的各种支付相关的功能
Stars: ✭ 2,025 (+1112.57%)
Mutual labels:  alipay
Alipay kit
flutter版支付宝登录/支付
Stars: ✭ 140 (-16.17%)
Mutual labels:  alipay
Nconcern
NConcern .NET AOP Framework
Stars: ✭ 139 (-16.77%)
Mutual labels:  aop
Alita
一套把React Native代码转换成微信小程序代码的转换引擎工具。我们不造轮子,不发明新框架,只是提供工具把RN扩展到微信小程序端。
Stars: ✭ 1,733 (+937.72%)
Mutual labels:  mini-program
Weihanli.common
common tools,methods,extension methods etc... .net 常用工具类,公共方法,常用扩展方法等,基础类库
Stars: ✭ 152 (-8.98%)
Mutual labels:  aop
Flutter alipay
A flutter plugin to use alipay.
Stars: ✭ 137 (-17.96%)
Mutual labels:  alipay
Apiproject
[https://www.sofineday.com], golang项目开发脚手架,集成最佳实践(gin+gorm+go-redis+mongo+cors+jwt+json日志库zap(支持日志收集到kafka或mongo)+消息队列kafka+微信支付宝支付gopay+api加密+api反向代理+go modules依赖管理+headless爬虫chromedp+makefile+二进制压缩+livereload热加载)
Stars: ✭ 124 (-25.75%)
Mutual labels:  alipay
Virtualxposed
A simple app to use Xposed without root, unlock the bootloader or modify system image, etc.
Stars: ✭ 12,648 (+7473.65%)
Mutual labels:  aop
Puresharp
Puresharp is a Framework that provides the essential APIs (AOP, IOC, etc...) to productively build high quality (.NET 4.5.2+ & .NET Core 2.1+) applications through reliability, scalability and performance without no compromise
Stars: ✭ 120 (-28.14%)
Mutual labels:  aop
Icanpay
ICanPay是一个简单易用的支付平台支付处理类库,目前支持的支付平台有:支付宝(Alipay)、微信支付(WeChatPay)、财付通(Tenpay)、易宝(Yeepay)。
Stars: ✭ 136 (-18.56%)
Mutual labels:  alipay
Rxtool
Android开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | Zip4j压缩(支持分卷压缩与加密) | 一键集成UCrop选择圆形头像 | 一键集成二维码和条形码的扫描与生成 | 常用Dialog | WebView的封装可播放视频 | 仿斗鱼滑动验证码 | Toast封装 | 震动 | GPS | Location定位 | 图片缩放 | Exif 图片添加地理位置信息(经纬度) | 蛛网等级 | 颜色选择器 | ArcGis | VTPK | 编译运行一下说不定会找到惊喜
Stars: ✭ 11,567 (+6826.35%)
Mutual labels:  alipay
Easyrouter
A simple android framework used to route activity or action with url.
Stars: ✭ 164 (-1.8%)
Mutual labels:  aop

Alipay SDK for PHP

由于近期工作繁忙,并且已经不再涉及支付宝小程序相关工作,本 SDK 跟随官方更新将暂时延缓。

寻找有能力继续保持更新的有缘人,希望能将该项目转移,谢谢。

🐜 支付宝开放平台(又称:蚂蚁金服开放平台)第三方 PHP SDK,基于官方 3.3.2 版本;已在公司产品应用,运行在数百台客户服务器内。

🎉 百度小程序第三方 PHP SDK

为什么不用官方

官方 SDK 本 SDK 链接
无 Composer 集成,自动加载依赖第三方 PHP 框架 lotusphp 集成 Packagist
代码不严谨,各种 Warning 持续构建,Notice 也不放过 Build Status
零单元测试 99% 测试覆盖率 Coverage Status
代码风格、命名风格鱼龙混杂 PSR1 + PSR2 StyleCI
弃用特性残留 已根据官方文档移除
奇葩测试文件残留 已移除 讨论帖
几乎零 PHPDoc 持续补充中 对比图
请求类居然没有抽象基类或接口 抽象基类,公共方法统一化 AbstractAlipayRequest
异常和错误处理不统一 所有错误都将以异常的形式抛出,确保返回数据可靠 Exceptions
需手动根据接口名拼接请求类名 请求类工厂,根据 API 名直接创建请求类 AlipayRequestFactory
耦合度高,难以升级或替换 几乎完全解耦,任意替换签名 / 密钥 / 响应 甚至 HTTP 客户端 AopClient

主要目的

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

目前,开源圈内已有不少质量不错的支付宝「支付」相关扩展包;而支付宝「小程序」推出不久,目前仍处于公测阶段。此项目的初衷并不是 Yet another,而是填补小程序 API 的空缺,文档和示例也将会有所侧重。

小试牛刀

如何使用

  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 目录。

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

注意事项

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

实用工具

可执行文件位于 bin 目录下,点此查看 详细说明

其它资源

已知 Issue

OpenSSL 在 Win32 平台需要配置 openssl.cnf 路径,参见 OpenSSL 安装 - PHP 手册

在本 SDK 内,也可通过自定义 $configargs 参数来自定义此文件路径,而不需要配置环境变量;参见 examples/keys/generate.php

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

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

感谢

感想

最后,一点感想。

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

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

硬广,欢迎关注我们的产品:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].