Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $httpMethod = 'POST';
- $endpointUrl = $detail->jenis_bayar_pk1;
- $timestamp = date(DateTime::RFC3339);
- $dateTime = new DateTime($timestamp);
- $dateTime->modify('+1 hours');
- $expiredDate = $dateTime->format(DateTime::RFC3339);
- $totalAmount = array(
- 'value' => $detail->invoice_total,
- 'currency' => "IDR",
- );
- // Kode Bank
- $additionalInfo = array(
- 'channel' => $detail->jenis_bayar_code,
- );
- $payload = array(
- "customerNo" => $detail->pelanggan_nomor,
- "virtualAccountName" => $detail->pelanggan_nama,
- "trxId" => $detail->invoice_nomor,
- "totalAmount" => $totalAmount,
- "virtualAccountTrxType" => 'c',
- "expiredDate" => $expiredDate,
- "additionalInfo" => $additionalInfo,
- );
- $body = json_encode($payload);
- $hashedBody = strtolower(bin2hex(hash('sha256', json_encode($payload, JSON_UNESCAPED_SLASHES), true)));
- $signature = $this->generateSignatureRequest($httpMethod, $endpointUrl, $hashedBody, $timestamp);
- $requestHeadersRequest = array(
- 'Content-Type: application/json',
- 'Accept: application/json',
- 'X-TIMESTAMP: ' . $timestamp,
- 'X-SIGNATURE: ' . $signature,
- 'X-PARTNER-ID: ' . $detail->jenis_bayar_mk,
- 'X-EXTERNAL-ID: ' . uniqid(),
- 'CHANNEL-ID: WEB',
- );
- $urlAPI = $detail->jenis_bayar_url;
- $urlPostrequest = $urlAPI . $detail->jenis_bayar_pk1;
- $curl = curl_init();
- curl_setopt_array($curl, array(
- CURLOPT_URL => $urlPostrequest,
- 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 => $body,
- CURLOPT_HTTPHEADER => $requestHeadersRequest,
- ));
- $Respx = curl_exec($curl);
- curl_close($curl);
- $rsp = json_decode($Respx, true);
- $Code = $rsp['responseCode'];
- if ($Code == '2002700') {
- $virtualAccountNo = $rsp['virtualAccountData']['virtualAccountNo'];
- $partnerServiceId = $rsp['virtualAccountData']['partnerServiceId'];
- // Update Payment Code
- $invoice_id = $detail->invoice_id;
- $dataPayment = array(
- 'winpay_data' => $Respx,
- 'reff_id' => trim($partnerServiceId),
- 'payment_code' => trim($virtualAccountNo),
- );
- $this->db->where('invoice_id', $invoice_id);
- $this->db->update('sid_invoice', $dataPayment);
- $invoice_id_enc = $this->secure->encrypt_url($invoice_id);
- $response = ['status' => 'success', 'url_payment' => site_url('client/invoice/payment/' . strtolower($KodeBank) . '/' . $invoice_id_enc)];
- } else {
- $message = $rsp['responseMessage'];
- $response = ['status' => 'error', 'status_message' => $message];
- }
- echo json_encode($response);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement