From 21a8b3464d5ad7c6a60d86e2f26d2dbc1f7d5a08 Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Sat, 19 Nov 2022 19:16:55 +0100 Subject: [PATCH] Improve aggregator methods and Yoomee capture result --- app/Http/Controllers/CinetpayController.php | 16 ++++++++++++- app/Http/Controllers/YoomeeController.php | 13 ++++++++++- app/Http/Controllers/YoomeeV2Controller.php | 23 +++++++++++++++---- ...5519_create_payment_transactions_table.php | 2 +- resources/lang/en/providers.php | 9 ++++++++ resources/lang/fr/providers.php | 9 ++++++++ 6 files changed, 65 insertions(+), 7 deletions(-) create mode 100755 resources/lang/en/providers.php create mode 100755 resources/lang/fr/providers.php diff --git a/app/Http/Controllers/CinetpayController.php b/app/Http/Controllers/CinetpayController.php index f148ab1..1fa39e1 100644 --- a/app/Http/Controllers/CinetpayController.php +++ b/app/Http/Controllers/CinetpayController.php @@ -6,6 +6,7 @@ use App\Enums\PaymentTransactionState; use App\Models\PaymentTransaction; use GuzzleHttp\Client; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Lang; use Illuminate\Support\Facades\Log; use Throwable; @@ -49,7 +50,20 @@ class CinetpayController extends Controller */ public function getMethods() { - return $this->successResponse(['ALL', 'MOBILE_MONEY','CREDIT_CARD']); + $providers = [ +// 'ALL', + 'MOBILE_MONEY', + 'CREDIT_CARD', + ]; + $methods = []; + foreach ($providers as $provider) { + $key = 'providers.' . $provider; + $methods[$provider] = Lang::has($key) ? __($key) : $provider; + } + return $this->successResponse([ + 'hasWebview' => true, + 'methods' => $methods, + ]); } // diff --git a/app/Http/Controllers/YoomeeController.php b/app/Http/Controllers/YoomeeController.php index 6a80354..0cfd782 100644 --- a/app/Http/Controllers/YoomeeController.php +++ b/app/Http/Controllers/YoomeeController.php @@ -6,6 +6,7 @@ use App\Enums\PaymentTransactionState; use App\Models\PaymentTransaction; use GuzzleHttp\Client; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Lang; use Illuminate\Support\Str; class YoomeeController extends Controller @@ -49,7 +50,17 @@ class YoomeeController extends Controller public function getMethods() { $response = $this->client->get('operators'); - return $this->successResponse(json_decode($response->getBody()->getContents())); + $providers = json_decode($response->getBody()->getContents()); + $methods = []; + foreach ($providers as $provider){ + $key = 'providers.'.$provider; + $methods[$provider] = Lang::has($key) ? __($key) : $provider; + } + return $this->successResponse([ + 'hasWebview' => false, + 'methods' => $methods + ] + ); } diff --git a/app/Http/Controllers/YoomeeV2Controller.php b/app/Http/Controllers/YoomeeV2Controller.php index 4fde2af..06b50f3 100644 --- a/app/Http/Controllers/YoomeeV2Controller.php +++ b/app/Http/Controllers/YoomeeV2Controller.php @@ -7,6 +7,7 @@ use App\Models\PaymentTransaction; use GuzzleHttp\Client; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Lang; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; use Throwable; @@ -55,7 +56,17 @@ class YoomeeV2Controller extends Controller public function getMethods() { $response = $this->client->get('providers/v1'); - return $this->successResponse(json_decode($response->getBody()->getContents())); + $providers = json_decode($response->getBody()->getContents()); + $methods = []; + foreach ($providers as $provider){ + $key = 'providers.'.$provider; + $methods[$provider] = Lang::has($key) ? __($key) : $provider; + } + return $this->successResponse([ + 'hasWebview' => false, + 'methods' => $methods + ] + ); } @@ -196,12 +207,16 @@ class YoomeeV2Controller extends Controller } if ($transaction->state == PaymentTransactionState::ACCEPTED) { - return $this->successResponse([ + return redirect()->route('paymentResult',[ 'transaction_id' => $transaction->transaction_id, - 'token' => $transaction->payment_token + 'token' => $transaction->payment_token, + 'status' => 1 ]); } else { - return $this->errorResponse("Payment failed"); + return redirect()->route('paymentResult',[ + 'message' => "Payment failed", + 'status' => 0 + ]); } } diff --git a/database/migrations/2022_07_27_075519_create_payment_transactions_table.php b/database/migrations/2022_07_27_075519_create_payment_transactions_table.php index 40a7107..e739646 100644 --- a/database/migrations/2022_07_27_075519_create_payment_transactions_table.php +++ b/database/migrations/2022_07_27_075519_create_payment_transactions_table.php @@ -25,7 +25,7 @@ return new class extends Migration $table->string('payment_url')->nullable(); $table->string('payment_token')->nullable(); $table->string('payment_date')->nullable(); - $table->string('reason'); + $table->text('reason'); $table->string('state'); $table->text('metadata')->nullable(); $table->integer('customer_id'); diff --git a/resources/lang/en/providers.php b/resources/lang/en/providers.php new file mode 100755 index 0000000..da68107 --- /dev/null +++ b/resources/lang/en/providers.php @@ -0,0 +1,9 @@ + 'Express Union', + 'Orange' => 'Orange Money', + 'MTN' => 'MTN MoMo', + 'Yoomee' => 'Yoomee Money', + 'MOBILE_MONEY' => 'Mobile Money', + 'CREDIT_CARD' => 'Carte de crédit' +]; diff --git a/resources/lang/fr/providers.php b/resources/lang/fr/providers.php new file mode 100755 index 0000000..da68107 --- /dev/null +++ b/resources/lang/fr/providers.php @@ -0,0 +1,9 @@ + 'Express Union', + 'Orange' => 'Orange Money', + 'MTN' => 'MTN MoMo', + 'Yoomee' => 'Yoomee Money', + 'MOBILE_MONEY' => 'Mobile Money', + 'CREDIT_CARD' => 'Carte de crédit' +];