Skip to content

Commit

Permalink
0.0.4
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitrii-fediuk committed Sep 13, 2021
1 parent f4b96ae commit 11901f7
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 34 deletions.
25 changes: 23 additions & 2 deletions Action.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?php
namespace CanadaSatellite\Bambora;
use CanadaSatellite\Bambora\Method as M;
use Df\API\Operation;
use Magento\Payment\Model\Info as I;
use Magento\Payment\Model\InfoInterface as II;
use Magento\Quote\Model\Quote\Payment as QP;
Expand All @@ -27,17 +28,37 @@ abstract function trnType();

/**
* 2021-07-22
* @used-by check()
* @used-by ii()
* @used-by \CanadaSatellite\Bambora\Facade::m()
* @return M
*/
final function m() {return $this->_m;}

/**
* 2021-09-13
* @used-by \CanadaSatellite\Bambora\Action\Authorize::p()
* @used-by \CanadaSatellite\Bambora\Action\Capture::p()
* @used-by \CanadaSatellite\Bambora\Action\Refund::p()
* @used-by \CanadaSatellite\Bambora\Action\_Void::p()
* @return M
* @param Operation $op
* @return Operation
*/
final function m() {return $this->_m;}
final protected function check(Operation $op) {
$res = $op->res(); /** @var Response $res */
if (!$res->trnApproved()) {
$i = $this->ii(); /** @var II|I|OP $i */
$oq = $i->getOrder() ?: $i->getQuote();
$oq->addStatusToHistory($oq->getStatus(), $res->reason());
dfp_report($this->m(), ['request' => $op->req(), 'response' => $res->a()]);
df_error($res->reason());
}
return $op;
}

/**
* 2021-07-22
* @used-by check()
* @used-by o()
* @used-by \CanadaSatellite\Bambora\Action\Authorize::p()
* @used-by \CanadaSatellite\Bambora\Action\Capture::p()
Expand Down
6 changes: 1 addition & 5 deletions Action/Authorize.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,14 @@ final class Authorize extends \CanadaSatellite\Bambora\Action {
* @throws DFE
*/
function p($a) {
$op = F::p($this, F::AUTH_ONLY, $a); /** @var Operation $op */
$op = $this->check(F::p($this, F::AUTH_ONLY, $a)); /** @var Operation $op */
$res = $op->res(); /** @var Response $res */
$i = $this->ii(); /** @var II|I|OP $i */
$i->setCcApproval($res->authCode());
$i->setCcAvsStatus($res->avsResult());
$i->setCcCidStatus($res->avsResult());
ParentId::set($i, $res->trnId());
$i->setLastTransId($res->trnId());
if (!$res->trnApproved()) {
dfp_report($i, ['request' => $op->req(), 'response' => $res->a()]);
df_error($res->reason());
}
$i->setStatus(M::STATUS_APPROVED);
if ($res->trnId() != $i->getParentTransactionId()) {
$i->setTransactionId($res->trnId());
Expand Down
8 changes: 1 addition & 7 deletions Action/Capture.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,8 @@ final class Capture extends \CanadaSatellite\Bambora\Action {
function p($a) {
$i = $this->ii(); /** @var II|I|OP $i */
$type = $i->getParentTransactionId() ? F::PRIOR_AUTH_CAPTURE : F::AUTH_CAPTURE; /** @var string $type */
$op = F::p($this, $type, $a); /** @var Operation $op */
$op = $this->check(F::p($this, $type, $a)); /** @var Operation $op */
$res = $op->res(); /** @var Response $res */
if (!$res->trnApproved()) {
$oq = $i->getOrder() ?: $i->getQuote();
$oq->addStatusToHistory($oq->getStatus(), $res->reason());
dfp_report($i, ['request' => $op->req(), 'response' => $res->a()]);
df_error($res->reason());
}
$i->setStatus(M::STATUS_APPROVED);
ParentId::set($i, $res->trnId());
$i->setLastTransId($res->trnId());
Expand Down
6 changes: 1 addition & 5 deletions Action/Refund.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,8 @@ function p($a) {
$i = $this->ii(); /** @var II|I|OP $i */
# 2021-07-06 A string like «10000003».
df_assert_sne($parentId = $i->getParentTransactionId()); /** @var string $parentId */
$op = F::p($this, 'REFUND', $a); /** @var Operation $op */
$op = $this->check(F::p($this, 'REFUND', $a)); /** @var Operation $op */
$res = $op->res(); /** @var Response $res */
if (!$res->trnApproved()) {
dfp_report($i, ['request' => $op->req(), 'response' => $res->a()]);
df_error($res->reason());
}
$i->setStatus(M::STATUS_SUCCESS);
if ($res->trnId() != $parentId) {
$i->setTransactionId($res->trnId());
Expand Down
6 changes: 1 addition & 5 deletions Action/_Void.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,8 @@ function p() {
$i = $this->ii(); /** @var II|I|OP $i */
# 2021-07-06 A string like «10000003».
df_assert_sne($parentId = $i->getParentTransactionId()); /** @var string $parentId */
$op = F::p($this, F::VOID, $i->getAmountAuthorized()); /** @var Operation $op */
$op = $this->check(F::p($this, F::VOID, $i->getAmountAuthorized())); /** @var Operation $op */
$res = $op->res(); /** @var Response $res */
if (!$res->trnApproved()) {
dfp_report($i, ['request' => $op->req(), 'response' => $res->a()]);
df_error($res->reason());
}
$i->setStatus(M::STATUS_VOID);
if ($res->trnId() != $parentId) {
$i->setTransactionId($res->trnId());
Expand Down
11 changes: 2 additions & 9 deletions Response.php
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,7 @@ function messageText() {return df_prop($this);}

/**
* 2021-07-20
* @used-by \CanadaSatellite\Bambora\Method::authorize()
* @used-by \CanadaSatellite\Bambora\Method::capture()
* @used-by \CanadaSatellite\Bambora\Method::refund()
* @used-by \CanadaSatellite\Bambora\Method::void()
* @used-by \CanadaSatellite\Bambora\Action::check()
* @return string
*/
function reason() {return $this->trnApproved() ? '' : "The transaction has been declined: «{$this->messageText()}».";}
Expand All @@ -123,11 +120,7 @@ function reason() {return $this->trnApproved() ? '' : "The transaction has been
* «0 – Transaction refused, 1 – Transaction approved»
* https://support.na.bambora.com/bic/w/docs/response-variables.htm
* @used-by reason()
* @used-by \CanadaSatellite\Bambora\Facade::p()
* @used-by \CanadaSatellite\Bambora\Method::authorize()
* @used-by \CanadaSatellite\Bambora\Method::capture()
* @used-by \CanadaSatellite\Bambora\Method::refund()
* @used-by \CanadaSatellite\Bambora\Method::void()
* @used-by \CanadaSatellite\Bambora\Action::check()
* @return bool
*/
function trnApproved() {return !!df_prop($this);}
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "canadasatellite/bambora"
,"version": "0.0.3"
,"version": "0.0.4"
,"description": "The Bambora North America (Beamstream) payment module for canadasatellite.ca (Magento 2)"
,"type": "magento2-module"
,"homepage": "https://github.com/canadasatellite-ca/bambora"
Expand Down

0 comments on commit 11901f7

Please sign in to comment.