PaymentAuthorizations::voidAuthorizedPayment()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 7
rs 10
1
<?php
2
3
namespace Srmklive\PayPal\Traits\PayPalAPI;
4
5
trait PaymentAuthorizations
6
{
7
    /**
8
     * Show details for authorized payment.
9
     *
10
     * @param string $authorization_id
11
     *
12
     * @throws \Throwable
13
     *
14
     * @return array|\Psr\Http\Message\StreamInterface|string
15
     *
16
     * @see https://developer.paypal.com/docs/api/payments/v2/#authorizations_get
17
     */
18
    public function showAuthorizedPaymentDetails(string $authorization_id)
19
    {
20
        $this->apiEndPoint = "v2/payments/authorizations/{$authorization_id}";
21
22
        $this->verb = 'get';
23
24
        return $this->doPayPalRequest();
25
    }
26
27
    /**
28
     * Capture an authorized payment.
29
     *
30
     * @param string $authorization_id
31
     * @param string $invoice_id
32
     * @param float  $amount
33
     * @param string $note
34
     *
35
     * @throws \Throwable
36
     *
37
     * @return array|\Psr\Http\Message\StreamInterface|string
38
     *
39
     * @see https://developer.paypal.com/docs/api/payments/v2/#authorizations_capture
40
     */
41
    public function captureAuthorizedPayment(string $authorization_id, string $invoice_id, float $amount, string $note)
42
    {
43
        $this->apiEndPoint = "v2/payments/authorizations/{$authorization_id}/capture";
44
45
        $this->options['json'] = [
46
            'amount' => [
47
                'value'         => $amount,
48
                'currency_code' => $this->currency,
49
            ],
50
            'invoice_id'    => $invoice_id,
51
            'note_to_payer' => $note,
52
            'final_capture' => true,
53
        ];
54
55
        $this->verb = 'post';
56
57
        return $this->doPayPalRequest();
58
    }
59
60
    /**
61
     * Reauthorize an authorized payment.
62
     *
63
     * @param string $authorization_id
64
     * @param float  $amount
65
     *
66
     * @throws \Throwable
67
     *
68
     * @return array|\Psr\Http\Message\StreamInterface|string
69
     *
70
     * @see https://developer.paypal.com/docs/api/payments/v2/#authorizations_reauthorize
71
     */
72
    public function reAuthorizeAuthorizedPayment(string $authorization_id, float $amount)
73
    {
74
        $this->apiEndPoint = "v2/payments/authorizations/{$authorization_id}/reauthorize";
75
76
        $this->options['json'] = [
77
            'amount' => [
78
                'value'         => $amount,
79
                'currency_code' => $this->currency,
80
            ],
81
        ];
82
83
        $this->verb = 'post';
84
85
        return $this->doPayPalRequest();
86
    }
87
88
    /**
89
     * Void an authorized payment.
90
     *
91
     * @param string $authorization_id
92
     *
93
     * @throws \Throwable
94
     *
95
     * @return array|\Psr\Http\Message\StreamInterface|string
96
     *
97
     * @see https://developer.paypal.com/docs/api/payments/v2/#authorizations_void
98
     */
99
    public function voidAuthorizedPayment(string $authorization_id)
100
    {
101
        $this->apiEndPoint = "v2/payments/authorizations/{$authorization_id}/void";
102
103
        $this->verb = 'post';
104
105
        return $this->doPayPalRequest(false);
106
    }
107
}
108