mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
BaseDriver:
- Allow passing additional properties to ClientGatewayToken entity CreditCard: - Fix saving gateway_customer_reference
This commit is contained in:
parent
dab59138cc
commit
13655d48ea
@ -270,7 +270,7 @@ class BaseDriver extends AbstractPaymentDriver
|
|||||||
* @param array $data
|
* @param array $data
|
||||||
* @return null|\App\Models\ClientGatewayToken
|
* @return null|\App\Models\ClientGatewayToken
|
||||||
*/
|
*/
|
||||||
public function storeGatewayToken(array $data): ?ClientGatewayToken
|
public function storeGatewayToken(array $data, array $additional = []): ?ClientGatewayToken
|
||||||
{
|
{
|
||||||
$company_gateway_token = new ClientGatewayToken();
|
$company_gateway_token = new ClientGatewayToken();
|
||||||
$company_gateway_token->company_id = $this->client->company->id;
|
$company_gateway_token->company_id = $this->client->company->id;
|
||||||
@ -279,6 +279,11 @@ class BaseDriver extends AbstractPaymentDriver
|
|||||||
$company_gateway_token->company_gateway_id = $this->company_gateway->id;
|
$company_gateway_token->company_gateway_id = $this->company_gateway->id;
|
||||||
$company_gateway_token->gateway_type_id = $data['payment_method_id'];
|
$company_gateway_token->gateway_type_id = $data['payment_method_id'];
|
||||||
$company_gateway_token->meta = $data['payment_meta'];
|
$company_gateway_token->meta = $data['payment_meta'];
|
||||||
|
|
||||||
|
foreach ($additional as $key => $value) {
|
||||||
|
$company_gateway_token->{$key} = $value;
|
||||||
|
}
|
||||||
|
|
||||||
$company_gateway_token->save();
|
$company_gateway_token->save();
|
||||||
|
|
||||||
if ($this->client->gateway_tokens->count() == 1) {
|
if ($this->client->gateway_tokens->count() == 1) {
|
||||||
|
@ -54,7 +54,7 @@ class CreditCard
|
|||||||
|
|
||||||
$stripe_method = $this->stripe->getStripePaymentMethod($stripe_response->payment_method);
|
$stripe_method = $this->stripe->getStripePaymentMethod($stripe_response->payment_method);
|
||||||
|
|
||||||
$this->storePaymentMethod($stripe_method, $request->payment_method_id);
|
$this->storePaymentMethod($stripe_method, $request->payment_method_id, $customer);
|
||||||
|
|
||||||
return redirect()->route('client.payment_methods.index');
|
return redirect()->route('client.payment_methods.index');
|
||||||
}
|
}
|
||||||
@ -205,7 +205,7 @@ class CreditCard
|
|||||||
throw new \Exception('Failed to process the payment.', 1);
|
throw new \Exception('Failed to process the payment.', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function storePaymentMethod(\Stripe\PaymentMethod $method, $payment_method_id)
|
private function storePaymentMethod(\Stripe\PaymentMethod $method, $payment_method_id, $customer)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$payment_meta = new \stdClass;
|
$payment_meta = new \stdClass;
|
||||||
@ -221,7 +221,7 @@ class CreditCard
|
|||||||
'payment_method_id' => $payment_method_id,
|
'payment_method_id' => $payment_method_id,
|
||||||
];
|
];
|
||||||
|
|
||||||
$this->stripe->storeGatewayToken($data);
|
$this->stripe->storeGatewayToken($data, ['gateway_customer_reference' => $customer->id]);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return $this->stripe->processInternallyFailedPayment($this->stripe, $e);
|
return $this->stripe->processInternallyFailedPayment($this->stripe, $e);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user