MiniOnlyContractPlugin::assembly()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 24
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 14
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 24
rs 9.7998
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yansongda\Pay\Plugin\Wechat\V2\Papay\Direct;
6
7
use Closure;
8
use Yansongda\Artful\Contract\PluginInterface;
9
use Yansongda\Artful\Direction\NoHttpRequestDirection;
10
use Yansongda\Artful\Exception\ContainerException;
11
use Yansongda\Artful\Exception\ServiceNotFoundException;
12
use Yansongda\Artful\Logger;
13
use Yansongda\Artful\Rocket;
14
15
use function Yansongda\Pay\get_provider_config;
16
use function Yansongda\Pay\get_wechat_type_key;
17
18
/**
19
 * @see https://pay.weixin.qq.com/wiki/doc/api/wxpay_v2/papay/chapter3_3.shtml
20
 */
21
class MiniOnlyContractPlugin implements PluginInterface
22
{
23
    /**
24
     * @throws ContainerException
25
     * @throws ServiceNotFoundException
26
     */
27
    public function assembly(Rocket $rocket, Closure $next): Rocket
28
    {
29
        Logger::debug('[Wechat][V2][Papay][Direct][OnlyContractPlugin] 插件开始装载', ['rocket' => $rocket]);
30
31
        $params = $rocket->getParams();
32
        $config = get_provider_config('wechat', $params);
33
        $payload = $rocket->getPayload();
34
35
        $rocket->setDirection(NoHttpRequestDirection::class)
36
            ->mergePayload([
37
                'appid' => $config[get_wechat_type_key($params)] ?? '',
38
                'mch_id' => $config['mch_id'] ?? '',
39
                'notify_url' => $payload?->get('notify_url') ?? $config['notify_url'] ?? '',
40
                'timestamp' => time(),
41
            ]);
42
43
        Logger::info('[Wechat][V2][Papay][Direct][OnlyContractPlugin] 插件装载完毕', ['rocket' => $rocket]);
44
45
        /** @var Rocket $rocket */
46
        $rocket = $next($rocket);
47
48
        $rocket->setDestination($rocket->getPayload());
49
50
        return $rocket;
51
    }
52
}
53