@@ -157,7 +157,7 @@ discard block |
||
| 157 | 157 | return $url; |
| 158 | 158 | } |
| 159 | 159 | |
| 160 | - return Wechat::URL[$config['mode'] ?? Pay::MODE_NORMAL].$url; |
|
| 160 | + return Wechat::URL[$config['mode'] ?? Pay::MODE_NORMAL] . $url; |
|
| 161 | 161 | } |
| 162 | 162 | |
| 163 | 163 | /** |
@@ -176,7 +176,7 @@ discard block |
||
| 176 | 176 | |
| 177 | 177 | function get_wechat_type_key(array $params): string |
| 178 | 178 | { |
| 179 | - $key = ($params['_type'] ?? 'mp').'_app_id'; |
|
| 179 | + $key = ($params['_type'] ?? 'mp') . '_app_id'; |
|
| 180 | 180 | |
| 181 | 181 | if ('app_app_id' === $key) { |
| 182 | 182 | $key = 'app_id'; |
@@ -219,10 +219,10 @@ discard block |
||
| 219 | 219 | $buff = ''; |
| 220 | 220 | |
| 221 | 221 | foreach ($payload as $k => $v) { |
| 222 | - $buff .= ('sign' != $k && '' != $v && !is_array($v)) ? $k.'='.$v.'&' : ''; |
|
| 222 | + $buff .= ('sign' != $k && '' != $v && !is_array($v)) ? $k . '=' . $v . '&' : ''; |
|
| 223 | 223 | } |
| 224 | 224 | |
| 225 | - $sign = md5($buff.'key='.$key); |
|
| 225 | + $sign = md5($buff . 'key=' . $key); |
|
| 226 | 226 | |
| 227 | 227 | return $upper ? strtoupper($sign) : $sign; |
| 228 | 228 | } |
@@ -235,7 +235,7 @@ discard block |
||
| 235 | 235 | * @throws InvalidSignException |
| 236 | 236 | * @throws ServiceNotFoundException |
| 237 | 237 | */ |
| 238 | -function verify_wechat_sign(ResponseInterface|ServerRequestInterface $message, array $params): void |
|
| 238 | +function verify_wechat_sign(ResponseInterface | ServerRequestInterface $message, array $params): void |
|
| 239 | 239 | { |
| 240 | 240 | if ($message instanceof ServerRequestInterface && 'localhost' === $message->getUri()->getHost()) { |
| 241 | 241 | return; |
@@ -247,7 +247,7 @@ discard block |
||
| 247 | 247 | $sign = $message->getHeaderLine('Wechatpay-Signature'); |
| 248 | 248 | $body = (string) $message->getBody(); |
| 249 | 249 | |
| 250 | - $content = $timestamp."\n".$random."\n".$body."\n"; |
|
| 250 | + $content = $timestamp . "\n" . $random . "\n" . $body . "\n"; |
|
| 251 | 251 | $public = get_provider_config('wechat', $params)['wechat_public_cert_path'][$wechatSerial] ?? null; |
| 252 | 252 | |
| 253 | 253 | if (empty($sign)) { |
@@ -332,7 +332,7 @@ discard block |
||
| 332 | 332 | } |
| 333 | 333 | |
| 334 | 334 | Pay::get(ConfigInterface::class)->set( |
| 335 | - 'wechat.'.get_tenant($params).'.wechat_public_cert_path', |
|
| 335 | + 'wechat.' . get_tenant($params) . '.wechat_public_cert_path', |
|
| 336 | 336 | ((array) ($wechatConfig['wechat_public_cert_path'] ?? [])) + ($certs ?? []), |
| 337 | 337 | ); |
| 338 | 338 | |
@@ -363,7 +363,7 @@ discard block |
||
| 363 | 363 | } |
| 364 | 364 | |
| 365 | 365 | foreach ($config['wechat_public_cert_path'] as $serialNo => $cert) { |
| 366 | - file_put_contents($path.'/'.$serialNo.'.crt', $cert); |
|
| 366 | + file_put_contents($path . '/' . $serialNo . '.crt', $cert); |
|
| 367 | 367 | } |
| 368 | 368 | } |
| 369 | 369 | |
@@ -395,7 +395,7 @@ discard block |
||
| 395 | 395 | /** |
| 396 | 396 | * @throws DecryptException |
| 397 | 397 | */ |
| 398 | -function decrypt_wechat_resource_aes_256_gcm(string $ciphertext, string $secret, string $nonce, string $associatedData): array|string |
|
| 398 | +function decrypt_wechat_resource_aes_256_gcm(string $ciphertext, string $secret, string $nonce, string $associatedData): array | string |
|
| 399 | 399 | { |
| 400 | 400 | $decrypted = openssl_decrypt( |
| 401 | 401 | substr($ciphertext, 0, -Wechat::AUTH_TAG_LENGTH_BYTE), |
@@ -456,7 +456,7 @@ discard block |
||
| 456 | 456 | $publicKey = $config['wechat_public_cert_path'][$serialNo] ?? null; |
| 457 | 457 | |
| 458 | 458 | if (empty($publicKey)) { |
| 459 | - throw new InvalidParamsException(Exception::PARAMS_WECHAT_SERIAL_NOT_FOUND, '参数异常: 微信公钥序列号未找到 - '.$serialNo); |
|
| 459 | + throw new InvalidParamsException(Exception::PARAMS_WECHAT_SERIAL_NOT_FOUND, '参数异常: 微信公钥序列号未找到 - ' . $serialNo); |
|
| 460 | 460 | } |
| 461 | 461 | |
| 462 | 462 | return $publicKey; |
@@ -471,7 +471,7 @@ discard block |
||
| 471 | 471 | throw new InvalidConfigException(Exception::CONFIG_WECHAT_INVALID, '配置异常: 缺少微信配置 -- [mini_app_key_virtual_pay]'); |
| 472 | 472 | } |
| 473 | 473 | |
| 474 | - return hash_hmac('sha256', $url.'&'.$payload, $config['mini_app_key_virtual_pay']); |
|
| 474 | + return hash_hmac('sha256', $url . '&' . $payload, $config['mini_app_key_virtual_pay']); |
|
| 475 | 475 | } |
| 476 | 476 | |
| 477 | 477 | function get_wechat_miniprogram_user_sign(string $sessionKey, string $payload): string |
@@ -532,7 +532,7 @@ discard block |
||
| 532 | 532 | return $url; |
| 533 | 533 | } |
| 534 | 534 | |
| 535 | - return Unipay::URL[$config['mode'] ?? Pay::MODE_NORMAL].$url; |
|
| 535 | + return Unipay::URL[$config['mode'] ?? Pay::MODE_NORMAL] . $url; |
|
| 536 | 536 | } |
| 537 | 537 | |
| 538 | 538 | /** |
@@ -565,10 +565,10 @@ discard block |
||
| 565 | 565 | $buff = ''; |
| 566 | 566 | |
| 567 | 567 | foreach ($payload as $k => $v) { |
| 568 | - $buff .= ('sign' != $k && '' != $v && !is_array($v)) ? $k.'='.$v.'&' : ''; |
|
| 568 | + $buff .= ('sign' != $k && '' != $v && !is_array($v)) ? $k . '=' . $v . '&' : ''; |
|
| 569 | 569 | } |
| 570 | 570 | |
| 571 | - return strtoupper(md5($buff.'key='.$key)); |
|
| 571 | + return strtoupper(md5($buff . 'key=' . $key)); |
|
| 572 | 572 | } |
| 573 | 573 | |
| 574 | 574 | /** |
@@ -647,5 +647,5 @@ discard block |
||
| 647 | 647 | return $url; |
| 648 | 648 | } |
| 649 | 649 | |
| 650 | - return Douyin::URL[$config['mode'] ?? Pay::MODE_NORMAL].$url; |
|
| 650 | + return Douyin::URL[$config['mode'] ?? Pay::MODE_NORMAL] . $url; |
|
| 651 | 651 | } |
@@ -53,9 +53,9 @@ discard block |
||
| 53 | 53 | * @throws InvalidParamsException |
| 54 | 54 | * @throws ServiceNotFoundException |
| 55 | 55 | */ |
| 56 | - public function __call(string $shortcut, array $params): null|Collection|MessageInterface|Rocket |
|
| 56 | + public function __call(string $shortcut, array $params): null | Collection | MessageInterface | Rocket |
|
| 57 | 57 | { |
| 58 | - $plugin = '\Yansongda\Pay\Shortcut\Alipay\\'.Str::studly($shortcut).'Shortcut'; |
|
| 58 | + $plugin = '\Yansongda\Pay\Shortcut\Alipay\\' . Str::studly($shortcut) . 'Shortcut'; |
|
| 59 | 59 | |
| 60 | 60 | return Artful::shortcut($plugin, ...$params); |
| 61 | 61 | } |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | * @throws ContainerException |
| 65 | 65 | * @throws InvalidParamsException |
| 66 | 66 | */ |
| 67 | - public function pay(array $plugins, array $params): null|Collection|MessageInterface|Rocket |
|
| 67 | + public function pay(array $plugins, array $params): null | Collection | MessageInterface | Rocket |
|
| 68 | 68 | { |
| 69 | 69 | return Artful::artful($plugins, $params); |
| 70 | 70 | } |
@@ -74,7 +74,7 @@ discard block |
||
| 74 | 74 | * @throws InvalidParamsException |
| 75 | 75 | * @throws ServiceNotFoundException |
| 76 | 76 | */ |
| 77 | - public function query(array $order): Collection|Rocket |
|
| 77 | + public function query(array $order): Collection | Rocket |
|
| 78 | 78 | { |
| 79 | 79 | Event::dispatch(new MethodCalled('alipay', __METHOD__, $order, null)); |
| 80 | 80 | |
@@ -86,7 +86,7 @@ discard block |
||
| 86 | 86 | * @throws InvalidParamsException |
| 87 | 87 | * @throws ServiceNotFoundException |
| 88 | 88 | */ |
| 89 | - public function cancel(array $order): Collection|Rocket |
|
| 89 | + public function cancel(array $order): Collection | Rocket |
|
| 90 | 90 | { |
| 91 | 91 | Event::dispatch(new MethodCalled('alipay', __METHOD__, $order, null)); |
| 92 | 92 | |
@@ -98,7 +98,7 @@ discard block |
||
| 98 | 98 | * @throws InvalidParamsException |
| 99 | 99 | * @throws ServiceNotFoundException |
| 100 | 100 | */ |
| 101 | - public function close(array $order): Collection|Rocket |
|
| 101 | + public function close(array $order): Collection | Rocket |
|
| 102 | 102 | { |
| 103 | 103 | Event::dispatch(new MethodCalled('alipay', __METHOD__, $order, null)); |
| 104 | 104 | |
@@ -110,7 +110,7 @@ discard block |
||
| 110 | 110 | * @throws InvalidParamsException |
| 111 | 111 | * @throws ServiceNotFoundException |
| 112 | 112 | */ |
| 113 | - public function refund(array $order): Collection|Rocket |
|
| 113 | + public function refund(array $order): Collection | Rocket |
|
| 114 | 114 | { |
| 115 | 115 | Event::dispatch(new MethodCalled('alipay', __METHOD__, $order, null)); |
| 116 | 116 | |
@@ -121,7 +121,7 @@ discard block |
||
| 121 | 121 | * @throws ContainerException |
| 122 | 122 | * @throws InvalidParamsException |
| 123 | 123 | */ |
| 124 | - public function callback(null|array|ServerRequestInterface $contents = null, ?array $params = null): Collection |
|
| 124 | + public function callback(null | array | ServerRequestInterface $contents = null, ?array $params = null): Collection |
|
| 125 | 125 | { |
| 126 | 126 | $request = $this->getCallbackParams($contents); |
| 127 | 127 | |
@@ -134,7 +134,7 @@ discard block |
||
| 134 | 134 | * @throws ContainerException |
| 135 | 135 | * @throws InvalidParamsException |
| 136 | 136 | */ |
| 137 | - public function appCallback(null|array|ServerRequestInterface $contents = null, ?array $params = null): Collection |
|
| 137 | + public function appCallback(null | array | ServerRequestInterface $contents = null, ?array $params = null): Collection |
|
| 138 | 138 | { |
| 139 | 139 | $request = $this->getCallbackParams($contents); |
| 140 | 140 | |
@@ -155,7 +155,7 @@ discard block |
||
| 155 | 155 | ); |
| 156 | 156 | } |
| 157 | 157 | |
| 158 | - protected function getCallbackParams(null|array|ServerRequestInterface $contents = null): Collection |
|
| 158 | + protected function getCallbackParams(null | array | ServerRequestInterface $contents = null): Collection |
|
| 159 | 159 | { |
| 160 | 160 | if (is_array($contents)) { |
| 161 | 161 | return Collection::wrap($contents); |
@@ -61,11 +61,11 @@ discard block |
||
| 61 | 61 | $urlPath = parse_url($url, PHP_URL_PATH); |
| 62 | 62 | $urlQuery = parse_url($url, PHP_URL_QUERY); |
| 63 | 63 | |
| 64 | - return get_wechat_method($payload)."\n" |
|
| 65 | - .$urlPath.(empty($urlQuery) ? '' : '?'.$urlQuery)."\n" |
|
| 66 | - .$timestamp."\n" |
|
| 67 | - .$random."\n" |
|
| 68 | - .get_wechat_body($payload)."\n"; |
|
| 64 | + return get_wechat_method($payload) . "\n" |
|
| 65 | + .$urlPath . (empty($urlQuery) ? '' : '?' . $urlQuery) . "\n" |
|
| 66 | + .$timestamp . "\n" |
|
| 67 | + .$random . "\n" |
|
| 68 | + .get_wechat_body($payload) . "\n"; |
|
| 69 | 69 | } |
| 70 | 70 | |
| 71 | 71 | /** |
@@ -94,6 +94,6 @@ discard block |
||
| 94 | 94 | get_wechat_sign($config, $contents), |
| 95 | 95 | ); |
| 96 | 96 | |
| 97 | - return 'WECHATPAY2-SHA256-RSA2048 '.$auth; |
|
| 97 | + return 'WECHATPAY2-SHA256-RSA2048 ' . $auth; |
|
| 98 | 98 | } |
| 99 | 99 | } |
@@ -74,7 +74,7 @@ discard block |
||
| 74 | 74 | 'prepayid' => $prepayId, |
| 75 | 75 | 'package' => 'Sign=WXPay', |
| 76 | 76 | 'noncestr' => Str::random(32), |
| 77 | - 'timestamp' => time().'', |
|
| 77 | + 'timestamp' => time() . '', |
|
| 78 | 78 | ]); |
| 79 | 79 | |
| 80 | 80 | $invokeConfig->set('sign', $this->getSign($invokeConfig, $config)); |
@@ -87,10 +87,10 @@ discard block |
||
| 87 | 87 | */ |
| 88 | 88 | protected function getSign(Collection $invokeConfig, array $config): string |
| 89 | 89 | { |
| 90 | - $contents = $invokeConfig->get('appid', '')."\n" |
|
| 91 | - .$invokeConfig->get('timestamp', '')."\n" |
|
| 92 | - .$invokeConfig->get('noncestr', '')."\n" |
|
| 93 | - .$invokeConfig->get('prepayid', '')."\n"; |
|
| 90 | + $contents = $invokeConfig->get('appid', '') . "\n" |
|
| 91 | + .$invokeConfig->get('timestamp', '') . "\n" |
|
| 92 | + .$invokeConfig->get('noncestr', '') . "\n" |
|
| 93 | + .$invokeConfig->get('prepayid', '') . "\n"; |
|
| 94 | 94 | |
| 95 | 95 | return get_wechat_sign($config, $contents); |
| 96 | 96 | } |
@@ -70,9 +70,9 @@ discard block |
||
| 70 | 70 | { |
| 71 | 71 | $invokeConfig = new Config([ |
| 72 | 72 | 'appId' => $this->getAppId($payload, $config), |
| 73 | - 'timeStamp' => time().'', |
|
| 73 | + 'timeStamp' => time() . '', |
|
| 74 | 74 | 'nonceStr' => Str::random(32), |
| 75 | - 'package' => 'prepay_id='.$prepayId, |
|
| 75 | + 'package' => 'prepay_id=' . $prepayId, |
|
| 76 | 76 | 'signType' => 'RSA', |
| 77 | 77 | ]); |
| 78 | 78 | |
@@ -86,10 +86,10 @@ discard block |
||
| 86 | 86 | */ |
| 87 | 87 | protected function getSign(Collection $invokeConfig, array $config): string |
| 88 | 88 | { |
| 89 | - $contents = $invokeConfig->get('appId', '')."\n" |
|
| 90 | - .$invokeConfig->get('timeStamp', '')."\n" |
|
| 91 | - .$invokeConfig->get('nonceStr', '')."\n" |
|
| 92 | - .$invokeConfig->get('package', '')."\n"; |
|
| 89 | + $contents = $invokeConfig->get('appId', '') . "\n" |
|
| 90 | + .$invokeConfig->get('timeStamp', '') . "\n" |
|
| 91 | + .$invokeConfig->get('nonceStr', '') . "\n" |
|
| 92 | + .$invokeConfig->get('package', '') . "\n"; |
|
| 93 | 93 | |
| 94 | 94 | return get_wechat_sign($config, $contents); |
| 95 | 95 | } |
@@ -71,9 +71,9 @@ discard block |
||
| 71 | 71 | { |
| 72 | 72 | $invokeConfig = new Config([ |
| 73 | 73 | 'appId' => $this->getAppId($payload, $config, $params), |
| 74 | - 'timeStamp' => time().'', |
|
| 74 | + 'timeStamp' => time() . '', |
|
| 75 | 75 | 'nonceStr' => Str::random(32), |
| 76 | - 'package' => 'prepay_id='.$prepayId, |
|
| 76 | + 'package' => 'prepay_id=' . $prepayId, |
|
| 77 | 77 | 'signType' => 'RSA', |
| 78 | 78 | ]); |
| 79 | 79 | |
@@ -87,10 +87,10 @@ discard block |
||
| 87 | 87 | */ |
| 88 | 88 | protected function getSign(Collection $invokeConfig, array $config): string |
| 89 | 89 | { |
| 90 | - $contents = $invokeConfig->get('appId', '')."\n" |
|
| 91 | - .$invokeConfig->get('timeStamp', '')."\n" |
|
| 92 | - .$invokeConfig->get('nonceStr', '')."\n" |
|
| 93 | - .$invokeConfig->get('package', '')."\n"; |
|
| 90 | + $contents = $invokeConfig->get('appId', '') . "\n" |
|
| 91 | + .$invokeConfig->get('timeStamp', '') . "\n" |
|
| 92 | + .$invokeConfig->get('nonceStr', '') . "\n" |
|
| 93 | + .$invokeConfig->get('package', '') . "\n"; |
|
| 94 | 94 | |
| 95 | 95 | return get_wechat_sign($config, $contents); |
| 96 | 96 | } |
@@ -98,7 +98,7 @@ discard block |
||
| 98 | 98 | protected function getAppId(?Collection $payload, array $config, array $params): string |
| 99 | 99 | { |
| 100 | 100 | if (Pay::MODE_SERVICE === ($config['mode'] ?? Pay::MODE_NORMAL)) { |
| 101 | - return $payload?->get('_invoke_appid') ?? $config['sub_'.get_wechat_type_key($params)] ?? ''; |
|
| 101 | + return $payload?->get('_invoke_appid') ?? $config['sub_' . get_wechat_type_key($params)] ?? ''; |
|
| 102 | 102 | } |
| 103 | 103 | |
| 104 | 104 | return $payload?->get('_invoke_appid') ?? $config[get_wechat_type_key($params)] ?? ''; |
@@ -70,9 +70,9 @@ discard block |
||
| 70 | 70 | { |
| 71 | 71 | $invokeConfig = new Config([ |
| 72 | 72 | 'appId' => $this->getAppId($payload, $config), |
| 73 | - 'timeStamp' => time().'', |
|
| 73 | + 'timeStamp' => time() . '', |
|
| 74 | 74 | 'nonceStr' => Str::random(32), |
| 75 | - 'package' => 'prepay_id='.$prepayId, |
|
| 75 | + 'package' => 'prepay_id=' . $prepayId, |
|
| 76 | 76 | 'signType' => 'RSA', |
| 77 | 77 | ]); |
| 78 | 78 | |
@@ -86,10 +86,10 @@ discard block |
||
| 86 | 86 | */ |
| 87 | 87 | protected function getSign(Collection $invokeConfig, array $config): string |
| 88 | 88 | { |
| 89 | - $contents = $invokeConfig->get('appId', '')."\n" |
|
| 90 | - .$invokeConfig->get('timeStamp', '')."\n" |
|
| 91 | - .$invokeConfig->get('nonceStr', '')."\n" |
|
| 92 | - .$invokeConfig->get('package', '')."\n"; |
|
| 89 | + $contents = $invokeConfig->get('appId', '') . "\n" |
|
| 90 | + .$invokeConfig->get('timeStamp', '') . "\n" |
|
| 91 | + .$invokeConfig->get('nonceStr', '') . "\n" |
|
| 92 | + .$invokeConfig->get('package', '') . "\n"; |
|
| 93 | 93 | |
| 94 | 94 | return get_wechat_sign($config, $contents); |
| 95 | 95 | } |
@@ -74,7 +74,7 @@ discard block |
||
| 74 | 74 | 'prepayid' => $prepayId, |
| 75 | 75 | 'package' => 'Sign=WXPay', |
| 76 | 76 | 'noncestr' => Str::random(32), |
| 77 | - 'timestamp' => time().'', |
|
| 77 | + 'timestamp' => time() . '', |
|
| 78 | 78 | ]); |
| 79 | 79 | |
| 80 | 80 | $invokeConfig->set('sign', $this->getSign($invokeConfig, $config)); |
@@ -87,10 +87,10 @@ discard block |
||
| 87 | 87 | */ |
| 88 | 88 | protected function getSign(Collection $invokeConfig, array $config): string |
| 89 | 89 | { |
| 90 | - $contents = $invokeConfig->get('appid', '')."\n" |
|
| 91 | - .$invokeConfig->get('timestamp', '')."\n" |
|
| 92 | - .$invokeConfig->get('noncestr', '')."\n" |
|
| 93 | - .$invokeConfig->get('prepayid', '')."\n"; |
|
| 90 | + $contents = $invokeConfig->get('appid', '') . "\n" |
|
| 91 | + .$invokeConfig->get('timestamp', '') . "\n" |
|
| 92 | + .$invokeConfig->get('noncestr', '') . "\n" |
|
| 93 | + .$invokeConfig->get('prepayid', '') . "\n"; |
|
| 94 | 94 | |
| 95 | 95 | return get_wechat_sign($config, $contents); |
| 96 | 96 | } |
@@ -71,9 +71,9 @@ discard block |
||
| 71 | 71 | { |
| 72 | 72 | $invokeConfig = new Config([ |
| 73 | 73 | 'appId' => $this->getAppId($payload, $config, $params), |
| 74 | - 'timeStamp' => time().'', |
|
| 74 | + 'timeStamp' => time() . '', |
|
| 75 | 75 | 'nonceStr' => Str::random(32), |
| 76 | - 'package' => 'prepay_id='.$prepayId, |
|
| 76 | + 'package' => 'prepay_id=' . $prepayId, |
|
| 77 | 77 | 'signType' => 'RSA', |
| 78 | 78 | ]); |
| 79 | 79 | |
@@ -87,10 +87,10 @@ discard block |
||
| 87 | 87 | */ |
| 88 | 88 | protected function getSign(Collection $invokeConfig, array $config): string |
| 89 | 89 | { |
| 90 | - $contents = $invokeConfig->get('appId', '')."\n" |
|
| 91 | - .$invokeConfig->get('timeStamp', '')."\n" |
|
| 92 | - .$invokeConfig->get('nonceStr', '')."\n" |
|
| 93 | - .$invokeConfig->get('package', '')."\n"; |
|
| 90 | + $contents = $invokeConfig->get('appId', '') . "\n" |
|
| 91 | + .$invokeConfig->get('timeStamp', '') . "\n" |
|
| 92 | + .$invokeConfig->get('nonceStr', '') . "\n" |
|
| 93 | + .$invokeConfig->get('package', '') . "\n"; |
|
| 94 | 94 | |
| 95 | 95 | return get_wechat_sign($config, $contents); |
| 96 | 96 | } |
@@ -98,7 +98,7 @@ discard block |
||
| 98 | 98 | protected function getAppId(?Collection $payload, array $config, array $params): string |
| 99 | 99 | { |
| 100 | 100 | if (Pay::MODE_SERVICE === ($config['mode'] ?? Pay::MODE_NORMAL)) { |
| 101 | - return $payload?->get('_invoke_appid') ?? $config['sub_'.get_wechat_type_key($params)] ?? ''; |
|
| 101 | + return $payload?->get('_invoke_appid') ?? $config['sub_' . get_wechat_type_key($params)] ?? ''; |
|
| 102 | 102 | } |
| 103 | 103 | |
| 104 | 104 | return $payload?->get('_invoke_appid') ?? $config[get_wechat_type_key($params)] ?? ''; |