Advertisement
jamboljack

VA Winpay

Jan 21st, 2024
894
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.73 KB | None | 1 0
  1. $httpMethod  = 'POST';
  2.             $endpointUrl = $detail->jenis_bayar_pk1;
  3.             $timestamp   = date(DateTime::RFC3339);
  4.             $dateTime    = new DateTime($timestamp);
  5.             $dateTime->modify('+1 hours');
  6.             $expiredDate = $dateTime->format(DateTime::RFC3339);
  7.             $totalAmount = array(
  8.                 'value'    => $detail->invoice_total,
  9.                 'currency' => "IDR",
  10.             );
  11.             // Kode Bank
  12.             $additionalInfo = array(
  13.                 'channel' => $detail->jenis_bayar_code,
  14.             );
  15.  
  16.             $payload = array(
  17.                 "customerNo"            => $detail->pelanggan_nomor,
  18.                 "virtualAccountName"    => $detail->pelanggan_nama,
  19.                 "trxId"                 => $detail->invoice_nomor,
  20.                 "totalAmount"           => $totalAmount,
  21.                 "virtualAccountTrxType" => 'c',
  22.                 "expiredDate"           => $expiredDate,
  23.                 "additionalInfo"        => $additionalInfo,
  24.             );
  25.  
  26.             $body                  = json_encode($payload);
  27.             $hashedBody            = strtolower(bin2hex(hash('sha256', json_encode($payload, JSON_UNESCAPED_SLASHES), true)));
  28.             $signature             = $this->generateSignatureRequest($httpMethod, $endpointUrl, $hashedBody, $timestamp);
  29.             $requestHeadersRequest = array(
  30.                 'Content-Type: application/json',
  31.                 'Accept: application/json',
  32.                 'X-TIMESTAMP: ' . $timestamp,
  33.                 'X-SIGNATURE: ' . $signature,
  34.                 'X-PARTNER-ID: ' . $detail->jenis_bayar_mk,
  35.                 'X-EXTERNAL-ID: ' . uniqid(),
  36.                 'CHANNEL-ID: WEB',
  37.             );
  38.  
  39.             $urlAPI         = $detail->jenis_bayar_url;
  40.             $urlPostrequest = $urlAPI . $detail->jenis_bayar_pk1;
  41.             $curl           = curl_init();
  42.             curl_setopt_array($curl, array(
  43.                 CURLOPT_URL            => $urlPostrequest,
  44.                 CURLOPT_RETURNTRANSFER => true,
  45.                 CURLOPT_ENCODING       => '',
  46.                 CURLOPT_MAXREDIRS      => 10,
  47.                 CURLOPT_TIMEOUT        => 0,
  48.                 CURLOPT_FOLLOWLOCATION => true,
  49.                 CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
  50.                 CURLOPT_CUSTOMREQUEST  => 'POST',
  51.                 CURLOPT_POSTFIELDS     => $body,
  52.                 CURLOPT_HTTPHEADER     => $requestHeadersRequest,
  53.             ));
  54.  
  55.             $Respx = curl_exec($curl);
  56.             curl_close($curl);
  57.             $rsp  = json_decode($Respx, true);
  58.             $Code = $rsp['responseCode'];
  59.             if ($Code == '2002700') {
  60.                 $virtualAccountNo = $rsp['virtualAccountData']['virtualAccountNo'];
  61.                 $partnerServiceId = $rsp['virtualAccountData']['partnerServiceId'];
  62.                 // Update Payment Code
  63.                 $invoice_id  = $detail->invoice_id;
  64.                 $dataPayment = array(
  65.                     'winpay_data'  => $Respx,
  66.                     'reff_id'      => trim($partnerServiceId),
  67.                     'payment_code' => trim($virtualAccountNo),
  68.                 );
  69.  
  70.                 $this->db->where('invoice_id', $invoice_id);
  71.                 $this->db->update('sid_invoice', $dataPayment);
  72.  
  73.                 $invoice_id_enc = $this->secure->encrypt_url($invoice_id);
  74.                 $response       = ['status' => 'success', 'url_payment' => site_url('client/invoice/payment/' . strtolower($KodeBank) . '/' . $invoice_id_enc)];
  75.             } else {
  76.                 $message  = $rsp['responseMessage'];
  77.                 $response = ['status' => 'error', 'status_message' => $message];
  78.             }
  79.  
  80.             echo json_encode($response);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement