Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function ReversePayment($payment, $amount)
- {
- $uuid = $payment['transaction_id'];
- // Дата и время формирования запроса на проверку статуса
- $dateTime = date('Y-m-d\TH:i:s');
- // Секретный ключ для подписи
- $secretKey = $this->signature;
- // Формируем строку для подписи
- $signature_string = $uuid . $dateTime . $this->merchant_id;
- // Генерируем подпись
- $signature = $this->generate_signature($signature_string, $secretKey);
- // Формируем параметры GET-запроса
- $params = [
- 'uuid' => $uuid,
- 'datetime' => $dateTime,
- 'merchantId' => $this->merchant_id
- ];
- // Формируем URL для запроса
- // $url = 'https://qr-test.bpay.md/api/Qr/GetQrStatus?' . http_build_query($params);
- $url = 'https://qr-merchant.bpay.md/api/Qr/GetQrStatus?' . http_build_query($params);
- // Заголовки для запроса
- $headers = [
- 'X-TraceReference: ' . $this->generate_trace_reference(),
- 'X-HMAC-Signature: ' . $signature
- ];
- // Отправляем GET-запрос
- $response = $this->send_get_request($url, $headers);
- if ($response['isPaid'] && $response['paymentDetails']['state'] == 100) {
- $receiptNr = $response['paymentDetails']['receipt'];
- $postData = [
- "datetime" => $dateTime,
- "merchantId" => $this->merchant_id,
- "receiptNr" => $receiptNr,
- "amount" => $amount,
- "description" => 'Reverse Payment'
- ];
- // Формирование строки для подписи
- $signatureString = $dateTime . $this->merchant_id . $receiptNr . $amount . $postData['description'];
- // Генерация подписи HMAC SHA256
- $hmacSignature = $this->generate_signature($signatureString, $secretKey);
- // Заголовки для запроса
- $headers = [
- 'X-TraceReference: ' . $this->generate_trace_reference(),
- 'X-HMAC-Signature: ' . $hmacSignature,
- 'Content-Type: application/json'
- ];
- $url = 'https://qr-merchant.bpay.md/api/Qr/ReversePayment?' . http_build_query($postData);
- $curl = curl_init();
- curl_setopt_array($curl, array(
- CURLOPT_URL => $url,
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => '',
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 0,
- CURLOPT_FOLLOWLOCATION => true,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => 'POST',
- CURLOPT_POSTFIELDS => array(),
- CURLOPT_HTTPHEADER => $headers,
- ));
- $responseInfo = curl_exec($curl);
- $trans_data_array = [
- 'contact_id' => $payment['contact_id'],
- 'create_datetime' => date("Y-m-d H:i:s"),
- 'type' => 'reduce',
- 'amount' => $amount,
- 'method' => $payment['method'],
- 'transaction_id' => $payment['transaction_id'],
- 'comment' => 'MIA возврат средств',
- 'status' => 'completed',
- 'email_send' => $payment['email_send'],
- 'trans_meterstop' => $payment['trans_meterstop'],
- 'trans_duration' => $payment['trans_duration'],
- 'trans_station' => $payment['trans_station'],
- 'trans_connector' => $payment['trans_connector'],
- 'trans_tarif' => $payment['trans_tarif'],
- 'locale' => $payment['locale'],
- 'currency' => $payment['currency'],
- 'user_type' => $payment['user_type'],
- 'info' => json_encode($responseInfo),
- ];
- if (!$this->websocket->insert('payments', $trans_data_array)) {
- $this->CI->db->insert('mia_logs', array('log'=>'error insert', 'pay_id'=>$payment['id']));
- return false;
- }
- return 1;
- }
- return $response;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement