Laravel集成支付宝支付
Laravel集成支付宝支付
引入拓展包
composer require yansongda/laravel-pay:2.10.2 #安装拓展包
配置参数
touch config/pay.php
config/pay.php
<?php
return [
'alipay' => [
'app_id' => '',
'ali_public_key' => '',
'private_key' => '',
'log' => [
'file' => storage_path('logs/alipay.log'),
],
]
];
注入实例
app/Providers/AppServiceProvider.php
use Monolog\Logger;
use Yansongda\Pay\Pay;
.
.
.
public function register()
{
// 往服务容器中注入一个名为 alipay 的单例对象
$this->app->singleton('alipay', function () {
$config = config('pay.alipay');
// 判断当前项目运行环境是否为线上环境
if (app()->environment() !== 'production') {
$config['mode'] = 'dev';
$config['log']['level'] = Logger::DEBUG;
} else {
$config['log']['level'] = Logger::WARNING;
}
// 调用 Yansongda\Pay 来创建一个支付宝支付对象
return Pay::alipay($config);
});
}
获取支付宝的沙箱环境
前往openhome.alipay.com/platform/appDa…扫码登陆后将会看到,然后简单填一下:
获取应用公钥和应用私钥:
提示:之前基本都是用的本地工具,但是支付宝开放平台升级后,提供了在线和离线两种方式,我们基本用在线方式就可以了;
配置参数
config/pay.php
'app_id' => '你在支付宝沙箱看到的appid',
'ali_public_key' => '支付宝沙箱显示的公钥',
'private_key' => '非java语言的私钥',
测试支付
routes/web.php
Route::get('alipay', function() {
return app('alipay')->web([
'out_trade_no' => time(),
'total_amount' => '1',
'subject' => 'test subject - 测试',
]);
});
访问测试路由,将会看到:
,
'ali_public_key' => env('ALIPAY_PUBLIC_KEY'),
'private_key' => env('ALIPAY_PRIVATE_KEY'),
'log' => [
'file' => storage_path('logs/alipay.log'),
],
],
];
.env 文件最后面新增:
# 支付宝配置信息
ALIPAY_APP_ID=2021000117608961
ALIPAY_PUBLIC_KEY="MIIBIjANB..."
ALIPAY_PRIVATE_KEY="MIIEpAIBAA..."
为什么这么做?因为.env文件在git提交的时候不会提交,而如果写死在配置文件里面,就会提交到git,可能有财产安全风险。
最后
到这里就代表对接成功了,后续正式上线替换掉测试的配置信息即可,当然不止如此,你还需要根据实际业务,开发支付宝回调,配置回掉地址等。另外,虽然现在这个拓展包出3.0版本了,但还是推荐用2.10.2版本,具体原因,相信你体验过后就会知道了,再会…
声明:本文部分参考其他文章,如有部分内容雷同,请务惊讶!但博主确实在测试项目中完整走了一遍,对内容保障,并非水文,感谢谅解(狗头保命)
ef7bfe59-d14e-dd46-bae2-08f5ddd74cf1
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。