Skip to content

Commit

Permalink
DEV-1038: Chargeback codes (#28)
Browse files Browse the repository at this point in the history
* Typos

* Nice

* Pulse

* Star

* Spaces
  • Loading branch information
Jleagle authored Feb 6, 2025
1 parent b8dce2c commit cb14506
Show file tree
Hide file tree
Showing 9 changed files with 155 additions and 14 deletions.
6 changes: 3 additions & 3 deletions src/Finance/Chargeback/ChargebackReason.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ class ChargebackReason implements ChargebackReasonInterface

/**
* @param $code
* @param string $descripton
* @param string $description
* @param string $category
*
* @return ChargebackReason
*/
public static function create($code, $descripton = '', $category = ChargebackCategory::OTHER)
public static function create($code, $description = '', $category = ChargebackCategory::OTHER)
{
$reason = new self();
$reason->code = $code;
$reason->description = $descripton;
$reason->description = $description;
$reason->category = $category;
return $reason;
}
Expand Down
22 changes: 22 additions & 0 deletions src/Finance/Chargeback/ChargebackReasonHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
use Packaged\Rwd\Finance\Chargeback\Reasons\AmericanExpressChargebackReason;
use Packaged\Rwd\Finance\Chargeback\Reasons\DiscoverCardChargebackReason;
use Packaged\Rwd\Finance\Chargeback\Reasons\MasterCardChargebackReason;
use Packaged\Rwd\Finance\Chargeback\Reasons\NyceChargebackReason;
use Packaged\Rwd\Finance\Chargeback\Reasons\PulseChargebackReason;
use Packaged\Rwd\Finance\Chargeback\Reasons\StarChargebackReason;
use Packaged\Rwd\Finance\Chargeback\Reasons\VisaChargebackReason;

class ChargebackReasonHelper
Expand Down Expand Up @@ -140,6 +143,25 @@ public static function fromCode($value)
case AmericanExpressChargebackReason::RSN_FR4:
case AmericanExpressChargebackReason::RSN_FR6:
return AmericanExpressChargebackReason::create($value);

case NyceChargebackReason::RSN_CC:
case NyceChargebackReason::RSN_UF:
return NyceChargebackReason::create($value);

case PulseChargebackReason::RSN_4537:
case PulseChargebackReason::RSN_4752:
case PulseChargebackReason::RSN_4866:
case PulseChargebackReason::RSN_4867:
case PulseChargebackReason::RSN_4868:
return PulseChargebackReason::create($value);

case StarChargebackReason::RSN_20:
case StarChargebackReason::RSN_30:
case StarChargebackReason::RSN_40:
case StarChargebackReason::RSN_50:
case StarChargebackReason::RSN_60:
case StarChargebackReason::RSN_65:
return StarChargebackReason::create($value);
}

return ChargebackReason::create($value, 'Unknown Reason');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ class AmericanExpressChargebackReason extends ChargebackReason
const RSN_FR4 = 'FR4';
const RSN_FR6 = 'FR6';

public static function create($code, $descripton = '', $category = ChargebackCategory::OTHER)
public static function create($code, $description = '', $category = ChargebackCategory::OTHER)
{
$reason = parent::create($code, $descripton, $category);
$reason = parent::create($code, $description, $category);
switch($code)
{
case self::RSN_UA01:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,9 @@ class DiscoverCardChargebackReason extends ChargebackReason
const RSN_UA38 = 'UA38';
const RSN_UA99 = 'UA99';

public static function create(
$code, $descripton = '', $category = ChargebackCategory::OTHER
)
public static function create($code, $description = '', $category = ChargebackCategory::OTHER)
{
$reason = parent::create($code, $descripton, $category);
$reason = parent::create($code, $description, $category);
switch($code)
{
case self::RSN_5:
Expand Down
4 changes: 2 additions & 2 deletions src/Finance/Chargeback/Reasons/MasterCardChargebackReason.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ class MasterCardChargebackReason extends ChargebackReason
const RSN_4859 = '4859';
const RSN_4860 = '4860';

public static function create($code, $descripton = '', $category = ChargebackCategory::OTHER)
public static function create($code, $description = '', $category = ChargebackCategory::OTHER)
{
$reason = parent::create($code, $descripton, $category);
$reason = parent::create($code, $description, $category);
switch($code)
{
case self::RSN_4837:
Expand Down
29 changes: 29 additions & 0 deletions src/Finance/Chargeback/Reasons/NyceChargebackReason.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace Packaged\Rwd\Finance\Chargeback\Reasons;

use Packaged\Rwd\Finance\Chargeback\ChargebackCategory;
use Packaged\Rwd\Finance\Chargeback\ChargebackReason;

class NyceChargebackReason extends ChargebackReason
{
const RSN_CC = 'CC';
const RSN_UF = 'UF';

public static function create($code, $description = '', $category = ChargebackCategory::OTHER)
{
$reason = parent::create($code, $description, $category);
switch($code)
{
case self::RSN_CC:
$reason->description = 'Chip Counterfeit';
$reason->category = ChargebackCategory::FRAUD;
break;
case self::RSN_UF:
$reason->description = 'Unauthorized Fraud';
$reason->category = ChargebackCategory::FRAUD;
break;
}
return $reason;
}
}
44 changes: 44 additions & 0 deletions src/Finance/Chargeback/Reasons/PulseChargebackReason.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php

namespace Packaged\Rwd\Finance\Chargeback\Reasons;

use Packaged\Rwd\Finance\Chargeback\ChargebackCategory;
use Packaged\Rwd\Finance\Chargeback\ChargebackReason;

class PulseChargebackReason extends ChargebackReason
{
const RSN_4537 = '4537';
const RSN_4752 = '4752';
const RSN_4866 = '4866';
const RSN_4867 = '4867';
const RSN_4868 = '4868';

public static function create($code, $description = '', $category = ChargebackCategory::OTHER)
{
$reason = parent::create($code, $description, $category);
switch($code)
{
case self::RSN_4537:
$reason->description = 'Card Present Transaction';
$reason->category = ChargebackCategory::FRAUD;
break;
case self::RSN_4752:
$reason->description = 'Transaction Not Recognized';
$reason->category = ChargebackCategory::OTHER;
break;
case self::RSN_4866:
$reason->description = 'Chip Card Counterfeit transaction';
$reason->category = ChargebackCategory::FRAUD;
break;
case self::RSN_4867:
$reason->description = 'Lost/Stolen Chip Card Transaction';
$reason->category = ChargebackCategory::FRAUD;
break;
case self::RSN_4868:
$reason->description = 'Card Not Present Transaction';
$reason->category = ChargebackCategory::FRAUD;
break;
}
return $reason;
}
}
49 changes: 49 additions & 0 deletions src/Finance/Chargeback/Reasons/StarChargebackReason.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

namespace Packaged\Rwd\Finance\Chargeback\Reasons;

use Packaged\Rwd\Finance\Chargeback\ChargebackCategory;
use Packaged\Rwd\Finance\Chargeback\ChargebackReason;

class StarChargebackReason extends ChargebackReason
{
const RSN_20 = '20';
const RSN_30 = '30';
const RSN_40 = '40';
const RSN_50 = '50';
const RSN_60 = '60';
const RSN_65 = '65';

public static function create($code, $description = '', $category = ChargebackCategory::OTHER)
{
$reason = parent::create($code, $description, $category);
switch($code)
{
case self::RSN_20:
$reason->description = 'Authorization';
$reason->category = ChargebackCategory::AUTHORIZATION;
break;
case self::RSN_30:
$reason->description = 'Processing Error';
$reason->category = ChargebackCategory::PROCESSING;
break;
case self::RSN_40:
$reason->description = 'Cardholder Dispute';
$reason->category = ChargebackCategory::CONSUMER;
break;
case self::RSN_50:
$reason->description = 'Cancellations and Returns';
$reason->category = ChargebackCategory::CONSUMER;
break;
case self::RSN_60:
$reason->description = 'Unauthorized/Fraud Dispute';
$reason->category = ChargebackCategory::AUTHORIZATION;
break;
case self::RSN_65:
$reason->description = 'Counterfeit Chip Card Fraud';
$reason->category = ChargebackCategory::FRAUD;
break;
}
return $reason;
}
}
5 changes: 2 additions & 3 deletions src/Finance/Chargeback/Reasons/VisaChargebackReason.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,11 @@ class VisaChargebackReason extends ChargebackReason
const RSN_85 = '85';
const RSN_90 = '90';

public static function create($code, $descripton = '', $category = ChargebackCategory::OTHER)
public static function create($code, $description = '', $category = ChargebackCategory::OTHER)
{
$reason = parent::create($code, $descripton, $category);
$reason = parent::create($code, $description, $category);
switch($code)
{

case self::RSN_10_1:
$reason->description = 'EMV Liability Shift Counterfeit Fraud';
$reason->category = ChargebackCategory::FRAUD;
Expand Down

0 comments on commit cb14506

Please sign in to comment.