《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个集成 Alipay 和 WeChat 的 PHP 支付 SDK 扩展包——Pay。
Pay 集成了支付宝、微信的最新API,符合最新的PSR标准,使用少量代码就可集成到其他框架中,无惧束缚。
功能特性
-
• 多租户支持
-
• Swoole 支持
-
• 灵活的插件机制
-
• 丰富的事件系统
-
• 命名不那么乱七八糟
-
• 隐藏开发者不需要关注的细节
-
• 根据支付宝、微信最新 API 开发而成
-
• 高度抽象的类,免去各种拼json与xml的痛苦
-
• 文件结构清晰易理解,可以随心所欲添加本项目中没有的支付网关
-
• 方法使用更优雅,不必再去研究那些奇怪的的方法名或者类名是做啥用的
-
• 内置自动获取微信公共证书方法,再也不用再费劲去考虑第一次获取证书的的问题了
-
• 符合 PSR2、PSR3、PSR4、PSR7、PSR11、PSR14、PSR18 等各项标准,你可以各种方便的与你的框架集成
快速上手
运行环境
PHP 7.0+ (v2.8.0 开始 >= 7.1.3)
composer
php5 请使用 v1.x 版本:
https://github.com/yansongda/pay/tree/v1.x
安装方式
composer require yansongda/pay:^2.10 -vvv
微信公众号支付
Pay::config($config);
$order = [
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
],
'payer' => [
'openid' => 'onkVf1FjWS5SBxxxxxxxx',
],
];
$result = Pay::wechat()->mp($order);
// 返回 Collection 实例。包含了调用 JSAPI 的所有参数,如appId,timeStamp,nonceStr,package,signType,paySign 等;
// 可直接通过 $result->appId, $result->timeStamp 获取相关值。
// 后续调用不在本文档讨论范围内,请自行参考官方文档。
微信扫码支付
Pay::config($config);
$order = [
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
],
];
$result = Pay::wechat()->scan($order);
// 二维码内容: $qr = $result->code_url;
小程序支付
Pay::config($config);
$order = [
'out_trade_no' => time().'',
'description' => 'subject-测试',
'amount' => [
'total' => 1,
'currency' => 'CNY',
],
'payer' => [
'openid' => '123fsdf234',
]
];
$result = Pay::wechat()->mini($order);
// 返回 Collection 实例。包含了调用 JSAPI 的所有参数,如appId,timeStamp,nonceStr,package,signType,paySign 等;
// 可直接通过 $result->appId, $result->timeStamp 获取相关值。
// 后续调用不在本文档讨论范围内,请自行参考官方文档。
扩展包
hyperf 扩展包
https://github.com/yansongda/hyperf-pay
laravel 扩展包
https://github.com/yansongda/laravel-pay
yii 扩展包
https://github.com/guanguans/yii-pay
-END-
开源协议:MIT
开源地址:https://github.com/yansongda/pay
原文始发于微信公众号(开源技术专栏):集成支付宝和微信支付的PHP扩展包,轻松完成支付功能
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66082.html