All Projects → zoujingli → Pay Php Sdk

zoujingli / Pay Php Sdk

Licence: mit
PHP支付SDK(微信支付 + 支付宝支付)

Projects that are alternatives of or similar to Pay Php Sdk

Pay Java Parent
第三方支付对接全能支付Java开发工具包.优雅的轻量级支付模块集成支付对接支付整合(微信,支付宝,银联,友店,富友,跨境支付paypal,payoneer(P卡派安盈)易极付)app,扫码,网页刷脸付刷卡付条码付转账服务商模式,微信分账,微信合单支付、支持多种支付类型多支付账户,支付与业务完全剥离,简单几行代码即可实现支付,简单快速完成支付模块的开发,可轻松嵌入到任何系统里 目前仅是一个开发工具包(即SDK),只提供简单Web实现,建议使用maven或gradle引用本项目即可使用本SDK提供的各种支付相关的功能
Stars: ✭ 2,025 (+561.76%)
Mutual labels:  alipay, pay, wxpay
Teepay
Typecho 个人支付宝、微信收款插件
Stars: ✭ 90 (-70.59%)
Mutual labels:  alipay, pay, wxpay
Ijpay
IJPay 让支付触手可及,封装了微信支付、QQ支付、支付宝支付、京东支付、银联支付、PayPal 支付等常用的支付方式以及各种常用的接口。不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。右上角点下小星星✨
Stars: ✭ 3,561 (+1063.73%)
Mutual labels:  alipay, pay, wxpay
Best Pay Demo
best-pay-sdk demo
Stars: ✭ 120 (-60.78%)
Mutual labels:  alipay, pay, wxpay
Best Pay Sdk
可能是最好的支付SDK
Stars: ✭ 2,651 (+766.34%)
Mutual labels:  alipay, pay, wxpay
Wish Pay
愿支付是整合支付模块(微信支付,支付宝)的java项目,拿来即用!
Stars: ✭ 86 (-71.9%)
Mutual labels:  alipay, pay, wxpay
java-pay
微信支付宝App、小程序、扫码支付、退款、提现案例
Stars: ✭ 40 (-86.93%)
Mutual labels:  alipay, wxpay
Pay Python
轻量级支付方式整合集成,实现支付与业务完全剥离,快速简单完成支付模块的开发,代码实现优雅灵活,横向扩展简单
Stars: ✭ 109 (-64.38%)
Mutual labels:  alipay, pay
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 (-59.48%)
Mutual labels:  alipay, wxpay
Alipay kit
flutter版支付宝登录/支付
Stars: ✭ 140 (-54.25%)
Mutual labels:  alipay, pay
Rxtool
Android开发人员不得不收集的工具类集合 | 支付宝支付 | 微信支付(统一下单) | 微信分享 | Zip4j压缩(支持分卷压缩与加密) | 一键集成UCrop选择圆形头像 | 一键集成二维码和条形码的扫描与生成 | 常用Dialog | WebView的封装可播放视频 | 仿斗鱼滑动验证码 | Toast封装 | 震动 | GPS | Location定位 | 图片缩放 | Exif 图片添加地理位置信息(经纬度) | 蛛网等级 | 颜色选择器 | ArcGis | VTPK | 编译运行一下说不定会找到惊喜
Stars: ✭ 11,567 (+3680.07%)
Mutual labels:  alipay, wxpay
Justpay
spring-boot2.0.0+Dubbox+spring-webflux的轻量级分布式聚合支付
Stars: ✭ 99 (-67.65%)
Mutual labels:  alipay, pay
WHMCS-JSJ-API-Pay-Gateway
WHMCS 财务系统对接金莎云免签支付API(你们怎么用,与我无瓜好吧:)
Stars: ✭ 58 (-81.05%)
Mutual labels:  pay, alipay
ZTVendorManager
基于友盟集成QQ,微信 ,微博 分享和登录功能,支付宝和微信支付功能。集成简单,使用方便。
Stars: ✭ 26 (-91.5%)
Mutual labels:  alipay, wxpay
donate
捐赠我们
Stars: ✭ 12 (-96.08%)
Mutual labels:  alipay, wxpay
Rxpay
支付宝 微信 支付 Rxjava
Stars: ✭ 66 (-78.43%)
Mutual labels:  alipay, wxpay
Gopay
QQ、微信(WeChat)、支付宝(AliPay)的Go版本SDK。【微信支付V3已支持,推荐使用微信V3接口】
Stars: ✭ 1,034 (+237.91%)
Mutual labels:  alipay, pay
Alipay
支付宝 AliPay SDK for Go, 集成简单,功能完善,持续更新,支持公钥证书和普通公钥进行签名和验签。
Stars: ✭ 1,090 (+256.21%)
Mutual labels:  alipay, pay
Pay
支付 SDK 的集合与重构,支持支付宝、微信支付、银联支付。
Stars: ✭ 198 (-35.29%)
Mutual labels:  alipay, pay
alipay kit
flutter版支付宝登录/支付
Stars: ✭ 240 (-21.57%)
Mutual labels:  pay, alipay

pay-php-sdk

PHP支付SDK(微信支付 + 支付宝支付)

Latest Stable Version Total Downloads Latest Unstable Version License

欢迎Star,欢迎Fork

项目设计及部分源码参考于 yansongda/pay,在此特别感谢!

特点

  • 代码简洁,无需加载多余组件,可应用于任何平台或框架
  • 隐藏开发者不需要关注的细节,完全内部实现
  • 根据支付宝、微信最新API开发集成
  • 高度抽象的类,免去各种拼jsonxml的痛苦
  • 符合PSR标准,你可以各种方便的与你的框架集成
  • 文件结构清晰易理解,可以随心所欲添加本项目中没有的支付网关
  • 方法使用更优雅,不必再去研究那些奇怪的的方法名或者类名是做啥用的

声明

  • 代码与框架部分参考于互联网开源项目
  • SDK全部源码基于MIT协议开源,完全免费
  • 开发交流QQ群:513350915

若对您有帮助,可以赞助支持下作者哦!

环境

  • PHP 5.3+
  • composer

配置

$config = [
    // 微信支付参数
    'wechat' => [
        'debug'      => false, // 沙箱模式
        'app_id'     => '', // 应用ID
        'mch_id'     => '', // 微信支付商户号
        'mch_key'    => '', // 微信支付密钥
        'ssl_cer'    => '', // 微信证书 cert 文件
        'ssl_key'    => '', // 微信证书 key 文件
        'notify_url' => '', // 支付通知URL
        'cache_path' => '',// 缓存目录配置(沙箱模式需要用到)
    ],
    // 支付宝支付参数
    'alipay' => [
        'debug'       => false, // 沙箱模式
        'app_id'      => '', // 应用ID
        'public_key'  => '', // 支付宝公钥(1行填写)
        'private_key' => '', // 支付宝私钥(1行填写)
        'notify_url'  => '', // 支付通知URL
    ]
];

架构

由于各支付网关参差不齐,所以我们抽象了两个方法 driver()gateway()

两个方法的作用如下:

driver() : 确定支付平台,如 alipay,wechat;
gateway(): 确定支付网关,如 app,pos,scan,transfer,wap,...

具体实现可以查看源代码。

1、支付宝

SDK 中对应的 driver 和 gateway 如下表所示:

driver gateway 描述
alipay web 电脑支付
alipay wap 手机网站支付
alipay app APP 支付
alipay pos 刷卡支付
alipay scan 扫码支付
alipay bill 电子账单
alipay transfer   帐户转账(可用于平台用户提现)

2、微信

SDK 中对应的 driver 和 gateway 如下表所示:

driver gateway 描述
wechat mp 公众号支付
wechat miniapp 小程序支付
wechat wap H5 支付(不支持沙箱模式)
wechat scan 扫码支付
wechat pos 刷卡支付
wechat app APP 支付
wechat bill 电子账单
wechat transfer 企业付款到零钱(可用于平台用户提现)
wechat bank 企业付款到银行卡(可用于平台用户提现)

操作

所有网关均支持以下方法

  • apply(array $options)
    说明:支付发起接口
    参数:数组类型,订单业务配置项,包含 订单号,订单金额等
    返回:mixed

  • refund(array|string $options, $refund_amount = null)
    说明:发起退款接口
    参数:$options 为字符串类型仅对支付宝支付有效,此时代表订单号,第二个参数为退款金额。
    返回:mixed 退款成功,返回 服务器返回的数组;否则返回 false;

  • close(array|string $options)
    说明:关闭订单接口
    参数:$options 为字符串类型时代表订单号,如果为数组,则为关闭订单业务配置项,配置项内容请参考各个支付网关官方文档。
    返回:mixed 关闭订单成功,返回 服务器返回的数组;否则返回 false;

  • find(string $out_trade_no)
    说明:查找订单接口
    参数:$out_trade_no 为订单号。
    返回:mixed 查找订单成功,返回 服务器返回的数组;否则返回 false;

  • verify($data, $sign = null)
    说明:验证服务器返回消息是否合法
    参数:$data 为服务器接收到的原始内容,$sign 为签名信息,当其为空时,系统将自动转化 $data 为数组,然后取 $data['sign']
    返回:mixed 验证成功,返回 服务器返回的数组;否则返回 false;

实例

// 实例支付对象
$pay = new \Pay\Pay($config);

try {
    $options = $pay->driver('alipay')->gateway('app')->apply($payOrder);
    var_dump($options);
} catch (Exception $e) {
    echo "创建订单失败," . $e->getMessage();
}

通知

支付宝

// 实例支付对象
$pay = new \Pay\Pay($config);

if ($pay->driver('alipay')->gateway()->verify($_POST)) {
    file_put_contents('notify.txt', "收到来自支付宝的异步通知\r\n", FILE_APPEND);
    file_put_contents('notify.txt', "订单单号:{$_POST['out_trade_no']}\r\n", FILE_APPEND);
    file_put_contents('notify.txt', "订单金额:{$_POST['total_amount']}\r\n\r\n", FILE_APPEND);
} else {
    file_put_contents('notify.txt', "收到异步通知\r\n", FILE_APPEND);
}

微信

$pay = new \Pay\Pay($config);
$verify = $pay->driver('wechat')->gateway('mp')->verify(file_get_contents('php://input'));

if ($verify) {
    file_put_contents('notify.txt', "收到来自微信的异步通知\r\n", FILE_APPEND);
    file_put_contents('notify.txt', "订单单号:{$verify['out_trade_no']}\r\n", FILE_APPEND);
    file_put_contents('notify.txt', "订单金额:{$verify['total_fee']}\r\n\r\n", FILE_APPEND);
} else {
    file_put_contents('notify.txt', "收到异步通知\r\n", FILE_APPEND);
}

echo "success";

安装

// 方法一、 使用composer安装
composer require zoujingli/pay-php-sdk

// 方法二、 直接加载支付SDK
include 'init.php'
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].