diff --git a/app/Http/Requests/Payments/PaymentWebhookRequest.php b/app/Http/Requests/Payments/PaymentWebhookRequest.php index ea11d0af2056..50bc276c14ae 100644 --- a/app/Http/Requests/Payments/PaymentWebhookRequest.php +++ b/app/Http/Requests/Payments/PaymentWebhookRequest.php @@ -74,9 +74,9 @@ class PaymentWebhookRequest extends Request { // 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') { + //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. diff --git a/app/PaymentDrivers/PayTrace/CreditCard.php b/app/PaymentDrivers/PayTrace/CreditCard.php index 58937195e553..bc80c3a6a508 100644 --- a/app/PaymentDrivers/PayTrace/CreditCard.php +++ b/app/PaymentDrivers/PayTrace/CreditCard.php @@ -41,6 +41,7 @@ class CreditCard { $data['client_key'] = $this->paytrace_driver->getAuthToken(); + $data['gateway'] = $this->paytrace_driver; return render('gateways.paytrace.authorize', $data); } @@ -49,8 +50,57 @@ class CreditCard public function authorizeResponse($request) { $data = $request->all(); + + nlog($data); - return response()->json([], 200); + $post_data = [ + 'customer_id' => Str::random(32), + 'hpf_token' => $data['HPF_Token'], + 'enc_key' => $data['enc_key'], + 'integrator_id' => '959195xd1CuC', + 'billing_address' => [ + 'name' => $this->paytrace_driver->client->present()->name(), + 'street_address' => $this->paytrace_driver->client->address1, + 'city' => $this->paytrace_driver->client->city, + 'state' => $this->paytrace_driver->client->state, + 'zip' => $this->paytrace_driver->client->postal_code + ], + ]; + + nlog($post_data); + + // "_token" => "Vl1xHflBYQt9YFSaNCPTJKlY5x3rwcFE9kvkw71I" + // "company_gateway_id" => "1" + // "HPF_Token" => "e484a92c-90ed-4468-ac4d-da66824c75de" + // "enc_key" => "zqz6HMHCXALWdX5hyBqrIbSwU7TBZ0FTjjLB3Cp0FQY=" + // "amount" => "Amount" + // "q" => "/client/payment_methods" + // "method" => "1" + // ] + + // "customer_id":"customer789", + // "hpf_token":"e369847e-3027-4174-9161-fa0d4e98d318", + // "enc_key":"lI785yOBMet4Rt9o4NLXEyV84WBU3tdStExcsfoaOoo=", + // "integrator_id":"xxxxxxxxxx", + // "billing_address":{ + // "name":"Mark Smith", + // "street_address":"8320 E. West St.", + // "city":"Spokane", + // "state":"WA", + // "zip":"85284" + // } + $response = $this->paytrace_driver->gatewayRequest('/v1/customer/pt_protect_create', $post_data); + + // dd($response); + + // +"success": true + // +"response_code": 160 + // +"status_message": "The customer profile for PLS5U60OoLUfQXzcmtJYNefPA0gTthzT/11 was successfully created." + // +"customer_id": "PLS5U60OoLUfQXzcmtJYNefPA0gTthzT" + + + // make a cc card out of that bra + return redirect()->route('client.payment_methods.index'); } diff --git a/app/PaymentDrivers/PaytracePaymentDriver.php b/app/PaymentDrivers/PaytracePaymentDriver.php index 8e95e6f4f701..025ab5d0013f 100644 --- a/app/PaymentDrivers/PaytracePaymentDriver.php +++ b/app/PaymentDrivers/PaytracePaymentDriver.php @@ -98,8 +98,7 @@ class PaytracePaymentDriver extends BaseDriver } /*Helpers*/ - - public function getAuthToken() + private function generateAuthHeaders() { $url = 'https://api.paytrace.com/oauth/token'; @@ -111,14 +110,21 @@ class PaytracePaymentDriver extends BaseDriver $response = CurlUtils::post($url, $data, $headers = false); - if($response) - { - $auth_data = json_decode($response); + $auth_data = json_decode($response); $headers = []; $headers[] = 'Content-type: application/json'; $headers[] = 'Authorization: Bearer '.$auth_data->access_token; + return $headers; + + } + + public function getAuthToken() + { + + $headers = $this->generateAuthHeaders(); + $response = CurlUtils::post('https://api.paytrace.com/v1/payment_fields/token/create', [], $headers); $response = json_decode($response); @@ -126,7 +132,21 @@ class PaytracePaymentDriver extends BaseDriver if($response) return $response->clientKey; - } + return false; + } + + public function gatewayRequest($uri, $data, $headers = false) + { + $base_url = "https://api.paytrace.com{$uri}"; + + $headers = $this->generateAuthHeaders(); + + $response = CurlUtils::post($base_url, json_encode($data), $headers); + + $response = json_decode($response); + + if($response) + return $response; return false; } diff --git a/resources/views/portal/ninja2020/gateways/paytrace/authorize.blade.php b/resources/views/portal/ninja2020/gateways/paytrace/authorize.blade.php index ac3968e7808a..401a35cdb43f 100644 --- a/resources/views/portal/ninja2020/gateways/paytrace/authorize.blade.php +++ b/resources/views/portal/ninja2020/gateways/paytrace/authorize.blade.php @@ -10,7 +10,8 @@ @endif
-