sysconf('wechat_token'), 'appid' => sysconf('wechat_appid'), 'appsecret' => sysconf('wechat_appsecret'), 'encodingaeskey' => sysconf('wechat_encodingaeskey'), 'mch_id' => sysconf('wechat_mch_id'), 'partnerkey' => sysconf('wechat_partnerkey'), 'ssl_cer' => sysconf('wechat_cert_cert'), 'ssl_key' => sysconf('wechat_cert_key'), 'cachepath' => CACHE_PATH . 'wxpay' . DS, ]; $config['cachepath'] = CACHE_PATH . 'wechat' . DS; $wechat[$index] = &Loader::get($type, $config); } return $wechat[$index]; } /** * 安全URL编码 * @param array $data * @return string */ function encode($data) { return str_replace(['+', '/', '='], ['-', '_', ''], base64_encode(serialize($data))); } /** * 安全URL解码 * @param string $string * @return string */ function decode($string) { $data = str_replace(['-', '_'], ['+', '/'], $string); $mod4 = strlen($data) % 4; !!$mod4 && $data .= substr('====', $mod4); return unserialize(base64_decode($data)); } /** * RBAC节点权限验证 * @param string $node * @return bool */ function auth($node) { return NodeModel::checkAuthNode($node); } /** * 从配置表读取配置信息 * @param string $name * @return string */ function sysconf($name) { static $config = []; if (empty($config)) { foreach (Db::name('SystemConfig')->select() as $vo) { $config[$vo['name']] = $vo['value']; } } return isset($config[$name]) ? $config[$name] : ''; } /** * array_column 函数兼容 */ if (!function_exists("array_column")) { function array_column(array &$rows, $column_key, $index_key = null) { $data = []; foreach ($rows as $row) { if (empty($index_key)) { $data[] = $row[$column_key]; } else { $data[$row[$index_key]] = $row[$column_key]; } } return $data; } }