mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Generate PaymentIntent for payment requests
This commit is contained in:
parent
a434b2f4f6
commit
b21a27373d
@ -24,7 +24,7 @@ use App\PaymentDrivers\StripePaymentDriver;
|
|||||||
class SOFORT
|
class SOFORT
|
||||||
{
|
{
|
||||||
/** @var StripePaymentDriver */
|
/** @var StripePaymentDriver */
|
||||||
public $stripe;
|
public StripePaymentDriver $stripe;
|
||||||
|
|
||||||
public function __construct(StripePaymentDriver $stripe)
|
public function __construct(StripePaymentDriver $stripe)
|
||||||
{
|
{
|
||||||
@ -45,6 +45,14 @@ class SOFORT
|
|||||||
$data['customer'] = $this->stripe->findOrCreateCustomer()->id;
|
$data['customer'] = $this->stripe->findOrCreateCustomer()->id;
|
||||||
$data['country'] = $this->stripe->client->country->iso_3166_2;
|
$data['country'] = $this->stripe->client->country->iso_3166_2;
|
||||||
|
|
||||||
|
$intent = \Stripe\PaymentIntent::create([
|
||||||
|
'amount' => $data['stripe_amount'],
|
||||||
|
'currency' => 'eur',
|
||||||
|
'payment_method_types' => ['sofort']
|
||||||
|
]);
|
||||||
|
|
||||||
|
$data['pi_client_secret'] = $intent->client_secret;
|
||||||
|
|
||||||
$this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, ['stripe_amount' => $data['stripe_amount']]);
|
$this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, ['stripe_amount' => $data['stripe_amount']]);
|
||||||
$this->stripe->payment_hash->save();
|
$this->stripe->payment_hash->save();
|
||||||
|
|
||||||
@ -66,23 +74,23 @@ class SOFORT
|
|||||||
$this->stripe->payment_hash->save();
|
$this->stripe->payment_hash->save();
|
||||||
|
|
||||||
if ($request->redirect_status == 'succeeded') {
|
if ($request->redirect_status == 'succeeded') {
|
||||||
return $this->processSuccessfulPayment($request->source);
|
return $this->processSuccessfulPayment($request->payment_intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->processUnsuccessfulPayment();
|
return $this->processUnsuccessfulPayment();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function processSuccessfulPayment(string $source)
|
public function processSuccessfulPayment(string $payment_intent)
|
||||||
{
|
{
|
||||||
/* @todo: https://github.com/invoiceninja/invoiceninja/pull/3789/files#r436175798 */
|
/* @todo: https://github.com/invoiceninja/invoiceninja/pull/3789/files#r436175798 */
|
||||||
|
|
||||||
$this->stripe->init();
|
$this->stripe->init();
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'payment_method' => $this->stripe->payment_hash->data->source,
|
'payment_method' => $payment_intent,
|
||||||
'payment_type' => PaymentType::SOFORT,
|
'payment_type' => PaymentType::SOFORT,
|
||||||
'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()),
|
'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()),
|
||||||
'transaction_reference' => $source,
|
'transaction_reference' => $payment_intent,
|
||||||
'gateway_type_id' => GatewayType::SOFORT,
|
'gateway_type_id' => GatewayType::SOFORT,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user