Passed
Push — master ( a6828c...85a041 )
by Carl
03:19
created

MangoPayConstants.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * Created by Graham Owens ([email protected])
4
 * Company: PartFire Ltd (www.partfire.co.uk)
5
 * Console: Discovery
6
 *
7
 * User:    gra
8
 * Date:    31/12/16
9
 * Time:    00:53
10
 * Project: PartFire MangoPay Bundle
11
 * File:    MangoPayConstants.php
12
 *
13
 **/
14
15
namespace PartFire\MangoPayBundle;
16
17
18
class MangoPayConstants
19
{
20
    const       NATURAL_PERSON_TYPE                 = 'NATURAL';
21
    const       LEGAL_PERSON_TYPE                   = 'LEGAL';
22
23
    //  https://docs.mangopay.com/endpoints/v2.01/users#e259_create-a-legal-user
24
25
    //  May also help https://www.gov.uk/business-legal-structures/overview
26
27
    const       LEGAL_PERSON_TYPE_SOLETRADER        = 'SOLETRADER';
28
    const       LEGAL_PERSON_TYPE_ORGANISATION      = 'ORGANIZATION';
29
    const       LEGAL_PERSON_TYPE_BUSINESS          = 'BUSINESS';
30
31
    //  https://docs.mangopay.com/endpoints/v2.01/users#e253_the-user-object
32
33
    const       KYC_LEVEL_LIGHT                     = 'LIGHT';
34
    const       KYC_LEVEL_REGULAR                   = 'REGULAR';
35
36
    // https://docs.mangopay.com/endpoints/v2/users#e254_the-natural-user-object
37
38
    // KYC Doc types = https://docs.mangopay.com/endpoints/v2.01/kyc-documents#e205_create-a-kyc-document
39
    const       IDENTITY_PROOF                      = 'IDENTITY_PROOF';
40
    const       REGISTRATION_PROOF                  = 'REGISTRATION_PROOF';
41
    const       ARTICLES_OF_ASSOCIATION             = 'ARTICLES_OF_ASSOCIATION';
42
    const       SHAREHOLDER_DECLARATION             = 'SHAREHOLDER_DECLARATION';
43
    const       ADDRESS_PROOF                       = 'ADDRESS_PROOF';
44
45
    // KYC Doc Refusal reasons
46
47
    const       DOCUMENT_UNREADABLE                 = 'DOCUMENT_UNREADABLE';
48
    const       DOCUMENT_NOT_ACCEPTED               = 'DOCUMENT_NOT_ACCEPTED';
49
    const       DOCUMENT_HAS_EXPIRED                = 'DOCUMENT_HAS_EXPIRED';
50
    const       DOCUMENT_INCOMPLETE                 = 'DOCUMENT_INCOMPLETE';
51
    const       DOCUMENT_MISSING                    = 'DOCUMENT_MISSING';
52
    const       DOCUMENT_DO_NOT_MATCH_USER_DATA     = 'DOCUMENT_DO_NOT_MATCH_USER_DATA';
53
    const       DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA  = 'DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA';
54
    const       SPECIFIC_CASE                       = 'SPECIFIC_CASE';
55
    const       DOCUMENT_FALSIFIED                  = 'DOCUMENT_FALSIFIED';
56
    const       UNDERAGE_PERSON                     = 'UNDERAGE_PERSON';
57
    const       OTHER                               = 'OTHER';
58
    const       TRIGGER_PEPS                        = 'TRIGGER_PEPS';
59
    const       TRIGGER_SANCTIONS_LISTS             = 'TRIGGER_SANCTIONS_LISTS';
60
    const       TRIGGER_INTERPOL                    = 'TRIGGER_INTERPOL';
61
62
    // KYC Doc Status
63
64
    const       CREATED                             = 'CREATED';
65
    const       VALIDATION_ASKED                    = 'VALIDATION_ASKED';
66
    const       VALIDATED                           = 'VALIDATED';
67
    const       REFUSED                             = 'REFUSED';
68
69
    public static function getKYCRefusalArray() : array
70
    {
71
        return [
72
            self::DOCUMENT_UNREADABLE,
73
            self::DOCUMENT_NOT_ACCEPTED,
74
            self::DOCUMENT_HAS_EXPIRED,
75
            self::DOCUMENT_INCOMPLETE,
76
            self::DOCUMENT_MISSING,
77
            self::DOCUMENT_DO_NOT_MATCH_USER_DATA,
78
            self::DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA,
79
            self::SPECIFIC_CASE,
80
            self::DOCUMENT_FALSIFIED,
81
            self::UNDERAGE_PERSON,
82
            self::OTHER,
83
            self::TRIGGER_PEPS,
84
            self::TRIGGER_SANCTIONS_LISTS,
85
            self::TRIGGER_INTERPOL
86
        ];
87
    }
88
89
    public static function getIncomeRangeFromId(int $id) : string
90
    {
91
        switch ($id) {
92
            case 1:
93
                $range = "incomes <18K€";
94
                break;
95
            case 2:
96
                $range = "incomes between 18 and 30K€";
97
                break;
98
            case 3:
99
                $range = "incomes between 30 and 50K€";
100
                break;
101
            case 4:
102
                $range = "incomes between 50 and 80K€";
103
                break;
104
            case 5:
105
                $range = "incomes between 80 and 120K€";
106
                break;
107
            case 6:
108
                $range = "incomes>120K€";
109
                break;
110
            default:
111
                $range = "Unknown range";
112
        }
113
114
        return $range;
115
    }
116
117
    public static function isPersonTypeOk($personType)
118
    {
119
        return in_array($personType, self::getPersonTypeArray());
120
    }
121
122
    public static function getPersonTypeArray()
123
    {
124
        return [
125
            self::NATURAL_PERSON_TYPE,
126
            self::LEGAL_PERSON_TYPE
127
        ];
128
    }
129
130
    public static function isDocumentTypeOk($documentType)
131
    {
132
        return in_array($documentType, self::getDocumentTypeArray());
133
    }
134
135
    public static function getDocumentTypeArray()
136
    {
137
        return [
138
            self::IDENTITY_PROOF,
139
            self::REGISTRATION_PROOF,
140
            self::ARTICLES_OF_ASSOCIATION,
141
            self::SHAREHOLDER_DECLARATION,
142
            self::ADDRESS_PROOF
143
        ];
144
    }
145
146
    //  https://docs.mangopay.com/endpoints/v2.01/hooks#e246_the-hook-object
147
    // 16th Jan 2017
148
149
    public static function getAllEventTypes()
150
    {
151
        return [
152
            'PAYIN_NORMAL_CREATED',
153
            'PAYIN_NORMAL_SUCCEEDED',
154
            'PAYIN_NORMAL_FAILED',
155
156
            'PAYOUT_NORMAL_CREATED',
157
            'PAYOUT_NORMAL_SUCCEEDED',
158
            'PAYOUT_NORMAL_FAILED',
159
160
            'TRANSFER_NORMAL_CREATED',
161
            'TRANSFER_NORMAL_SUCCEEDED',
162
            'TRANSFER_NORMAL_FAILED',
163
164
            'PAYIN_REFUND_CREATED',
165
            'PAYIN_REFUND_SUCCEEDED',
166
            'PAYIN_REFUND_FAILED',
167
168
            'PAYOUT_REFUND_CREATED',
169
            'PAYOUT_REFUND_SUCCEEDED',
170
            'PAYOUT_REFUND_FAILED',
171
172
            'TRANSFER_REFUND_CREATED',
173
            'TRANSFER_REFUND_SUCCEEDED',
174
            'TRANSFER_REFUND_FAILED',
175
176
            'PAYIN_REPUDIATION_CREATED',
177
            'PAYIN_REPUDIATION_SUCCEEDED',
178
            'PAYIN_REPUDIATION_FAILED',
179
180
            'KYC_CREATED',
181
            'KYC_SUCCEEDED',
182
            'KYC_FAILED',
183
            'KYC_VALIDATION_ASKED',
184
185
            'DISPUTE_DOCUMENT_CREATED',
186
            'DISPUTE_DOCUMENT_VALIDATION_ASKED',
187
            'DISPUTE_DOCUMENT_SUCCEEDED',
188
            'DISPUTE_DOCUMENT_FAILED',
189
190
            'DISPUTE_CREATED',
191
            'DISPUTE_SUBMITTED',
192
            'DISPUTE_ACTION_REQUIRED',
193
            'DISPUTE_FURTHER_ACTION_REQUIRED',
194
            'DISPUTE_CLOSED',
195
            'DISPUTE_SENT_TO_BANK',
196
197
            'TRANSFER_SETTLEMENT_CREATED',
198
            'TRANSFER_SETTLEMENT_SUCCEEDED',
199
            'TRANSFER_SETTLEMENT_FAILED',
200
201
            'MANDATE_CREATED',
202
            'MANDATED_FAILED',
203
            'MANDATE_ACTIVATED',
204
            'MANDATE_SUBMITTED',
205
206
            'PREAUTHORIZATION_PAYMENT_WAITING',
207
            // (not currently available) 'PREAUTHORIZATION_PAYMENT_EXPIRED',
0 ignored issues
show
Unused Code Comprehensibility introduced by
37% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
208
            'PREAUTHORIZATION_PAYMENT_CANCELED',
209
            'PREAUTHORIZATION_PAYMENT_VALIDATED',
210
211
        ];
212
    }
213
}