Created
November 29, 2024 09:28
-
-
Save adejorosam/8577a5a929fd82bf45d8993075ec4d0b to your computer and use it in GitHub Desktop.
paystack method
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| namespace CardinalstoneRestServer\services; | |
| use CardinalstoneRestServer\models\WebServiceModel; | |
| use function GuzzleHttp\json_decode; | |
| /* | |
| * This Class handles the API calls to paystack | |
| * @author devteam@cardinalstone.com | |
| */ | |
| class PaystackRequest | |
| { | |
| /* | |
| * Instance of guzzle | |
| */ | |
| private $guzzle; | |
| /* | |
| * Instance of webServiceModel | |
| */ | |
| private $webService; | |
| /* | |
| * Inject the container when resolving this object | |
| * @param Psr\Container\ContainerInterfac $container | |
| */ | |
| public function __construct(\GuzzleHttp\Client $guzzle, WebServiceModel $webService ) | |
| { | |
| $this->guzzle = $guzzle; | |
| $this->webService = $webService; | |
| } | |
| /* | |
| * Method to make paystack' resolve BVN | |
| * @param string $phone | |
| * @param string $bvn | |
| */ | |
| public function validateBVN($phone, $bvn,$product) | |
| { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer '. $_ENV['PAYSTACK_KEY_MUTUALFUND'], | |
| "Cache-Control: no-cache" | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer '. $_ENV['PAYSTACK_KEY_CSWALLET'], | |
| "Cache-Control: no-cache" | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = $this->guzzle->request('GET', $_ENV['PAYSTACK_BASE_URL']."/identity/bvn/resolve/".$bvn, $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function verifyPayment($payload) | |
| { | |
| /* if(strtoupper($product) == "CSPFIFUND") | |
| { */ | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer '. $payload['key'], | |
| "Cache-Control: no-cache" | |
| ] | |
| ]; | |
| /* }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer '. $_ENV['PAYSTACK_KEY_CSWALLET'], | |
| "Cache-Control: no-cache" | |
| ] | |
| ]; | |
| } */ | |
| try { | |
| $response = $this->guzzle->request('GET', "https://api.paystack.co/transaction/verify/".$payload["reference"], $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function getClientNubanFromPaystack($nubanAccountID,$product) | |
| { | |
| //check if user has nuban,if yes, return the nuban, if no , create it | |
| //$nubanAccountID = "22";//(int)$data['nuban_account_id']; | |
| try { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/dedicated_account/'.$nubanAccountID, ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND')]]); | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/dedicated_account/'.$nubanAccountID, ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET')]]); | |
| } | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function resolveBankAccount($payload) | |
| { | |
| $accountNumber = $payload["accountNumber"]; | |
| $bankCode = $payload["bankCode"]; | |
| $url = 'https://api.paystack.co/bank/resolve?account_number='. $accountNumber .'&bank_code='.$bankCode; | |
| $options = ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET')]]; | |
| // var_dump($url); | |
| // var_dump($options); | |
| try { | |
| //https://api.paystack.co/bank/resolve?account_number=0022728151&bank_code=063 | |
| $response = container('guzzle')->get("{$url}", $options); | |
| // $response = container('guzzle')->get('https://api.paystack.co/bank/resolve?account_number='. $accountNumber .'&bank_code='.$bankCode, ['headers' => ['Authorization' => 'Bearer sk_live_aab80cd474cf43bdb84d1ca78d5f0071a4fc74f6']]); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function createTransferRecipient($payload) | |
| { | |
| $accountNumber = $payload["accountNumber"]; | |
| $bankCode = $payload["bankCode"]; | |
| $name = $payload["fullName"]; | |
| $options = [ | |
| // 'headers' => ['Authorization' => 'Bearer sk_test_6f9779b6a1b9dc899810a229ff0f31ac990970fb'], | |
| 'headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET')], | |
| 'json' => [ | |
| "type"=> "nuban", | |
| "name"=> $name, | |
| "description"=> "Transfer Client for Wallet Payout", | |
| "account_number"=> $accountNumber, | |
| "bank_code"=> $bankCode, | |
| "currency"=>"NGN" | |
| ] | |
| ]; | |
| $url = "https://api.paystack.co/transferrecipient"; | |
| try { | |
| $response = container('guzzle')->post("{$url}", $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| //log Infoware response | |
| $message1 = "Account Number: " . $accountNumber .", Bnk Code: " . $bankCode; | |
| $message2 = (string) $options; | |
| $message3 = "Name: " . $name; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Transfer Recipient Creation"; | |
| container('mutualFundModel')->activity_log($message1, $message2, $message3, $message4, $message5); | |
| return $result; | |
| } | |
| public function withdrawFromWallet($payload) | |
| { | |
| $amount = $payload["amount"] * 100; | |
| $recipientCode = $payload["recipientCode"]; | |
| /* | |
| $options = [ | |
| 'headers' => ['Authorization' => 'Bearer sk_live_aab80cd474cf43bdb84d1ca78d5f0071a4fc74f6'], | |
| 'json' => [ | |
| "source"=> "balance", | |
| "amount"=> $amount, | |
| "reason"=> "Transfer to bank from CS Wallet", | |
| "recipient"=> $recipientCode, | |
| ] | |
| ]; */ | |
| $options = [ | |
| 'headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET')], | |
| 'json' => [ | |
| "source"=> "balance", | |
| "amount"=> $amount, | |
| "reason"=> "Transfer to bank from CS Wallet", | |
| "recipient"=> $recipientCode, | |
| ] | |
| ]; | |
| $url = "https://api.paystack.co/transfer"; | |
| try { | |
| $response = container('guzzle')->post("{$url}", $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| $message1 = $response->getStatusCode() ." and " .$response->getReasonPhrase(); | |
| $message2 = "Transfer Amount: ". number_format($amount/100, 2, '.', ','); | |
| $message3 = "Name: ".$payload['lastName']. ", " .$payload['firstName'] .", Account Number: " . $payload['accountNumber']. ", Bank: " .$payload['bankName']; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Withdraw from Wallet to Bank Failed"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function getNubanAccount($nubanAccountID, $product) | |
| { | |
| //check if user has nuban,if yes, return the nuban, if no , create it | |
| //$nubanAccountID = "22";//(int)$data['nuban_account_id']; | |
| try { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/dedicated_account/'.$nubanAccountID, ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND')]]); | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/dedicated_account/'.$nubanAccountID, ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET')]]); | |
| } | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function getPaymentAccessCode($payload) | |
| { | |
| //check if user has nuban,if yes, return the nuban, if no , create it | |
| //$nubanAccountID = "22";//(int)$data['nuban_account_id']; | |
| $url = "https://api.paystack.co/transaction/initialize"; | |
| $options = [ | |
| 'headers' => ['Authorization' => 'Bearer ' . $payload['key']], | |
| 'json' => [ | |
| 'email' => $payload['emailAddress'], | |
| 'amount' => $payload['amount'], | |
| 'reference' => $payload['reference'], | |
| 'callback_url' => $payload['callBack'], | |
| 'channels' => [$payload['channel']], | |
| 'currency' => "NGN", | |
| ] | |
| ]; | |
| // var_dump($options); | |
| try { | |
| $response = container('guzzle')->post("{$url}", $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| /* public function getPaymentAccessCode($payload) | |
| { | |
| //check if user has nuban,if yes, return the nuban, if no , create it | |
| //$nubanAccountID = "22";//(int)$data['nuban_account_id']; | |
| $call_back = $payload['callBack']; | |
| $url = "https://api.paystack.co/checkout/request_inline?key={$payload['pkey']}&ref={$payload['reference']}&email={$payload['emailAddress']}&amount={$payload['amount']}¤cy=NGN&metadata={'referrer':$call_back}&channels[]={$payload['channel']}&mode=popup&hasTLSFallback=true"; | |
| //https://api.paystack.co/checkout/request_inline?id=paystackJKxBd&key=pk_test_31ff86856cda70b592c5cc858b2eba333bd3828c&ref=MF9561706554142&email=oyawaleolutayo@gmail.com&amount=10100000¤cy=NGN&metadata={"referrer":"https://mf-staging.cardinalstone.com/subscribe"}&channels[]=card&mode=popup&hasTLSFallback=true&device=76b884a4b80350a1ebe11a4d8d7903cf | |
| $options = [ | |
| 'headers' => ['Authorization' => 'Bearer ' . $payload['key']], | |
| ]; | |
| try { | |
| $response = container('guzzle')->get("{$url}"); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } */ | |
| public function getNubanCustomer($customerID, $product) | |
| { | |
| //check if user has nuban,if yes, return the nuban, if no , create it | |
| //$nubanAccountID = "22";//(int)$data['nuban_account_id']; | |
| try { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/customer/' .$customerID, ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND')]]); | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/customer/' .$customerID, ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET')]]); | |
| } | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function listNubanCustomers($product) | |
| { | |
| //check if user has nuban,if yes, return the nuban, if no , create it | |
| try { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/customer/', ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND')]]); | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/customer/', ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET')]]); | |
| } | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function listNubanAccounts($product) | |
| { | |
| //check if user has nuban,if yes, return the nuban, if no , create it | |
| try { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/dedicated_account/', ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND')]]); | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $response = container('guzzle')->get('https://api.paystack.co/dedicated_account/', ['headers' => ['Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET')]]); | |
| } | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function createNubanAccount($customer_code, $product) | |
| { | |
| /* curl https://api.paystack.co/dedicated_account | |
| -H "Authorization: Bearer YOUR_SECRET_KEY" | |
| -H "Content-Type: application/json" | |
| -d '{ "customer": "CUS_358xertt55", "preferred_bank": "access-bank"}' | |
| -X POST | |
| */ | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "customer"=> $customer_code, | |
| "preferred_bank"=>"wema-bank" | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "customer"=> $customer_code, | |
| "preferred_bank"=>"wema-bank" | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/dedicated_account', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $message1 = $response->getStatusCode(); | |
| $message2 = $response->getReasonPhrase(); | |
| $message3 = $customer_code . " - " . $product; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Create NUBAN Account"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function createNubanCustomer($data, $product) | |
| { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "email"=> $data['emailAddress'], | |
| "phone"=> $data['phoneNumber'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'], | |
| "metadata" => [ | |
| "userid" => $data["CustID"] | |
| ] | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "email"=> $data['emailAddress'], | |
| "phone"=> $data['phoneNumber'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'], | |
| "metadata" => [ | |
| "userid" => $data["CustID"] | |
| ] | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/customer', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $message1 = $response->getStatusCode() ." and " .$response->getReasonPhrase(); | |
| $message2 = "First Name: " . $data['firstName'] . ", Last Name: " . $data['lastName']; | |
| $message3 = "CustID: " . $data['CustID']. ", Product: " .$product; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Create NUBAN Customer"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function updateNubanCustomer($data, $product) | |
| { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "email"=> $data['emailAddress'], | |
| "phone"=> $data['phoneNumber'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'], | |
| "metadata" => [ | |
| "userid" => $data["CustID"] | |
| ] | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "email"=> $data['emailAddress'], | |
| "phone"=> $data['phoneNumber'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'], | |
| "metadata" => [ | |
| "userid" => $data["CustID"] | |
| ] | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/customer/{$data["CustID"]}', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function validateNubanCustomer($data, $product) | |
| { | |
| /* "country": "NG", | |
| "type": "bank_account", | |
| "account_number": "0123456789", | |
| "bvn": "200123456677", | |
| "bank_code": "007", | |
| "first_name": "Asta", | |
| "last_name": "Lavista" */ | |
| /**************************Using first_name -> firstName*******************************************/ | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/customer/'.$data['customerCode'].'/identification', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $message1 = $response->getStatusCode(); | |
| $message2 = $response->getReasonPhrase(); | |
| $message3 = $data['customerCode']." - ".$data['lastName']." - ".$data['firstName']." - ".$data['idType']." - ".$data['idValue']; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Validate NUBAN Customer"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| /**************************Using first_name -> middleName*******************************************/ | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['middleName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['middleName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/customer/'.$data['customerCode'].'/identification', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $message1 = $response->getStatusCode(); | |
| $message2 = $response->getReasonPhrase(); | |
| $message3 = $data['customerCode']." - ".$data['lastName']." - ".$data['middleName']." - ".$data['idType']." - ".$data['idValue']; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Validate NUBAN Customer"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| /**************************Using first_name -> BVNFirstName*******************************************/ | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['BVNFirstName'], | |
| // "last_name" => $data['BVNLastName'], | |
| "last_name" => $data['lastName'], | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['BVNFirstName'], | |
| // "last_name" => $data['BVNLastName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/customer/'.$data['customerCode'].'/identification', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $message1 = $response->getStatusCode(); | |
| $message2 = $response->getReasonPhrase(); | |
| // $message3 = $data['customerCode']." - ".$data['BVNLastName']." - ".$data['BVNFirstName']." - ".$data['idType']." - ".$data['idValue']; | |
| $message3 = $data['customerCode']." - ".$data['lastName']." - ".$data['BVNFirstName']." - ".$data['idType']." - ".$data['idValue']; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Validate NUBAN Customer"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| /**************************Using first_name -> BVNMiddleName*******************************************/ | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['BVNMiddleName'], | |
| // "last_name" => $data['BVNLastName'], | |
| "last_name" => $data['lastName'], | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['BVNMiddleName'], | |
| // "last_name" => $data['BVNLastName'], | |
| "last_name" => $data['lastName'], | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/customer/'.$data['customerCode'].'/identification', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $message1 = $response->getStatusCode(); | |
| $message2 = $response->getReasonPhrase(); | |
| // $message3 = $data['customerCode']." - ".$data['BVNLastName']." - ".$data['BVNMiddleName']." - ".$data['idType']." - ".$data['idValue']; | |
| $message3 = $data['customerCode']." - ".$data['lastName']." - ".$data['BVNMiddleName']." - ".$data['idType']." - ".$data['idValue']; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Validate NUBAN Customer"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function validateNubanCustomer__($data, $product) | |
| { | |
| /* "country": "NG", | |
| "type": "bank_account", | |
| "account_number": "0123456789", | |
| "bvn": "200123456677", | |
| "bank_code": "007", | |
| "first_name": "Asta", | |
| "last_name": "Lavista" */ | |
| /**************************Using fist_name -> firstName*******************************************/ | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn"=> $data['BVN'], | |
| "bank_code"=> $data['bankCode'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn"=> $data['BVN'], | |
| "bank_code"=> $data['bankCode'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/customer/'.$data['customerCode'].'/identification', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $message1 = $response->getStatusCode(); | |
| $message2 = $response->getReasonPhrase(); | |
| $message3 = $data['customerCode']." - ".$data['lastName']." - ".$data['firstName']." - ".$data['idType']." - ".$data['idValue']; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Validate NUBAN Customer- FirstName"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| /**************************Using fist_name -> middleName*******************************************/ | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn"=> $data['BVN'], | |
| "bank_code"=> $data['bankCode'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'json' => [ | |
| "country" => "NG", | |
| "type" => "bank_account", | |
| "account_number" => $data['accountNumber'], | |
| "bvn" => $data['BVN'], | |
| "bank_code" => $data['bankCode'], | |
| "first_name" => $data['firstName'], | |
| "last_name" => $data['lastName'] | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->post('https://api.paystack.co/customer/'.$data['customerCode'].'/identification', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $message1 = $response->getStatusCode(); | |
| $message2 = $response->getReasonPhrase(); | |
| $message3 = $data['customerCode']." - ".$data['lastName']." - ".$data['firstName']." - ".$data['idType']." - ".$data['idValue']; | |
| $message4 = (string) $response->getBody(); | |
| $message5 = "Validate NUBAN Customer- MiddleName"; | |
| container('mutualFundModel')->activity_log($message1,$message2,$message3,$message4,$message5); | |
| $result = json_decode($response->getBody(), true); | |
| return $result; | |
| } | |
| public function checkNubanPaymentTransaction($data, $product) | |
| { | |
| if(strtoupper($product) == "CSPFIFUND") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_MUTUALFUND') | |
| ], | |
| 'query' => [ | |
| "channel" => "dedicated_nuban", | |
| "status" => "success", | |
| "customer" => $data['paystack_customer_id'], | |
| "from" => $data['date'], | |
| "to" => $data['date'], | |
| "amount" => ((float)($data['amount'])) * 100, | |
| ] | |
| ]; | |
| }elseif(strtoupper($product) == "CSWALLET") | |
| { | |
| $options = [ | |
| 'headers' => [ | |
| 'Authorization' => 'Bearer ' . env('PAYSTACK_KEY_CSWALLET') | |
| ], | |
| 'query' => [ | |
| "channel" => "dedicated_nuban", | |
| "status" => "success", | |
| "customer" => $data['paystack_customer_id'], | |
| "from" => $data['date'], | |
| "to" => $data['date'], | |
| "amount" => ((float)($data['amount'])) * 100, | |
| ] | |
| ]; | |
| } | |
| try { | |
| $response = container('guzzle')->get('https://api.paystack.co/transaction', $options); | |
| } catch (\GuzzleHttp\Exception\RequestException $e) { | |
| if ($e->hasResponse()) { | |
| $response = $e->getResponse(); | |
| } | |
| } | |
| $result = json_decode($response->getBody()); | |
| if(empty($result->data)){ | |
| return [ | |
| "payment" => [ | |
| "status" => "01", | |
| "comments" => "No Transaction found", | |
| ], | |
| "data" => [] | |
| ]; | |
| } | |
| foreach($result->data as $eachData){ | |
| if($eachData->status == "success"){ | |
| return [ | |
| "payment" => [ | |
| "status" => "00", | |
| "comments" => "success", | |
| ], | |
| "data" => $eachData | |
| ]; | |
| }elseif($eachData->status == "failed"){ | |
| $response = [ | |
| "payment" => [ | |
| "status" => "02", | |
| "comments" => "Transaction failed", | |
| ], | |
| "data" => $eachData | |
| ]; | |
| } | |
| elseif($eachData->status == "abandoned"){ | |
| $response = [ | |
| "payment" => [ | |
| "status" => "03", | |
| "comments" => " Transaction abandoned", | |
| ], | |
| "data" => $eachData | |
| ]; | |
| }else{ | |
| $response = [ | |
| "payment" => [ | |
| "status" => "01", | |
| "comments" => "No Transaction found", | |
| ], | |
| "data" => [] | |
| ]; | |
| } | |
| } | |
| // $result = json_decode($response, true); | |
| return $response; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment