Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function depositNotify(Request $request){
- // Redirect here to Cinetpay with post data
- $deposit = Deposit::where('tx_id',$request->input('cpm_trans_id'))->first();
- if( $deposit ){
- // We found the transaction in our database
- if( $deposit->status == 'completed'){
- // The transaction is done
- die();
- }else{
- $deposit->delete();
- }
- }
- $logs = var_export($_POST, true);
- error_log($logs);
- $deposit = new Deposit([
- 'amount' => $_POST['cpm_amount'],
- 'tx_id'=> $_POST['cpm_trans_id'],
- 'yustx_id' => $this->generateYustxId(),
- 'user_id' => $_POST['cpm_custom'],
- 'vendor' => 'cinetpay',
- 'method' => '',
- 'yus_fees_percentage' =>0,
- 'type' => 'deposit',
- 'status' => 'pending',
- 'ticker_symbol' =>'CFA',
- 'tx_hash' => $_POST['signature'],
- 'address' => $_POST['cel_phone_num']
- ]);
- $deposit->save();
- //Let's now check the payment status
- $query = "?method=checkPayStatus";
- $response = $this->client->post($query,[
- 'headers' => ['Content-Type' => 'application/x-www-form-urlencoded'],
- 'form_params' =>[
- 'apikey' => $this->cinetPay->apikey,
- 'cpm_site_id' => $this->siteId,
- 'cpm_trans_id' => $deposit->tx_id
- ]
- ]);
- $response = json_decode($response->getBody()->getContents());
- $response = $response->transaction;
- $logs = var_export($response, true);
- error_log($logs);
- if( !empty($response->cpm_result) && $response->cpm_result == '00' && $response->cpm_amount == $deposit->amount && $response->signature == $deposit->tx_hash){
- $deposit->status = 'completed';
- $deposit->method= $_POST['payment_method'];
- $deposit->save();
- // Update the user balance finally ...
- $userWallet = Wallet::where(['user_id'=>$deposit->user_id,'ticker_symbol'=>'CFA'])->first();
- $userWallet->balance += $response->cpm_amount;
- $userWallet->save();
- }else{
- $deposit->status = 'failed';
- $deposit->save();
- }
- }
Add Comment
Please, Sign In to add comment