diff --git a/app/PaymentDrivers/PayPal/PayPalBasePaymentDriver.php b/app/PaymentDrivers/PayPal/PayPalBasePaymentDriver.php index 8eb75b043494..a3059c20cdcd 100644 --- a/app/PaymentDrivers/PayPal/PayPalBasePaymentDriver.php +++ b/app/PaymentDrivers/PayPal/PayPalBasePaymentDriver.php @@ -418,7 +418,6 @@ class PayPalBasePaymentDriver extends BaseDriver public function processWebhookRequest(Request $request) { - // nlog(json_encode($request->all())); $this->init(); PayPalWebhook::dispatch($request->all(), $request->headers->all(), $this->access_token); diff --git a/app/PaymentDrivers/PayPalPPCPPaymentDriver.php b/app/PaymentDrivers/PayPalPPCPPaymentDriver.php index 0c099689e5bb..055e41d1587e 100644 --- a/app/PaymentDrivers/PayPalPPCPPaymentDriver.php +++ b/app/PaymentDrivers/PayPalPPCPPaymentDriver.php @@ -98,7 +98,7 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver $data['merchantId'] = $this->company_gateway->getConfigField('merchantId'); $data['currency'] = $this->client->currency()->code; - if($this->paypal_payment_method == 29) + if($this->gateway_type_id == 29) return render('gateways.paypal.ppcp.card', $data); else return render('gateways.paypal.ppcp.pay', $data); @@ -117,6 +117,10 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver $request['gateway_response'] = str_replace("Error: ", "", $request['gateway_response']); $response = json_decode($request['gateway_response'], true); + if($request->has('token') && strlen($request->input('token')) > 2) { + return $this->processTokenPayment($request, $response); + } + //capture $orderID = $response['orderID']; @@ -184,7 +188,7 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver ['response' => $response, 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_SUCCESS, - SystemLog::TYPE_PAYPAL, + SystemLog::TYPE_PAYPAL_PPCP, $this->client, $this->client->company, ); @@ -201,7 +205,7 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver ['response' => $response], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, - SystemLog::TYPE_PAYPAL, + SystemLog::TYPE_PAYPAL_PPCP, $this->client, $this->client->company, ); @@ -283,6 +287,10 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver $order['purchase_units'][0]["shipping"] = $shipping; } + if(isset($data['payment_source'])) { + $order['payment_source'] = $data['payment_source']; + } + $r = $this->gatewayRequest('/v2/checkout/orders', 'post', $order); return $r->json()['id']; @@ -343,7 +351,7 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver ['response' => $response, 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_SUCCESS, - SystemLog::TYPE_PAYPAL, + SystemLog::TYPE_PAYPAL_PPCP, $this->client, $this->client->company, ); @@ -351,4 +359,4 @@ class PayPalPPCPPaymentDriver extends PayPalBasePaymentDriver return redirect()->route('client.payments.show', ['payment' => $this->encodePrimaryKey($payment->id)]); } -} +} \ No newline at end of file diff --git a/app/PaymentDrivers/PayPalRestPaymentDriver.php b/app/PaymentDrivers/PayPalRestPaymentDriver.php index e250713f0c18..24f44b127487 100644 --- a/app/PaymentDrivers/PayPalRestPaymentDriver.php +++ b/app/PaymentDrivers/PayPalRestPaymentDriver.php @@ -12,18 +12,15 @@ namespace App\PaymentDrivers; -use Carbon\Carbon; use App\Models\Invoice; use App\Models\SystemLog; use App\Models\GatewayType; -use App\Models\PaymentType; use Illuminate\Support\Str; use App\Jobs\Util\SystemLogger; use App\Utils\Traits\MakesHash; use App\Exceptions\PaymentFailed; use App\Models\ClientGatewayToken; use App\PaymentDrivers\PayPal\PayPalBasePaymentDriver; -use Illuminate\Support\Facades\Http; class PayPalRestPaymentDriver extends PayPalBasePaymentDriver { @@ -47,7 +44,7 @@ class PayPalRestPaymentDriver extends PayPalBasePaymentDriver $data['gateway_type_id'] = $this->gateway_type_id; $data['currency'] = $this->client->currency()->code; - if($this->paypal_payment_method == 29) + if($this->gateway_type_id == 29) return render('gateways.paypal.ppcp.card', $data); else return render('gateways.paypal.pay', $data); @@ -125,6 +122,9 @@ class PayPalRestPaymentDriver extends PayPalBasePaymentDriver $response = $r; + nlog("Process response =>"); + nlog($response->json()); + if(isset($response['status']) && $response['status'] == 'COMPLETED' && isset($response['purchase_units'])) { return $this->createNinjaPayment($request, $response); @@ -257,6 +257,8 @@ class PayPalRestPaymentDriver extends PayPalBasePaymentDriver if(isset($data['payment_source'])) $order['payment_source'] = $data['payment_source']; + + $r = $this->gatewayRequest('/v2/checkout/orders', 'post', $order); return $r->json()['id']; diff --git a/resources/views/portal/ninja2020/gateways/paypal/ppcp/card.blade.php b/resources/views/portal/ninja2020/gateways/paypal/ppcp/card.blade.php index df3a7b50f004..37cdf78dd3e5 100644 --- a/resources/views/portal/ninja2020/gateways/paypal/ppcp/card.blade.php +++ b/resources/views/portal/ninja2020/gateways/paypal/ppcp/card.blade.php @@ -57,6 +57,7 @@