diff --git a/app/PaymentDrivers/Stripe/SOFORT.php b/app/PaymentDrivers/Stripe/SOFORT.php index 6f7d5d33c4..821698e160 100644 --- a/app/PaymentDrivers/Stripe/SOFORT.php +++ b/app/PaymentDrivers/Stripe/SOFORT.php @@ -85,7 +85,7 @@ class SOFORT 'gateway_type_id' => GatewayType::SOFORT, ]; - // $payment = $this->stripe->createPayment($data, Payment::STATUS_PENDING); + $this->stripe->createPayment($data, Payment::STATUS_PENDING); SystemLogger::dispatch( ['response' => $this->stripe->payment_hash->data, 'data' => $data], diff --git a/app/PaymentDrivers/StripePaymentDriver.php b/app/PaymentDrivers/StripePaymentDriver.php index cefae163bd..e7d3109633 100644 --- a/app/PaymentDrivers/StripePaymentDriver.php +++ b/app/PaymentDrivers/StripePaymentDriver.php @@ -436,33 +436,28 @@ class StripePaymentDriver extends BaseDriver $payment->save(); } } - } - elseif($request->type === 'source.chargeable'){ - + } elseif ($request->type === 'source.chargeable') { $this->init(); - $charge = \Stripe\Charge::create([ - 'amount' => $request->amount, - 'currency' => $request->currency, - 'source' => $request->id, - ], $this->stripe_connect_auth); + foreach ($request->data as $transaction) { + $charge = \Stripe\Charge::create([ + 'amount' => $request->data['object']['amount'], + 'currency' => $request->data['object']['currency'], + 'source' => $request->data['object']['id'], + ], $this->stripe_connect_auth); - if($charge->captured) - { - $this->setClientFromCustomer($request->customer); - - $data = [ - 'payment_method' => $request->id, - 'payment_type' => PaymentType::SOFORT, - 'amount' => $this->convertFromStripeAmount($request->amount, $this->client->currency()->precision, $this->client->currency()), - 'transaction_reference' => $charge->id, - 'gateway_type_id' => GatewayType::SOFORT, - ]; - - $payment = $this->createPayment($data, Payment::STATUS_COMPLETED); + if ($charge->captured) { + $payment = Payment::query() + ->where('transaction_reference', $transaction['id']) + ->where('company_id', $request->getCompany()->id) + ->first(); + if ($payment) { + $payment->status_id = Payment::STATUS_COMPLETED; + $payment->save(); + } + } } - } return response()->json([], 200);