mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
commit
8dbbfce0a5
@ -65,54 +65,6 @@ class PaymentWebhookRequest extends Request
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve possible payment in the request.
|
||||
*
|
||||
* @return null|\App\Models\Payment
|
||||
*/
|
||||
public function getPayment()
|
||||
{
|
||||
// For testing purposes we'll slow down the webhook processing by 2 seconds
|
||||
// to make sure webhook request doesn't came before our processing.
|
||||
//if (app()->environment() !== 'production') {
|
||||
sleep(2);
|
||||
//}
|
||||
|
||||
// Some gateways, like Checkout, we can dynamically pass payment hash,
|
||||
// which we will resolve here and get payment information from it.
|
||||
if ($this->getPaymentHash()) {
|
||||
return $this->getPaymentHash()->payment;
|
||||
}
|
||||
|
||||
// While for some gateways, we need to extract the payment source/reference from the webhook request.
|
||||
// Gateways like this: Stripe
|
||||
if ($this->has('api_version') && $this->has('type') && $this->has('data')) {
|
||||
$src = $this->data['object']['id'];
|
||||
|
||||
return Payment::where('transaction_reference', $src)->firstOrFail();
|
||||
}
|
||||
|
||||
// If none of previously done logics is correct, we'll just display
|
||||
// not found page.
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve client from payment hash.
|
||||
*
|
||||
* @return null|\App\Models\Client|bool
|
||||
*/
|
||||
public function getClient()
|
||||
{
|
||||
$hash = $this->getPaymentHash();
|
||||
|
||||
if($hash) {
|
||||
return Client::find($hash->data->client_id)->firstOrFail();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve company from company_key parameter.
|
||||
*
|
||||
|
@ -332,7 +332,7 @@ class CheckoutComPaymentDriver extends BaseDriver
|
||||
}
|
||||
}
|
||||
|
||||
public function processWebhookRequest(PaymentWebhookRequest $request, Payment $payment = null)
|
||||
public function processWebhookRequest(PaymentWebhookRequest $request)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -388,21 +388,23 @@ class StripePaymentDriver extends BaseDriver
|
||||
return $this->payment_method->processVerification($request, $payment_method);
|
||||
}
|
||||
|
||||
public function processWebhookRequest(PaymentWebhookRequest $request, Payment $payment)
|
||||
public function processWebhookRequest(PaymentWebhookRequest $request)
|
||||
{
|
||||
if ($request->type == 'source.chargeable') {
|
||||
$payment->status_id = Payment::STATUS_COMPLETED;
|
||||
$payment->save();
|
||||
if ($request->type === 'charge.succeeded' || $request->type === 'source.chargeable') {
|
||||
foreach ($request->data as $transaction) {
|
||||
$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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($request->type == 'charge.succeeded') {
|
||||
$payment->status_id = Payment::STATUS_COMPLETED;
|
||||
$payment->save();
|
||||
}
|
||||
|
||||
// charge.failed, charge.refunded
|
||||
|
||||
return response([], 200);
|
||||
return response()->json([], 200);
|
||||
}
|
||||
|
||||
public function tokenBilling(ClientGatewayToken $cgt, PaymentHash $payment_hash)
|
||||
|
@ -168,6 +168,8 @@ class WePayPaymentDriver extends BaseDriver
|
||||
|
||||
$input = $request->all();
|
||||
|
||||
$config = $this->company_gateway->getConfig();
|
||||
|
||||
$accountId = $this->company_gateway->getConfigField('accountId');
|
||||
|
||||
foreach (array_keys($input) as $key) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user