2025-08-01 11:39:06 +08:00

121 lines
3.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace addons\xilufitness\controller;
use app\admin\library\Wechat;
use app\common\controller\Api;
use think\Config;
/**
* @ApiSector(控制器基类)
* @ApiInternal
* Class BaseController
* @package addons\xilufitness\controller
*/
class Base extends Api
{
protected $noNeedRight = '*';
/**
* 小程序配置信息
* @var array
*/
protected $miniConfig = [];
/**
* 品牌id
* @var int
*/
protected $brand_id;
/**
* 品牌key
* @var string
*/
protected $brand_key;
/**
* 默认纬度
* @var string
*/
protected $lat= '31.231859';
/**默认经度
* @var string
*/
protected $lng = '121.486561';
/**
* 支付签名
* 密钥
*/
private $pay_key = 'xilufitness_pay_key_8888';
/**
* 初始化方法
*/
protected function _initialize()
{
parent::_initialize();
$header = $this->request->header();
// $this->brand_key = $this->request->server('BRAND_KEY', $this->request->request('brand-key', $header['brand-key'] ?? ''));
// if (empty($this->brand_key)) {
// $this->error('品牌key不能为空');
// }
$this->brand_key = '2463650725715848382644224';
$brandModel = new \addons\xilufitness\model\Brand;
$brand_id = $brandModel->where(['brand_key' => $this->brand_key])->value('id');
if (empty($brand_id)) {
$this->error('品牌key无效');
}
$this->brand_id = empty($brand_id) ? 1 : $brand_id;
$this->miniConfig = (new Wechat())->getMiniConfig();
}
/**
* 支付签名
* sign 生成
* @param string $order_id 订单id
* @param int $order_type 订单类型
* @param int $timestamp 时间戳
*/
protected function paySign(string $order_id,int $order_type,int $timestamp){
return strtoupper(md5($order_id.$this->pay_key.$order_type.$timestamp));
}
/**
* 获取小程序配置
* @param int $brand_id 品牌商id
* @return array
*/
protected function getMiniConfig(int $brand_id){
$brandConfig = Config::get('xilubrand')[$brand_id] ?? [];
if(!empty($brandConfig)){
$this->miniConfig = [
'appid' => $brandConfig['mini_appid'] ?? '',
'appsecret' => $brandConfig['mini_appsecret'] ?? '',
'encodingaeskey' => '',
// 配置商户支付参数
'mch_id' => $brandConfig['mini_mch_id'] ?? '',
'mch_key' => $brandConfig['mini_mch_key'] ?? '',
// 配置商户支付双向证书目录 p12 | key,cert 二选一两者都配置时p12优先
'ssl_p12' => ROOT_PATH.'public'.$brandConfig['mini_mch_p12'] ?? '',
'ssl_key' => ROOT_PATH.'public'.$brandConfig['mini_mch_pem_key'] ?? '',
'ssl_cer' => ROOT_PATH.'public'.$brandConfig['mini_mch_pem_cert'] ?? '',
// 配置缓存目录,需要拥有写权限
'cache_path' => RUNTIME_PATH.'wechat',
];
return $this->miniConfig;
}
return $brandConfig;
}
}