caipan_shop_admin/app/service/Alipay.php

64 lines
2.2 KiB
PHP
Raw Permalink Normal View History

2022-05-25 11:35:57 +00:00
<?php
namespace app\service;
use Yansongda\Pay\Pay;
use Yansongda\Pay\Log;
use think\facade\Config;
class Alipay
{
private static $app = null;
private function __construct()
{
}
private function __clone()
{
}
/**
* 支付宝配置
*
* @return array
*/
public static function config(): array
{
Config::load('extra/alipay', 'alipay');
$conf = config('alipay');
return [
'app_id' => trim($conf['appId']),
'notify_url' => trim($conf['notify_url']),
'return_url' => trim($conf['return_url']) ?? trim($conf['notify_url']),
'ali_public_key' => trim($conf['aliPubKey']),//注意 这里的是支付宝的公钥
// 加密方式: **RSA2**
'private_key' => trim($conf['priKey']),
// 使用公钥证书模式请配置下面两个参数同时修改ali_public_key为以.crt结尾的支付宝公钥证书路径
// 如(./cert/alipayCertPublicKey_RSA2.crt
// 'app_cert_public_key' => './cert/appCertPublicKey.crt', //应用公钥证书路径
// 'alipay_root_cert' => './cert/alipayRootCert.crt', //支付宝根证书路径
'log' => [ // optional
'file' => './logs/alipay.log',
'level' => 'debug', // 建议生产环境等级调整为 info开发环境为 debug
'type' => 'single', // optional, 可选 daily.
'max_file' => 30, // optional, 当 type 为 daily 时有效,默认 30 天
],
'http' => [ // optional
'timeout' => 5.0,
'connect_timeout' => 5.0,
// 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html)
],
// 'mode' => 'dev', // optional,设置此参数,将进入沙箱模式
];
}
//支付宝支付实例 单例模式
public static function getInstance(): ?\Yansongda\Pay\Gateways\Alipay
{
if (self::$app == null) {
self::$app = Pay::alipay(self::config());
}
return self::$app;
}
}