From 46f14392f5fbc05c7a3447cfec0a01a9216a0297 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 16 Aug 2021 19:02:21 +1000 Subject: [PATCH 1/2] Process payments with eWay --- app/PaymentDrivers/Eway/CreditCard.php | 32 ++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/app/PaymentDrivers/Eway/CreditCard.php b/app/PaymentDrivers/Eway/CreditCard.php index 3338c8aaf5b9..0eb253fa5e10 100644 --- a/app/PaymentDrivers/Eway/CreditCard.php +++ b/app/PaymentDrivers/Eway/CreditCard.php @@ -178,9 +178,37 @@ class CreditCard } - +/* +array:9 [▼ + "_token" => "RpkUNg0gHYfzLKPCJG3EtmshGiwDUeytRG53b1Or" + "gateway_response" => null + "store_card" => true + "payment_hash" => "1wC7J7Jo1jagV5oBaWSxz7b2lSLsvVMp" + "company_gateway_id" => "6" + "payment_method_id" => "1" + "token" => null + "securefieldcode" => "F9802rbHYa0St-w3QpBXvNaiNFMNhmY7OmZimH-HROUzS1K0niXOlqXUzugz4mnTqJVqK" + "q" => "/client/payments/process/response" +] + */ public function paymentResponse($request) { - + dd($request->all()); + + $transaction = [ + 'Payment' => [ + 'TotalAmount' => 1000, + ], + 'TransactionType' => \Eway\Rapid\Enum\TransactionType::PURCHASE, + 'SecuredCardData' => '44DD7jYYyRgaQnVibOAsYbbFIYmSXbS6hmTxosAhG6CK1biw=', + ]; + + $response = $client->createTransaction(\Eway\Rapid\Enum\ApiMethod::DIRECT, $transaction); + } + + + private function convertAmountForEway($amount) + { + } } \ No newline at end of file From 6b3938dfb41f7d46614c3e160a591e4e7e715208 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 18 Aug 2021 13:03:38 +1000 Subject: [PATCH 2/2] Working on eWay --- app/PaymentDrivers/Eway/CreditCard.php | 33 +++++++++++++++++++++----- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/app/PaymentDrivers/Eway/CreditCard.php b/app/PaymentDrivers/Eway/CreditCard.php index 0eb253fa5e10..37ec91d565e2 100644 --- a/app/PaymentDrivers/Eway/CreditCard.php +++ b/app/PaymentDrivers/Eway/CreditCard.php @@ -193,22 +193,43 @@ array:9 [▼ */ public function paymentResponse($request) { - dd($request->all()); + $state = [ + 'server_response' => $request->all(), + ]; + + $this->eway_driver->payment_hash->data = array_merge((array) $this->eway_driver->payment_hash->data, $state); + $this->eway_driver->payment_hash->save(); $transaction = [ 'Payment' => [ - 'TotalAmount' => 1000, + 'TotalAmount' => $this->convertAmountForEway(), ], 'TransactionType' => \Eway\Rapid\Enum\TransactionType::PURCHASE, - 'SecuredCardData' => '44DD7jYYyRgaQnVibOAsYbbFIYmSXbS6hmTxosAhG6CK1biw=', + 'SecuredCardData' => $request->input('securefieldcode'), ]; - $response = $client->createTransaction(\Eway\Rapid\Enum\ApiMethod::DIRECT, $transaction); + $response = $this->eway_driver->init()->eway->createTransaction(\Eway\Rapid\Enum\ApiMethod::DIRECT, $transaction); + +dd($response); + + $response_status = ErrorCode::getStatus($response->ResponseMessage); + + if(!$response_status['success']) + throw new PaymentFailed($response_status['message'], 400); + + } - private function convertAmountForEway($amount) + private function convertAmountForEway() { - + + $amount = $this->eway_driver->payment_hash->data->amount_with_fee; + + if(in_array($this->eway_driver->client->currency()->code, ['VND', 'JPY', 'KRW', 'GNF', 'IDR', 'PYG', 'RWF', 'UGX', 'VUV', 'XAF', 'XPF'])) + return $amount; + + return $amount * 100; } + } \ No newline at end of file