mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Working on Alipay
This commit is contained in:
parent
1185af52ac
commit
9856b137fd
@ -3,6 +3,7 @@
|
|||||||
namespace App\Ninja\PaymentDrivers;
|
namespace App\Ninja\PaymentDrivers;
|
||||||
|
|
||||||
use App\Models\Payment;
|
use App\Models\Payment;
|
||||||
|
use App\Models\Invitation;
|
||||||
use App\Models\PaymentMethod;
|
use App\Models\PaymentMethod;
|
||||||
use App\Models\GatewayType;
|
use App\Models\GatewayType;
|
||||||
use Cache;
|
use Cache;
|
||||||
@ -213,7 +214,7 @@ class StripePaymentDriver extends BasePaymentDriver
|
|||||||
|
|
||||||
protected function creatingPayment($payment, $paymentMethod)
|
protected function creatingPayment($payment, $paymentMethod)
|
||||||
{
|
{
|
||||||
if ($this->isGatewayType(GATEWAY_TYPE_BANK_TRANSFER, $paymentMethod)) {
|
if ($this->isGatewayType(GATEWAY_TYPE_BANK_TRANSFER, $paymentMethod) || $this->isGatewayType(GATEWAY_TYPE_ALIPAY, $paymentMethod)) {
|
||||||
$payment->payment_status_id = $this->purchaseResponse['status'] == 'succeeded' ? PAYMENT_STATUS_COMPLETED : PAYMENT_STATUS_PENDING;
|
$payment->payment_status_id = $this->purchaseResponse['status'] == 'succeeded' ? PAYMENT_STATUS_COMPLETED : PAYMENT_STATUS_PENDING;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -369,10 +370,6 @@ class StripePaymentDriver extends BasePaymentDriver
|
|||||||
|
|
||||||
public function handleWebHook($input)
|
public function handleWebHook($input)
|
||||||
{
|
{
|
||||||
if (\Utils::isNinjaDev()) {
|
|
||||||
\Log::info("WEB HOOK: {$eventType} {$eventId}");
|
|
||||||
}
|
|
||||||
|
|
||||||
$eventId = array_get($input, 'id');
|
$eventId = array_get($input, 'id');
|
||||||
$eventType = array_get($input, 'type');
|
$eventType = array_get($input, 'type');
|
||||||
|
|
||||||
@ -416,11 +413,11 @@ class StripePaymentDriver extends BasePaymentDriver
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($eventType == 'charge.failed' || $eventType == 'charge.succeeded' || $eventType == 'charge.refunded') {
|
$source = $eventDetails['data']['object'];
|
||||||
$charge = $eventDetails['data']['object'];
|
$sourceRef = $source['id'];
|
||||||
$transactionRef = $charge['id'];
|
|
||||||
|
|
||||||
$payment = Payment::scope(false, $accountId)->where('transaction_reference', '=', $transactionRef)->first();
|
if ($eventType == 'charge.failed' || $eventType == 'charge.succeeded' || $eventType == 'charge.refunded') {
|
||||||
|
$payment = Payment::scope(false, $accountId)->where('transaction_reference', '=', $sourceRef)->first();
|
||||||
|
|
||||||
if (! $payment) {
|
if (! $payment) {
|
||||||
return false;
|
return false;
|
||||||
@ -428,7 +425,7 @@ class StripePaymentDriver extends BasePaymentDriver
|
|||||||
|
|
||||||
if ($eventType == 'charge.failed') {
|
if ($eventType == 'charge.failed') {
|
||||||
if (! $payment->isFailed()) {
|
if (! $payment->isFailed()) {
|
||||||
$payment->markFailed($charge['failure_message']);
|
$payment->markFailed($source['failure_message']);
|
||||||
|
|
||||||
$userMailer = app('App\Ninja\Mailers\UserMailer');
|
$userMailer = app('App\Ninja\Mailers\UserMailer');
|
||||||
$userMailer->sendNotification($payment->user, $payment->invoice, 'payment_failed', $payment);
|
$userMailer->sendNotification($payment->user, $payment->invoice, 'payment_failed', $payment);
|
||||||
@ -436,12 +433,9 @@ class StripePaymentDriver extends BasePaymentDriver
|
|||||||
} elseif ($eventType == 'charge.succeeded') {
|
} elseif ($eventType == 'charge.succeeded') {
|
||||||
$payment->markComplete();
|
$payment->markComplete();
|
||||||
} elseif ($eventType == 'charge.refunded') {
|
} elseif ($eventType == 'charge.refunded') {
|
||||||
$payment->recordRefund($charge['amount_refunded'] / 100 - $payment->refunded);
|
$payment->recordRefund($source['amount_refunded'] / 100 - $payment->refunded);
|
||||||
}
|
}
|
||||||
} elseif ($eventType == 'customer.source.updated' || $eventType == 'customer.source.deleted' || $eventType == 'customer.bank_account.deleted') {
|
} elseif ($eventType == 'customer.source.updated' || $eventType == 'customer.source.deleted' || $eventType == 'customer.bank_account.deleted') {
|
||||||
$source = $eventDetails['data']['object'];
|
|
||||||
$sourceRef = $source['id'];
|
|
||||||
|
|
||||||
$paymentMethod = PaymentMethod::scope(false, $accountId)->where('source_reference', '=', $sourceRef)->first();
|
$paymentMethod = PaymentMethod::scope(false, $accountId)->where('source_reference', '=', $sourceRef)->first();
|
||||||
|
|
||||||
if (! $paymentMethod) {
|
if (! $paymentMethod) {
|
||||||
@ -454,10 +448,13 @@ class StripePaymentDriver extends BasePaymentDriver
|
|||||||
//$this->paymentService->convertPaymentMethodFromStripe($source, null, $paymentMethod)->save();
|
//$this->paymentService->convertPaymentMethodFromStripe($source, null, $paymentMethod)->save();
|
||||||
}
|
}
|
||||||
} elseif ($eventType == 'source.chargeable') {
|
} elseif ($eventType == 'source.chargeable') {
|
||||||
$source = $eventDetails['data']['object'];
|
$this->invitation = Invitation::scope(false, $accountId)->where('transaction_reference', '=', $sourceRef)->first();
|
||||||
$data = sprintf('amount=%d¤cy=%s&source=%s', $sorce['amount'], $source['currency'], $source['id']);
|
if (! $this->invitation) {
|
||||||
$response = $this->makeStripeCall('POST', 'charges', $data);
|
return false;
|
||||||
\Log::info('post charge reponse: ' . print_r($response, true));
|
}
|
||||||
|
$data = sprintf('amount=%d¤cy=%s&source=%s', $source['amount'], $source['currency'], $source['id']);
|
||||||
|
$this->purchaseResponse = $this->makeStripeCall('POST', 'charges', $data);
|
||||||
|
$this->createPayment($this->purchaseResponse['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 'Processed successfully';
|
return 'Processed successfully';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user