Code Duplication    Length = 13-16 lines in 4 locations

src/Gateways/Alipay/AppGateway.php 1 location

@@ 24-36 (lines=13) @@
21
     *
22
     * @return Response
23
     */
24
    public function pay($endpoint, array $payload): Response
25
    {
26
        $payload['method'] = 'alipay.trade.app.pay';
27
        $payload['biz_content'] = json_encode(array_merge(
28
            json_decode($payload['biz_content'], true),
29
            ['product_code' => 'QUICK_MSECURITY_PAY']
30
        ));
31
        $payload['sign'] = Support::generateSign($payload);
32
33
        Events::dispatch(Events::PAY_STARTED, new Events\PayStarted('Alipay', 'App', $endpoint, $payload));
34
35
        return Response::create(http_build_query($payload));
36
    }
37
}
38

src/Gateways/Alipay/PosGateway.php 1 location

@@ 28-43 (lines=16) @@
25
     *
26
     * @return Collection
27
     */
28
    public function pay($endpoint, array $payload): Collection
29
    {
30
        $payload['method'] = 'alipay.trade.pay';
31
        $payload['biz_content'] = json_encode(array_merge(
32
            json_decode($payload['biz_content'], true),
33
            [
34
                'product_code' => 'FACE_TO_FACE_PAYMENT',
35
                'scene'        => 'bar_code',
36
            ]
37
        ));
38
        $payload['sign'] = Support::generateSign($payload);
39
40
        Events::dispatch(Events::PAY_STARTED, new Events\PayStarted('Alipay', 'Pos', $endpoint, $payload));
41
42
        return Support::requestApi($payload);
43
    }
44
}
45

src/Gateways/Alipay/ScanGateway.php 1 location

@@ 28-40 (lines=13) @@
25
     *
26
     * @return Collection
27
     */
28
    public function pay($endpoint, array $payload): Collection
29
    {
30
        $payload['method'] = 'alipay.trade.precreate';
31
        $payload['biz_content'] = json_encode(array_merge(
32
            json_decode($payload['biz_content'], true),
33
            ['product_code' => '']
34
        ));
35
        $payload['sign'] = Support::generateSign($payload);
36
37
        Events::dispatch(Events::PAY_STARTED, new Events\PayStarted('Alipay', 'Scan', $endpoint, $payload));
38
39
        return Support::requestApi($payload);
40
    }
41
}
42

src/Gateways/Alipay/TransferGateway.php 1 location

@@ 28-40 (lines=13) @@
25
     *
26
     * @return Collection
27
     */
28
    public function pay($endpoint, array $payload): Collection
29
    {
30
        $payload['method'] = 'alipay.fund.trans.toaccount.transfer';
31
        $payload['biz_content'] = json_encode(array_merge(
32
            json_decode($payload['biz_content'], true),
33
            ['product_code' => '']
34
        ));
35
        $payload['sign'] = Support::generateSign($payload);
36
37
        Events::dispatch(Events::PAY_STARTED, new Events\PayStarted('Alipay', 'Transfer', $endpoint, $payload));
38
39
        return Support::requestApi($payload);
40
    }
41
42
    /**
43
     * Find.