@@ -3,8 +3,10 @@ | |||
namespace addons\epay\controller; | |||
use addons\epay\library\Service; | |||
use addons\unishop\model\Config; | |||
use fast\Random; | |||
use think\addons\Controller; | |||
use think\Hook; | |||
use Yansongda\Pay\Log; | |||
use Yansongda\Pay\Pay; | |||
use Exception; | |||
@@ -83,6 +85,7 @@ class Index extends Controller | |||
//你可以在此编写订单逻辑 | |||
} catch (Exception $e) { | |||
} | |||
echo $pay->success(); | |||
@@ -104,7 +104,7 @@ class Pay extends Base | |||
$result = $app->order->unify([ | |||
'body' => $body, | |||
'out_trade_no' => $order['out_trade_no'], | |||
'total_fee' => bcmul($order['total_price'],100), | |||
'total_fee' => bcmul($order['total_price'], 100), | |||
'spbill_create_ip' => $_SERVER['REMOTE_ADDR'], // 可选,如不传该参数,SDK 将会自动获取相应 IP 地址 | |||
'trade_type' => $trade_type, // 请对应换成你的支付方式对应的值类型 | |||
'openid' => Wechat::getOpenidByUserId($this->auth->id) | |||
@@ -118,7 +118,7 @@ class Pay extends Base | |||
$result['paySign'] = Wechat::paySign([ | |||
'appId' => Config::getByName('app_id')['value'], | |||
'nonceStr' => $result['nonce_str'], | |||
'package' => 'prepay_id='.$result['prepay_id'], | |||
'package' => 'prepay_id=' . $result['prepay_id'], | |||
'timeStamp' => $result['timeStamp'], | |||
'signType' => 'MD5' | |||
], Config::getByName('key')['value']); | |||
@@ -127,8 +127,8 @@ class Pay extends Base | |||
if ($platfrom == 'APP-PLUS') { | |||
$page = '/pages/index/index'; | |||
} | |||
$result['mweb_url'] .= '&redirect_url='. urlencode('https://'.$_SERVER['HTTP_HOST'].'/h5/#'.$page); | |||
$result['referer'] = 'https://'.$_SERVER['HTTP_HOST']; | |||
$result['mweb_url'] .= '&redirect_url=' . urlencode('https://' . $_SERVER['HTTP_HOST'] . '/h5/#' . $page); | |||
$result['referer'] = 'https://' . $_SERVER['HTTP_HOST']; | |||
} | |||
$this->success('', $result); | |||
@@ -142,7 +142,7 @@ class Pay extends Base | |||
} | |||
/** | |||
* 微信订单支付通知回调 | |||
* 支付通知回调 | |||
*/ | |||
public function notify() | |||
{ | |||
@@ -150,48 +150,44 @@ class Pay extends Base | |||
Hook::add('paid_success', 'addons\\unishop\\behavior\\Order'); | |||
Hook::add('paid_fail', 'addons\\unishop\\behavior\\Order'); | |||
$app = Wechat::initEasyWechat('payment'); | |||
$response = $app->handlePaidNotify(function($message, $fail) use ($app){ | |||
try { | |||
// 使用通知里的 "微信支付订单号" 或者 "商户订单号" 去自己的数据库找到订单 | |||
$orderModel = new \addons\unishop\model\Order(); //($message['out_trade_no']); | |||
$order = $orderModel->where(['out_trade_no' => $message['out_trade_no']])->find(); | |||
if (!$order || $order->have_paid != \addons\unishop\model\Order::PAID_NO) { | |||
return true; // 告诉微信,我已经处理完了,订单没找到,别再通知我了 | |||
} | |||
// 这里调用微信的【订单查询】接口查一下该笔订单的情况,确认是已经支付 | |||
$result = $app->order->queryByOutTradeNumber($message['out_trade_no']); | |||
if ($result['return_code'] == 'FAIL' || empty($result['result_code']) || $result['result_code'] == 'FAIL') { | |||
return $fail('订单未支付'); | |||
} | |||
$paytype = $this->request->param('paytype'); | |||
$pay = Service::checkNotify($paytype); | |||
if (!$pay) { | |||
echo '签名错误'; | |||
return; | |||
} | |||
$data = $pay->verify(); | |||
try { | |||
$payamount = $paytype == 'alipay' ? $data['total_amount'] : $data['total_fee'] / 100; | |||
$out_trade_no = $data['out_trade_no']; | |||
// 检查是否成功 | |||
if ($message['return_code'] === 'SUCCESS') { // return_code 表示通信状态,不代表支付状态 | |||
// 用户是否支付成功 | |||
if ($message['result_code'] === 'SUCCESS') { | |||
// $paytype="alipay"; | |||
// $payamount =11; | |||
// $out_trade_no = "202009205f6707697421b23"; | |||
Hook::listen('paid_success', $order, ['pay_type' => \addons\unishop\model\Order::PAY_WXPAY]); | |||
//你可以在此编写订单逻辑 | |||
//Log::record('Alipay notify ,支付成功'); | |||
} elseif ($message['result_code'] === 'FAIL') { | |||
// 用户支付失败 | |||
Hook::listen('paid_fail', $order); | |||
} | |||
} else { | |||
return $fail('通信失败,请稍后再通知我'); | |||
} | |||
return true; | |||
} catch (\Exception $e) { | |||
// 记录日志 | |||
Log::record('支付回调错误:'. $e->getMessage()); | |||
// 条件一 | |||
$orderModel = new \addons\unishop\model\Order(); //($message['out_trade_no']); | |||
$order = $orderModel->where(['out_trade_no' => $out_trade_no])->find(); | |||
if (!$order || $order->have_paid != \addons\unishop\model\Order::PAID_NO) { | |||
throw new Exception('订单不存在或已完成'); | |||
} | |||
return $fail('通信失败,请稍后再通知我'); | |||
// 条件二 | |||
if ($order->total_price > $payamount || $order->total_price < $payamount) { | |||
throw new Exception('金额不一'); | |||
} | |||
}); | |||
$response->send(); | |||
// 添加行为 | |||
Hook::add('paid_success', 'addons\\unishop\\behavior\\Order'); | |||
$payTypeString = $paytype == 'alipay' ? \addons\unishop\model\Order::PAY_ALIPAY : \addons\unishop\model\Order::PAY_WXPAY; | |||
Hook::listen('paid_success', $order, ['pay_type' => $payTypeString]); | |||
} catch (Exception $e) { | |||
} | |||
$pay = new \Yansongda\Pay\Pay(); | |||
echo $pay->success(); | |||
} | |||
/** | |||
@@ -255,72 +251,21 @@ class Pay extends Base | |||
$body .= '_' . $product['title']; | |||
} | |||
$params = [ | |||
'amount'=>$order->total_price, | |||
'orderid'=>$order->out_trade_no, | |||
'type'=>"alipay", | |||
'title'=>$body, | |||
'notifyurl'=>Config::getByName('ali_notify_url')['value'], | |||
'returnurl'=>Config::getByName('ali_return_url')['value'], | |||
'method'=>"wap", | |||
'amount' => $order->total_price, | |||
'orderid' => $order->out_trade_no, | |||
'type' => "alipay", | |||
'title' => $body, | |||
'notifyurl' => Config::getByName('ali_notify_url')['value'], | |||
'returnurl' => Config::getByName('ali_return_url')['value'], | |||
'method' => "wap", | |||
]; | |||
return Service::submitOrder($params); | |||
} catch (Exception $e) { | |||
$this->error($e->getMessage()); | |||
} | |||
} | |||
/** | |||
* 支付宝回调地址 | |||
*/ | |||
public function alinotify() | |||
{ | |||
$alipay = Ali::initAliPay(); | |||
try{ | |||
$data = $alipay->verify(); // 是的,验签就这么简单! | |||
// 请自行对 trade_status 进行判断及其它逻辑进行判断,在支付宝的业务通知中,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,支付宝才会认定为买家付款成功。 | |||
// 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号; | |||
// 2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额); | |||
// 3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email); | |||
// 4、验证app_id是否为该商户本身。 | |||
// 5、其它业务逻辑情况 | |||
if (in_array($data['trade_status'], ['TRADE_SUCCESS', 'TRADE_FINISHED'])) { | |||
// 支付成功 | |||
//Log::record('Alipay notify ,支付成功'); | |||
// 条件一 | |||
$orderModel = new \addons\unishop\model\Order(); //($message['out_trade_no']); | |||
$order = $orderModel->where(['out_trade_no' => $data['out_trade_no']])->find(); | |||
if (!$order || $order->have_paid != \addons\unishop\model\Order::PAID_NO) { | |||
throw new Exception('订单不存在或已完成'); | |||
} | |||
// 条件二 | |||
if ($order->total_price > $data['total_amount'] || $order->total_price < $data['total_amount']) { | |||
throw new Exception('金额不一'); | |||
} | |||
// 条件三 | |||
if ($data['app_id'] != Config::getByName('ali_app_id')['value']) { | |||
throw new Exception('app_id不一'); | |||
} | |||
// 添加行为 | |||
Hook::add('paid_success', 'addons\\unishop\\behavior\\Order'); | |||
Hook::listen('paid_success', $order, ['pay_type' => \addons\unishop\model\Order::PAY_ALIPAY]); | |||
} | |||
} catch (\Exception $e) { | |||
Log::record('Alipay notify ,支付失败: '. $e->getMessage()); | |||
return $alipay->success()->send(); | |||
} | |||
return $alipay->success()->send();// laravel 框架中请直接 `return $alipay->success()` | |||
} | |||
} |
@@ -0,0 +1,3 @@ | |||
{ | |||
"lockfileVersion": 1 | |||
} |
@@ -2,6 +2,6 @@ | |||
// autoload.php @generated by Composer | |||
require_once __DIR__ . '/composer' . '/autoload_real.php'; | |||
require_once __DIR__ . '/composer/autoload_real.php'; | |||
return ComposerAutoloaderInitee15cbb6ed33e5b662fcb3f36298dc5c::getLoader(); |
@@ -55,6 +55,7 @@ class ClassLoader | |||
private $classMap = array(); | |||
private $classMapAuthoritative = false; | |||
private $missingClasses = array(); | |||
private $apcuPrefix; | |||
public function getPrefixes() | |||
{ | |||
@@ -272,6 +273,26 @@ class ClassLoader | |||
} | |||
/** | |||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled. | |||
* | |||
* @param string|null $apcuPrefix | |||
*/ | |||
public function setApcuPrefix($apcuPrefix) | |||
{ | |||
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; | |||
} | |||
/** | |||
* The APCu prefix in use, or null if APCu caching is not enabled. | |||
* | |||
* @return string|null | |||
*/ | |||
public function getApcuPrefix() | |||
{ | |||
return $this->apcuPrefix; | |||
} | |||
/** | |||
* Registers this instance as an autoloader. | |||
* | |||
* @param bool $prepend Whether to prepend the autoloader or not | |||
@@ -313,11 +334,6 @@ class ClassLoader | |||
*/ | |||
public function findFile($class) | |||
{ | |||
// work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 | |||
if ('\\' == $class[0]) { | |||
$class = substr($class, 1); | |||
} | |||
// class map lookup | |||
if (isset($this->classMap[$class])) { | |||
return $this->classMap[$class]; | |||
@@ -325,6 +341,12 @@ class ClassLoader | |||
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { | |||
return false; | |||
} | |||
if (null !== $this->apcuPrefix) { | |||
$file = apcu_fetch($this->apcuPrefix.$class, $hit); | |||
if ($hit) { | |||
return $file; | |||
} | |||
} | |||
$file = $this->findFileWithExtension($class, '.php'); | |||
@@ -333,6 +355,10 @@ class ClassLoader | |||
$file = $this->findFileWithExtension($class, '.hh'); | |||
} | |||
if (null !== $this->apcuPrefix) { | |||
apcu_add($this->apcuPrefix.$class, $file); | |||
} | |||
if (false === $file) { | |||
// Remember that this class does not exist. | |||
$this->missingClasses[$class] = true; | |||
@@ -348,10 +374,14 @@ class ClassLoader | |||
$first = $class[0]; | |||
if (isset($this->prefixLengthsPsr4[$first])) { | |||
foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { | |||
if (0 === strpos($class, $prefix)) { | |||
foreach ($this->prefixDirsPsr4[$prefix] as $dir) { | |||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { | |||
$subPath = $class; | |||
while (false !== $lastPos = strrpos($subPath, '\\')) { | |||
$subPath = substr($subPath, 0, $lastPos); | |||
$search = $subPath . '\\'; | |||
if (isset($this->prefixDirsPsr4[$search])) { | |||
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); | |||
foreach ($this->prefixDirsPsr4[$search] as $dir) { | |||
if (file_exists($file = $dir . $pathEnd)) { | |||
return $file; | |||
} | |||
} | |||
@@ -1,5 +1,5 @@ | |||
Copyright (c) 2016 Nils Adermann, Jordi Boggiano | |||
Copyright (c) Nils Adermann, Jordi Boggiano | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files (the "Software"), to deal | |||
@@ -8,28 +8,12 @@ $baseDir = dirname($vendorDir); | |||
return array( | |||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', | |||
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php', | |||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', | |||
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', | |||
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', | |||
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', | |||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', | |||
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', | |||
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', | |||
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', | |||
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', | |||
'9d8e013a5160a09477beb8e44f8ae97b' => $vendorDir . '/markbaker/matrix/classes/src/functions/adjoint.php', | |||
'6e78d1bdea6248d6aa117229efae50f2' => $vendorDir . '/markbaker/matrix/classes/src/functions/antidiagonal.php', | |||
'4623d87924d94f5412fe5afbf1cef31d' => $vendorDir . '/markbaker/matrix/classes/src/functions/cofactors.php', | |||
'901fd1f6950a637ca85f66b701a45e13' => $vendorDir . '/markbaker/matrix/classes/src/functions/determinant.php', | |||
'83057abc0e4acc99ba80154ee5d02a49' => $vendorDir . '/markbaker/matrix/classes/src/functions/diagonal.php', | |||
'07b7fd7a434451149b4fd477fca0ce06' => $vendorDir . '/markbaker/matrix/classes/src/functions/identity.php', | |||
'c8d43b340583e07ae89f2a3baef2cf89' => $vendorDir . '/markbaker/matrix/classes/src/functions/inverse.php', | |||
'499bb10ed7a3aee2ba4c09a31a85e8d1' => $vendorDir . '/markbaker/matrix/classes/src/functions/minors.php', | |||
'1cad2e6414d652e8b1c64e8967f6f37d' => $vendorDir . '/markbaker/matrix/classes/src/functions/trace.php', | |||
'95a7f134ac17161d07def442b3b737e8' => $vendorDir . '/markbaker/matrix/classes/src/functions/transpose.php', | |||
'b3a6bc628377118d4b4b8ba08d1eb949' => $vendorDir . '/markbaker/matrix/classes/src/operations/add.php', | |||
'5fef6d0e407f3f8887266dfa4a6c534c' => $vendorDir . '/markbaker/matrix/classes/src/operations/directsum.php', | |||
'684ba247e1385946e3babdaa054119de' => $vendorDir . '/markbaker/matrix/classes/src/operations/subtract.php', | |||
'aa53dcba601214d17ad405b7c291b7e8' => $vendorDir . '/markbaker/matrix/classes/src/operations/multiply.php', | |||
'75c79eb1b25749b05a47976f32b0d8a2' => $vendorDir . '/markbaker/matrix/classes/src/operations/divideby.php', | |||
'6ab8ad87a734f276a6bcd5a0fe1289be' => $vendorDir . '/markbaker/matrix/classes/src/operations/divideinto.php', | |||
'abede361264e2ae69ec1eee813a101af' => $vendorDir . '/markbaker/complex/classes/src/functions/abs.php', | |||
'21a5860fbef5be28db5ddfbc3cca67c4' => $vendorDir . '/markbaker/complex/classes/src/functions/acos.php', | |||
'1546e3f9d127f2a9bb2d1b6c31c26ef1' => $vendorDir . '/markbaker/complex/classes/src/functions/acosh.php', | |||
@@ -72,7 +56,23 @@ return array( | |||
'883af48563631547925fa4c3b48ead07' => $vendorDir . '/markbaker/complex/classes/src/operations/multiply.php', | |||
'f190e3308e6ca23234a2875edc985c03' => $vendorDir . '/markbaker/complex/classes/src/operations/divideby.php', | |||
'ac9e33ce6841aa5bf5d16d465a2f03a7' => $vendorDir . '/markbaker/complex/classes/src/operations/divideinto.php', | |||
'9d8e013a5160a09477beb8e44f8ae97b' => $vendorDir . '/markbaker/matrix/classes/src/functions/adjoint.php', | |||
'6e78d1bdea6248d6aa117229efae50f2' => $vendorDir . '/markbaker/matrix/classes/src/functions/antidiagonal.php', | |||
'4623d87924d94f5412fe5afbf1cef31d' => $vendorDir . '/markbaker/matrix/classes/src/functions/cofactors.php', | |||
'901fd1f6950a637ca85f66b701a45e13' => $vendorDir . '/markbaker/matrix/classes/src/functions/determinant.php', | |||
'83057abc0e4acc99ba80154ee5d02a49' => $vendorDir . '/markbaker/matrix/classes/src/functions/diagonal.php', | |||
'07b7fd7a434451149b4fd477fca0ce06' => $vendorDir . '/markbaker/matrix/classes/src/functions/identity.php', | |||
'c8d43b340583e07ae89f2a3baef2cf89' => $vendorDir . '/markbaker/matrix/classes/src/functions/inverse.php', | |||
'499bb10ed7a3aee2ba4c09a31a85e8d1' => $vendorDir . '/markbaker/matrix/classes/src/functions/minors.php', | |||
'1cad2e6414d652e8b1c64e8967f6f37d' => $vendorDir . '/markbaker/matrix/classes/src/functions/trace.php', | |||
'95a7f134ac17161d07def442b3b737e8' => $vendorDir . '/markbaker/matrix/classes/src/functions/transpose.php', | |||
'b3a6bc628377118d4b4b8ba08d1eb949' => $vendorDir . '/markbaker/matrix/classes/src/operations/add.php', | |||
'5fef6d0e407f3f8887266dfa4a6c534c' => $vendorDir . '/markbaker/matrix/classes/src/operations/directsum.php', | |||
'684ba247e1385946e3babdaa054119de' => $vendorDir . '/markbaker/matrix/classes/src/operations/subtract.php', | |||
'aa53dcba601214d17ad405b7c291b7e8' => $vendorDir . '/markbaker/matrix/classes/src/operations/multiply.php', | |||
'75c79eb1b25749b05a47976f32b0d8a2' => $vendorDir . '/markbaker/matrix/classes/src/operations/divideby.php', | |||
'6ab8ad87a734f276a6bcd5a0fe1289be' => $vendorDir . '/markbaker/matrix/classes/src/operations/divideinto.php', | |||
'488987c28e9b5e95a1ce6b6bcb94606c' => $vendorDir . '/karsonzhang/fastadmin-addons/src/common.php', | |||
'9e090711773bfc38738f5dbaee5a7f14' => $vendorDir . '/overtrue/wechat/src/Payment/helpers.php', | |||
'1cfd2761b63b0a29ed23657ea394cb2d' => $vendorDir . '/topthink/think-captcha/src/helper.php', | |||
'488987c28e9b5e95a1ce6b6bcb94606c' => $vendorDir . '/karsonzhang/fastadmin-addons/src/common.php', | |||
); |
@@ -8,7 +8,7 @@ $baseDir = dirname($vendorDir); | |||
return array( | |||
'think\\composer\\' => array($vendorDir . '/topthink/think-installer/src'), | |||
'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'), | |||
'think\\' => array($baseDir . '/thinkphp/library/think', $vendorDir . '/karsonzhang/fastadmin-addons/src'), | |||
'think\\' => array($vendorDir . '/karsonzhang/fastadmin-addons/src', $baseDir . '/thinkphp/library/think'), | |||
'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), | |||
'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'), | |||
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), | |||
@@ -23,7 +23,7 @@ class ComposerAutoloaderInitee15cbb6ed33e5b662fcb3f36298dc5c | |||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(); | |||
spl_autoload_unregister(array('ComposerAutoloaderInitee15cbb6ed33e5b662fcb3f36298dc5c', 'loadClassLoader')); | |||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION'); | |||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); | |||
if ($useStaticLoader) { | |||
require_once __DIR__ . '/autoload_static.php'; | |||
@@ -9,28 +9,12 @@ class ComposerStaticInitee15cbb6ed33e5b662fcb3f36298dc5c | |||
public static $files = array ( | |||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', | |||
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php', | |||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', | |||
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', | |||
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', | |||
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', | |||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', | |||
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', | |||
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', | |||
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', | |||
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', | |||
'9d8e013a5160a09477beb8e44f8ae97b' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/adjoint.php', | |||
'6e78d1bdea6248d6aa117229efae50f2' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/antidiagonal.php', | |||
'4623d87924d94f5412fe5afbf1cef31d' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/cofactors.php', | |||
'901fd1f6950a637ca85f66b701a45e13' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/determinant.php', | |||
'83057abc0e4acc99ba80154ee5d02a49' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/diagonal.php', | |||
'07b7fd7a434451149b4fd477fca0ce06' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/identity.php', | |||
'c8d43b340583e07ae89f2a3baef2cf89' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/inverse.php', | |||
'499bb10ed7a3aee2ba4c09a31a85e8d1' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/minors.php', | |||
'1cad2e6414d652e8b1c64e8967f6f37d' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/trace.php', | |||
'95a7f134ac17161d07def442b3b737e8' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/transpose.php', | |||
'b3a6bc628377118d4b4b8ba08d1eb949' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/add.php', | |||
'5fef6d0e407f3f8887266dfa4a6c534c' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/directsum.php', | |||
'684ba247e1385946e3babdaa054119de' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/subtract.php', | |||
'aa53dcba601214d17ad405b7c291b7e8' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/multiply.php', | |||
'75c79eb1b25749b05a47976f32b0d8a2' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/divideby.php', | |||
'6ab8ad87a734f276a6bcd5a0fe1289be' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/divideinto.php', | |||
'abede361264e2ae69ec1eee813a101af' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/abs.php', | |||
'21a5860fbef5be28db5ddfbc3cca67c4' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/acos.php', | |||
'1546e3f9d127f2a9bb2d1b6c31c26ef1' => __DIR__ . '/..' . '/markbaker/complex/classes/src/functions/acosh.php', | |||
@@ -73,9 +57,25 @@ class ComposerStaticInitee15cbb6ed33e5b662fcb3f36298dc5c | |||
'883af48563631547925fa4c3b48ead07' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/multiply.php', | |||
'f190e3308e6ca23234a2875edc985c03' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/divideby.php', | |||
'ac9e33ce6841aa5bf5d16d465a2f03a7' => __DIR__ . '/..' . '/markbaker/complex/classes/src/operations/divideinto.php', | |||
'9d8e013a5160a09477beb8e44f8ae97b' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/adjoint.php', | |||
'6e78d1bdea6248d6aa117229efae50f2' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/antidiagonal.php', | |||
'4623d87924d94f5412fe5afbf1cef31d' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/cofactors.php', | |||
'901fd1f6950a637ca85f66b701a45e13' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/determinant.php', | |||
'83057abc0e4acc99ba80154ee5d02a49' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/diagonal.php', | |||
'07b7fd7a434451149b4fd477fca0ce06' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/identity.php', | |||
'c8d43b340583e07ae89f2a3baef2cf89' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/inverse.php', | |||
'499bb10ed7a3aee2ba4c09a31a85e8d1' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/minors.php', | |||
'1cad2e6414d652e8b1c64e8967f6f37d' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/trace.php', | |||
'95a7f134ac17161d07def442b3b737e8' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/functions/transpose.php', | |||
'b3a6bc628377118d4b4b8ba08d1eb949' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/add.php', | |||
'5fef6d0e407f3f8887266dfa4a6c534c' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/directsum.php', | |||
'684ba247e1385946e3babdaa054119de' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/subtract.php', | |||
'aa53dcba601214d17ad405b7c291b7e8' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/multiply.php', | |||
'75c79eb1b25749b05a47976f32b0d8a2' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/divideby.php', | |||
'6ab8ad87a734f276a6bcd5a0fe1289be' => __DIR__ . '/..' . '/markbaker/matrix/classes/src/operations/divideinto.php', | |||
'488987c28e9b5e95a1ce6b6bcb94606c' => __DIR__ . '/..' . '/karsonzhang/fastadmin-addons/src/common.php', | |||
'9e090711773bfc38738f5dbaee5a7f14' => __DIR__ . '/..' . '/overtrue/wechat/src/Payment/helpers.php', | |||
'1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php', | |||
'488987c28e9b5e95a1ce6b6bcb94606c' => __DIR__ . '/..' . '/karsonzhang/fastadmin-addons/src/common.php', | |||
); | |||
public static $prefixLengthsPsr4 = array ( | |||
@@ -143,8 +143,8 @@ class ComposerStaticInitee15cbb6ed33e5b662fcb3f36298dc5c | |||
), | |||
'think\\' => | |||
array ( | |||
0 => __DIR__ . '/../..' . '/thinkphp/library/think', | |||
1 => __DIR__ . '/..' . '/karsonzhang/fastadmin-addons/src', | |||
0 => __DIR__ . '/..' . '/karsonzhang/fastadmin-addons/src', | |||
1 => __DIR__ . '/../..' . '/thinkphp/library/think', | |||
), | |||
'Symfony\\Polyfill\\Php72\\' => | |||
array ( | |||