Code php respon từ VietQR

Transaction Sync (Nhận Biến Động Số Dư)

Code php respon trả về khi nhận được callback từ VietQR

/**
 * -----------------------------------------
 * Transaction Sync (Nhận Biến Động Số Dư VietQr.vn|VietQR.com - 0922333636)
 * -----------------------------------------
 */
public function topup_transaction_sync()
{
	$response 		= [];
	$validate_token = $this->authorization_token->validateToken();
	if ($validate_token['status'] == FALSE) {
		$response['error']     		= false;
		$response['errorReason']	= $validate_token['message'];
		$response['toastMessage']	= '';
		$response['object']			= array(
			'reftransactionid' => ''
		);
	} else {
		$input_data			= file_get_contents('php://input');
		$input_data			= (array)json_decode($input_data);
		$orderId 			= $input_data['orderId'] ? $input_data['orderId'] : 0;
		$transactionid 			= $input_data['transactionid'];
		$transactiontime 		= $input_data['transactiontime'];
		$referencenumber 		= $input_data['referencenumber'];
		$amount 			= $input_data['amount'];
		$content 			= $input_data['content'];
		$bankaccount 			= $input_data['bankaccount'];
		$transType 			= $input_data['transType'];

		// Ghi log VietQR VN 
		$data = array(
			'agent_id' 		=> $orderId,
			'transactionid' 	=> $transactionid,
			'transactiontime'	=> $transactiontime,
			'referencenumber'	=> $referencenumber,
			'amount'		=> $amount,
			'content'		=> $content,
			'bankaccount'		=> $bankaccount,
			'transType'		=> $transType,
			'orderId'		=> $orderId,
			'date_add'		=> date('Y-m-d H:i:s', time())
		);
		$this->db->insert($this->agent_model->tbl_topup_vietqr_log, $data);

		// Lấy thông tin đại lý
		$agent = $this->agent_model->obj($data['agent_id']);
		if ($agent) {
			// Cộng topup
			$this->db->update($this->agent_model->tbl, array(
				'topup_amount' => $agent->topup_amount + $data['amount']
			), array(
				'id' => $agent->id
			));

			// Lưu log topup
			$data_topup_log = array(
				'agent_id' 	=> $agent->id,
				'amount'	=> $data['amount'],
				'date_add'	=> date('Y-m-d H:i:s', time()),
				'status'	=> 'plus',
				'note'		=> $data['content'],
				'source'	=> 'vietqr'
			);
			$this->db->insert($this->agent_model->tbl_topup_log, $data_topup_log);
		}

		// Response
		$response['error']     		= true;
		$response['errorReason']    = 'Ok';
		$response['toastMessage']	= '';
		$response['object']			= array(
			'reftransactionid' => ''
		);
	}
	die(json_encode($response));
}

Last updated