PartFire /
MangoPayBundle
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 | // Hook Status |
||
| 70 | const HOOK_NEW = "HOOK_NEW"; |
||
| 71 | const HOOK_IN_PROGRESS = "HOOK_IN_PROGRESS"; |
||
| 72 | const HOOK_ACTIONED = "HOOK_ACTIONED"; |
||
| 73 | |||
| 74 | // Hook Variables |
||
| 75 | // https://docs.mangopay.com/endpoints/v2.01/hooks#e246_the-hook-object |
||
| 76 | const HOOK_EVENT_TYPE = "EventType"; |
||
| 77 | const HOOK_RESOURCE_ID = "RessourceId"; // Known spelling mistake in MangoPay Api |
||
| 78 | const HOOK_DATE = "Date"; |
||
| 79 | |||
| 80 | // Event types |
||
| 81 | |||
| 82 | const PAYIN_NORMAL_CREATED = "PAYIN_NORMAL_CREATED"; |
||
| 83 | const PAYIN_NORMAL_SUCCEEDED = "PAYIN_NORMAL_SUCCEEDED"; |
||
| 84 | const PAYIN_NORMAL_FAILED = "PAYIN_NORMAL_FAILED"; |
||
| 85 | |||
| 86 | const PAYOUT_NORMAL_CREATED = "PAYOUT_NORMAL_CREATED"; |
||
| 87 | const PAYOUT_NORMAL_SUCCEEDED = "PAYOUT_NORMAL_SUCCEEDED"; |
||
| 88 | const PAYOUT_NORMAL_FAILED = "PAYOUT_NORMAL_FAILED"; |
||
| 89 | |||
| 90 | const TRANSFER_NORMAL_CREATED = "TRANSFER_NORMAL_CREATED"; |
||
| 91 | const TRANSFER_NORMAL_SUCCEEDED = "TRANSFER_NORMAL_SUCCEEDED"; |
||
| 92 | const TRANSFER_NORMAL_FAILED = "TRANSFER_NORMAL_FAILED"; |
||
| 93 | |||
| 94 | const PAYIN_REFUND_CREATED = "PAYIN_REFUND_CREATED"; |
||
| 95 | const PAYIN_REFUND_SUCCEEDED = "PAYIN_REFUND_SUCCEEDED"; |
||
| 96 | const PAYIN_REFUND_FAILED = "PAYIN_REFUND_FAILED"; |
||
| 97 | |||
| 98 | const PAYOUT_REFUND_CREATED = "PAYOUT_REFUND_CREATED"; |
||
| 99 | const PAYOUT_REFUND_SUCCEEDED = "PAYOUT_REFUND_SUCCEEDED"; |
||
| 100 | const PAYOUT_REFUND_FAILED = "PAYOUT_REFUND_FAILED"; |
||
| 101 | |||
| 102 | const TRANSFER_REFUND_CREATED = "TRANSFER_REFUND_CREATED"; |
||
| 103 | const TRANSFER_REFUND_SUCCEEDED = "TRANSFER_REFUND_SUCCEEDED"; |
||
| 104 | const TRANSFER_REFUND_FAILED = "TRANSFER_REFUND_FAILED"; |
||
| 105 | |||
| 106 | const PAYIN_REPUDIATION_CREATED = "PAYIN_REPUDIATION_CREATED"; |
||
| 107 | const PAYIN_REPUDIATION_SUCCEEDED = "PAYIN_REPUDIATION_SUCCEEDED"; |
||
| 108 | const PAYIN_REPUDIATION_FAILED = "PAYIN_REPUDIATION_FAILED"; |
||
| 109 | |||
| 110 | const KYC_CREATED = "KYC_CREATED"; |
||
| 111 | const KYC_SUCCEEDED = "KYC_SUCCEEDED"; |
||
| 112 | const KYC_FAILED = "KYC_FAILED"; |
||
| 113 | const KYC_VALIDATION_ASKED = "KYC_VALIDATION_ASKED"; |
||
| 114 | |||
| 115 | const DISPUTE_DOCUMENT_CREATED = "DISPUTE_DOCUMENT_CREATED"; |
||
| 116 | const DISPUTE_DOCUMENT_VALIDATION_ASKED = "DISPUTE_DOCUMENT_VALIDATION_ASKED"; |
||
| 117 | const DISPUTE_DOCUMENT_SUCCEEDED = "DISPUTE_DOCUMENT_SUCCEEDED"; |
||
| 118 | const DISPUTE_DOCUMENT_FAILED = "DISPUTE_DOCUMENT_FAILED"; |
||
| 119 | |||
| 120 | const DISPUTE_CREATED = "DISPUTE_CREATED"; |
||
| 121 | const DISPUTE_SUBMITTED = "DISPUTE_SUBMITTED"; |
||
| 122 | const DISPUTE_ACTION_REQUIRED = "DISPUTE_ACTION_REQUIRED"; |
||
| 123 | const DISPUTE_FURTHER_ACTION_REQUIRED = "DISPUTE_FURTHER_ACTION_REQUIRED"; |
||
| 124 | const DISPUTE_CLOSED = "DISPUTE_CLOSED"; |
||
| 125 | const DISPUTE_SENT_TO_BANK = "DISPUTE_SENT_TO_BANK"; |
||
| 126 | |||
| 127 | const TRANSFER_SETTLEMENT_CREATED = "TRANSFER_SETTLEMENT_CREATED"; |
||
| 128 | const TRANSFER_SETTLEMENT_SUCCEEDED = "TRANSFER_SETTLEMENT_SUCCEEDED"; |
||
| 129 | const TRANSFER_SETTLEMENT_FAILED = "TRANSFER_SETTLEMENT_FAILED"; |
||
| 130 | |||
| 131 | const MANDATE_CREATED = "MANDATE_CREATED"; |
||
| 132 | const MANDATED_FAILED = "MANDATED_FAILED"; |
||
| 133 | const MANDATE_ACTIVATED = "MANDATE_ACTIVATED"; |
||
| 134 | const MANDATE_SUBMITTED = "MANDATE_SUBMITTED"; |
||
| 135 | |||
| 136 | const PREAUTHORIZATION_PAYMENT_WAITING = "PREAUTHORIZATION_PAYMENT_WAITING"; |
||
| 137 | // (not currently available) 'PREAUTHORIZATION_PAYMENT_EXPIRED', |
||
| 138 | const PREAUTHORIZATION_PAYMENT_CANCELED = "PREAUTHORIZATION_PAYMENT_CANCELED"; |
||
| 139 | const PREAUTHORIZATION_PAYMENT_VALIDATED = "PREAUTHORIZATION_PAYMENT_VALIDATED"; |
||
| 140 | |||
| 141 | // PAY IN Status' CREATED, SUCCEEDED, FAILED |
||
| 142 | const PAYIN_NEW = "PAY-IN-CREATED-WAITING-FOR-HOOK-UPDATE"; |
||
| 143 | const PAYIN_CREATED = "CREATED"; |
||
| 144 | const PAYIN_SUCCEEDED = "SUCCEEDED"; |
||
| 145 | const PAYIN_FAILED = "FAILED"; |
||
| 146 | |||
| 147 | |||
| 148 | |||
| 149 | public static function getErrorCodeFriendlyReason($mangoErrorCode) |
||
|
0 ignored issues
–
show
|
|||
| 150 | { |
||
| 151 | |||
| 152 | } |
||
| 153 | |||
| 154 | public static function getErrorCodeMangoPayReason($mangoErrorCode) |
||
| 155 | { |
||
| 156 | $msg = ""; |
||
|
0 ignored issues
–
show
$msg is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the Loading history...
|
|||
| 157 | switch ($mangoErrorCode) { |
||
| 158 | case "001999": |
||
| 159 | $msg = "Generic Operation error. Mangopay has no information for the bank yet."; |
||
|
0 ignored issues
–
show
$msg is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the Loading history...
|
|||
| 160 | break; |
||
| 161 | case "001001": |
||
| 162 | $msg = "Unsufficient wallet balance. The wallet balance doesn’t allow to process transaction."; |
||
|
0 ignored issues
–
show
$msg is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the Loading history...
|
|||
| 163 | break; |
||
| 164 | case "001002": |
||
| 165 | $msg = "Author is not the wallet owner. The user ID used as Author has to be the wallet owner."; |
||
|
0 ignored issues
–
show
$msg is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the Loading history...
|
|||
| 166 | break; |
||
| 167 | case "001011": |
||
| 168 | $msg = "Transaction amount is higher than maximum permitted amount."; |
||
|
0 ignored issues
–
show
$msg is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the Loading history...
|
|||
| 169 | break; |
||
| 170 | case "001012": |
||
| 171 | $msg = "Transaction amount is lower than minimum permitted amount."; |
||
|
0 ignored issues
–
show
$msg is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the Loading history...
|
|||
| 172 | break; |
||
| 173 | case "001013": |
||
| 174 | $msg = "Invalid transaction amount."; |
||
|
0 ignored issues
–
show
$msg is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the Loading history...
|
|||
| 175 | break; |
||
| 176 | case "001014": |
||
| 177 | $msg = "CreditedFunds must be more than 0 (DebitedFunds can not equal Fees)."; |
||
|
0 ignored issues
–
show
$msg is not used, you could remove the assignment.
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently. $myVar = 'Value';
$higher = false;
if (rand(1, 6) > 3) {
$higher = true;
} else {
$higher = false;
}
Both the Loading history...
|
|||
| 178 | break; |
||
| 179 | } |
||
| 180 | } |
||
| 181 | |||
| 182 | public static function getKYCRefusalArray() : array |
||
| 183 | { |
||
| 184 | return [ |
||
| 185 | self::DOCUMENT_UNREADABLE, |
||
| 186 | self::DOCUMENT_NOT_ACCEPTED, |
||
| 187 | self::DOCUMENT_HAS_EXPIRED, |
||
| 188 | self::DOCUMENT_INCOMPLETE, |
||
| 189 | self::DOCUMENT_MISSING, |
||
| 190 | self::DOCUMENT_DO_NOT_MATCH_USER_DATA, |
||
| 191 | self::DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA, |
||
| 192 | self::SPECIFIC_CASE, |
||
| 193 | self::DOCUMENT_FALSIFIED, |
||
| 194 | self::UNDERAGE_PERSON, |
||
| 195 | self::OTHER, |
||
| 196 | self::TRIGGER_PEPS, |
||
| 197 | self::TRIGGER_SANCTIONS_LISTS, |
||
| 198 | self::TRIGGER_INTERPOL |
||
| 199 | ]; |
||
| 200 | } |
||
| 201 | |||
| 202 | public static function getIncomeRangeFromId(int $id) : string |
||
| 203 | { |
||
| 204 | switch ($id) { |
||
| 205 | case 1: |
||
| 206 | $range = "incomes <18K€"; |
||
| 207 | break; |
||
| 208 | case 2: |
||
| 209 | $range = "incomes between 18 and 30K€"; |
||
| 210 | break; |
||
| 211 | case 3: |
||
| 212 | $range = "incomes between 30 and 50K€"; |
||
| 213 | break; |
||
| 214 | case 4: |
||
| 215 | $range = "incomes between 50 and 80K€"; |
||
| 216 | break; |
||
| 217 | case 5: |
||
| 218 | $range = "incomes between 80 and 120K€"; |
||
| 219 | break; |
||
| 220 | case 6: |
||
| 221 | $range = "incomes>120K€"; |
||
| 222 | break; |
||
| 223 | default: |
||
| 224 | $range = "Unknown range"; |
||
| 225 | } |
||
| 226 | |||
| 227 | return $range; |
||
| 228 | } |
||
| 229 | |||
| 230 | public static function isPersonTypeOk($personType) |
||
| 231 | { |
||
| 232 | return in_array($personType, self::getPersonTypeArray()); |
||
| 233 | } |
||
| 234 | |||
| 235 | public static function getPersonTypeArray() |
||
| 236 | { |
||
| 237 | return [ |
||
| 238 | self::NATURAL_PERSON_TYPE, |
||
| 239 | self::LEGAL_PERSON_TYPE |
||
| 240 | ]; |
||
| 241 | } |
||
| 242 | |||
| 243 | public static function isDocumentTypeOk($documentType) |
||
| 244 | { |
||
| 245 | return in_array($documentType, self::getDocumentTypeArray()); |
||
| 246 | } |
||
| 247 | |||
| 248 | public static function getDocumentTypeArray() |
||
| 249 | { |
||
| 250 | return [ |
||
| 251 | self::IDENTITY_PROOF, |
||
| 252 | self::REGISTRATION_PROOF, |
||
| 253 | self::ARTICLES_OF_ASSOCIATION, |
||
| 254 | self::SHAREHOLDER_DECLARATION, |
||
| 255 | self::ADDRESS_PROOF |
||
| 256 | ]; |
||
| 257 | } |
||
| 258 | |||
| 259 | // https://docs.mangopay.com/endpoints/v2.01/hooks#e246_the-hook-object |
||
| 260 | // 16th Jan 2017 |
||
| 261 | |||
| 262 | public static function isEventTypeOk($eventType) |
||
| 263 | { |
||
| 264 | return in_array($eventType, self::getAllEventTypes()); |
||
| 265 | } |
||
| 266 | |||
| 267 | public static function isEventTypeToDoWithKYC($eventType) |
||
| 268 | { |
||
| 269 | return substr($eventType, 0, 4) == "KYC_"; |
||
| 270 | } |
||
| 271 | |||
| 272 | public static function isEventTypeToDoWithPayIn($eventType) |
||
| 273 | { |
||
| 274 | return substr($eventType, 0, 6) == "PAYIN_"; |
||
| 275 | } |
||
| 276 | |||
| 277 | public static function getAllEventTypes() |
||
| 278 | { |
||
| 279 | return [ |
||
| 280 | self::PAYIN_NORMAL_CREATED, |
||
| 281 | self::PAYIN_NORMAL_SUCCEEDED, |
||
| 282 | self::PAYIN_NORMAL_FAILED, |
||
| 283 | |||
| 284 | self::PAYOUT_NORMAL_CREATED, |
||
| 285 | self::PAYOUT_NORMAL_SUCCEEDED, |
||
| 286 | self::PAYOUT_NORMAL_FAILED, |
||
| 287 | |||
| 288 | self::TRANSFER_NORMAL_CREATED, |
||
| 289 | self::TRANSFER_NORMAL_SUCCEEDED, |
||
| 290 | self::TRANSFER_NORMAL_FAILED, |
||
| 291 | |||
| 292 | self::PAYIN_REFUND_CREATED, |
||
| 293 | self::PAYIN_REFUND_SUCCEEDED, |
||
| 294 | self::PAYIN_REFUND_FAILED, |
||
| 295 | |||
| 296 | self::PAYOUT_REFUND_CREATED, |
||
| 297 | self::PAYOUT_REFUND_SUCCEEDED, |
||
| 298 | self::PAYOUT_REFUND_FAILED, |
||
| 299 | |||
| 300 | self::TRANSFER_REFUND_CREATED, |
||
| 301 | self::TRANSFER_REFUND_SUCCEEDED, |
||
| 302 | self::TRANSFER_REFUND_FAILED, |
||
| 303 | |||
| 304 | self::PAYIN_REPUDIATION_CREATED, |
||
| 305 | self::PAYIN_REPUDIATION_SUCCEEDED, |
||
| 306 | self::PAYIN_REPUDIATION_FAILED, |
||
| 307 | |||
| 308 | self::KYC_CREATED, |
||
| 309 | self::KYC_SUCCEEDED, |
||
| 310 | self::KYC_FAILED, |
||
| 311 | self::KYC_VALIDATION_ASKED, |
||
| 312 | |||
| 313 | self::DISPUTE_DOCUMENT_CREATED, |
||
| 314 | self::DISPUTE_DOCUMENT_VALIDATION_ASKED, |
||
| 315 | self::DISPUTE_DOCUMENT_SUCCEEDED, |
||
| 316 | self::DISPUTE_DOCUMENT_FAILED, |
||
| 317 | |||
| 318 | self::DISPUTE_CREATED, |
||
| 319 | self::DISPUTE_SUBMITTED, |
||
| 320 | self::DISPUTE_ACTION_REQUIRED, |
||
| 321 | self::DISPUTE_FURTHER_ACTION_REQUIRED, |
||
| 322 | self::DISPUTE_CLOSED, |
||
| 323 | self::DISPUTE_SENT_TO_BANK, |
||
| 324 | |||
| 325 | self::TRANSFER_SETTLEMENT_CREATED, |
||
| 326 | self::TRANSFER_SETTLEMENT_SUCCEEDED, |
||
| 327 | self::TRANSFER_SETTLEMENT_FAILED, |
||
| 328 | |||
| 329 | self::MANDATE_CREATED, |
||
| 330 | self::MANDATED_FAILED, |
||
| 331 | self::MANDATE_ACTIVATED, |
||
| 332 | self::MANDATE_SUBMITTED, |
||
| 333 | |||
| 334 | self::PREAUTHORIZATION_PAYMENT_WAITING, |
||
| 335 | // (not currently available) 'PREAUTHORIZATION_PAYMENT_EXPIRED', |
||
| 336 | self::PREAUTHORIZATION_PAYMENT_CANCELED, |
||
| 337 | self::PREAUTHORIZATION_PAYMENT_VALIDATED |
||
| 338 | |||
| 339 | ]; |
||
| 340 | } |
||
| 341 | } |
This check looks from parameters that have been defined for a function or method, but which are not used in the method body.