diff --git a/app/PaymentDrivers/Stripe/BankTransfer.php b/app/PaymentDrivers/Stripe/BankTransfer.php index 2521f8fe6dfc..06125d6ab946 100644 --- a/app/PaymentDrivers/Stripe/BankTransfer.php +++ b/app/PaymentDrivers/Stripe/BankTransfer.php @@ -126,17 +126,13 @@ class BankTransfer /* Create a pending payment */ if($pi->status == 'requires_action' && $pi->next_action->type == 'display_bank_transfer_instructions') { - - $data = [ - 'amount' => Number::formatMoney($this->stripe->convertFromStripeAmount($pi->next_action->display_bank_transfer_instructions->amount_remaining, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), $this->stripe->client), - 'account_holder_name' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->account_holder_name, - 'account_number' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->account_number, - 'sort_code' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->sort_code, - 'reference' => $pi->next_action->display_bank_transfer_instructions->reference, - 'description' => $pi->description, - 'gateway' => $this->stripe->company_gateway, - - ]; +nlog($pi); + match($pi->next_action->display_bank_transfer_instructions->currency){ + 'mxn' => $data = $this->formatDataforMx($pi), + 'gbp' => $data = $this->formatDataforUk($pi), + 'eur' => $data = $this->formatDataforEur($pi), + 'jpy' => $data = $this->formatDataforJp($pi), + }; return render('gateways.stripe.bank_transfer.bank_details', $data); @@ -170,6 +166,86 @@ class BankTransfer } + private function formatDataForUk(PaymentIntent $pi): array + { + + return [ + 'amount' => Number::formatMoney($this->stripe->convertFromStripeAmount($pi->next_action->display_bank_transfer_instructions->amount_remaining, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), $this->stripe->client), + 'account_holder_name' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->account_holder_name, + 'account_number' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->account_number, + 'sort_code' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->sort_code, + 'reference' => $pi->next_action->display_bank_transfer_instructions->reference, + 'description' => $pi->description, + 'gateway' => $this->stripe->company_gateway, + 'currency' => $pi->next_action->display_bank_transfer_instructions->currency, + + ]; + + } + + private function formatDataforMx(PaymentIntent $pi): array + { + + return [ + 'amount' => Number::formatMoney($this->stripe->convertFromStripeAmount($pi->next_action->display_bank_transfer_instructions->amount_remaining, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), $this->stripe->client), + 'account_holder_name' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->spei->bank_name, + 'account_number' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->spei->bank_code, + 'sort_code' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->spei->clabe, + 'reference' => $pi->next_action->display_bank_transfer_instructions->reference, + 'description' => $pi->description, + 'gateway' => $this->stripe->company_gateway, + 'currency' => $pi->next_action->display_bank_transfer_instructions->currency, + + ]; + + + } + + private function formatDataforEur(PaymentIntent $pi): array + { + + return [ + 'amount' => Number::formatMoney($this->stripe->convertFromStripeAmount($pi->next_action->display_bank_transfer_instructions->amount_remaining, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), $this->stripe->client), + 'account_holder_name' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->account_holder_name, + 'account_number' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->account_number, + 'sort_code' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->sort_code->sort_code, + 'reference' => $pi->next_action->display_bank_transfer_instructions->reference, + 'description' => $pi->description, + 'gateway' => $this->stripe->company_gateway, + + ]; + + + } + + /** + * + * @param PaymentIntent $pi + * @return array + */ + private function formatDataforJp(PaymentIntent $pi): array + { + + return [ + 'amount' => Number::formatMoney($this->stripe->convertFromStripeAmount($pi->next_action->display_bank_transfer_instructions->amount_remaining, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), $this->stripe->client), + 'account_holder_name' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->zengin->account_holder_name, + 'account_number' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->zengin->account_number, + 'account_type' =>$pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->zengin->account_type, + 'bank_code' =>$pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->zengin->bank_code, + 'bank_name' =>$pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->zengin->bank_name, + 'branch_code' =>$pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->zengin->branch_code, + 'branch_name' =>$pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->zengin->branch_name, + 'sort_code' => $pi->next_action->display_bank_transfer_instructions->financial_addresses[0]->zengin->sort_code, + 'reference' => $pi->next_action->display_bank_transfer_instructions->reference, + 'description' => $pi->description, + 'gateway' => $this->stripe->company_gateway, + + ]; + + + } + + public function processSuccesfulRedirect($payment_intent) { $this->stripe->init(); diff --git a/lang/en/texts.php b/lang/en/texts.php index fad5214c85cc..221a03f5102c 100644 --- a/lang/en/texts.php +++ b/lang/en/texts.php @@ -5002,6 +5002,7 @@ $LANG = array( 'gateway_payment_text_no_invoice' => 'Payment with no invoice for amount :amount for client :client', 'click_to_variables' => 'Client here to see all variables.', 'ship_to' => 'Ship to', + 'stripe_direct_debit_details' => 'Please transfer into the nominated bank account above.' ); diff --git a/resources/views/portal/ninja2020/gateways/stripe/bank_transfer/bank_details.blade.php b/resources/views/portal/ninja2020/gateways/stripe/bank_transfer/bank_details.blade.php index 27309e649b2e..1f79e3f80cf0 100644 --- a/resources/views/portal/ninja2020/gateways/stripe/bank_transfer/bank_details.blade.php +++ b/resources/views/portal/ninja2020/gateways/stripe/bank_transfer/bank_details.blade.php @@ -2,16 +2,17 @@ @section('gateway_content')
+
+ + @if($currency == 'gbp') -
-
- {{ ctrans('texts.account_name') }} + {{ ctrans('texts.sort') }}
- {{ $account_holder_name }} + {{ $sort_code }}
- +
{{ ctrans('texts.account_number') }}
@@ -20,11 +21,12 @@
- {{ ctrans('texts.sort') }} + {{ ctrans('texts.account_name') }}
- {{ $sort_code }} + {{ $account_holder_name }}
+
{{ ctrans('texts.reference') }} @@ -41,6 +43,59 @@ {{ $amount }} +
+
+
+ {{ ctrans('texts.stripe_direct_debit_details') }} +
+ + @elseif($currency == 'mxn') + +
+ Clabe +
+
+ {{ $sort_code }} +
+ +
+ {{ ctrans('texts.account_number') }} +
+
+ {{ $account_number }} +
+ +
+ {{ ctrans('texts.account_name') }} +
+
+ {{ $account_holder_name }} +
+ + +
+ {{ ctrans('texts.reference') }} +
+
+ {{ $reference }} +
+ + +
+ {{ ctrans('texts.balance_due') }} +
+
+ {{ $amount }} +
+ +
+
+
+ {{ ctrans('texts.stripe_direct_debit_details') }} +
+ + @endif +
@endsection diff --git a/resources/views/portal/ninja2020/gateways/stripe/bank_transfer/pay.blade.php b/resources/views/portal/ninja2020/gateways/stripe/bank_transfer/pay.blade.php index f3eaac64f65d..22ee4a045e03 100644 --- a/resources/views/portal/ninja2020/gateways/stripe/bank_transfer/pay.blade.php +++ b/resources/views/portal/ninja2020/gateways/stripe/bank_transfer/pay.blade.php @@ -17,7 +17,7 @@
@csrf -
+
@@ -46,19 +46,22 @@