Cara menggunakan Tripay tanpa Plugin WP, langsung via aplikasi

Tripayment

RYANID.MY.ID - Tidak semua orang menggunakan wordpress sebagai cms mereka, ada kalahnya jika kita ingin membuat aplikasi sendiri, dan ingin menggunakan metode payment gateway sebagai metode pembayaran nya.

Kenapa Harus tripay? sebenarnya ada banyak payment gateway yang bisa kita coba, tapi menurut saya layanan tripayment jauh lebih mudah di banding layanan lain. Untuk membuat akun kamu tidak di haruskan punya identitas usaha yang lengkap, misal NPWP, SIUP, dan lain-lain.

Cukup bermodalkan KPT, dan kartu keluarga saja bisa mendaftar Tripay. Memang sih, salaha satu kesulitan dalam memulai bisnis adalah memperoleh izin. Memperoleh izin tentunya membutuhkan banyak uang, dan waktu, makanya nggak anyak orang / UMKM sanggup mendirikan usaha sendiri.

Sebuah usaha akan sulit berkembang jika tidak bekerjasama dengan perusahaan lain. Untuk bekerja sama dengan perusahaan lain, kamu harus punya izin dan tentunya identitas lengkap. Oke deh nggak perlu di perpanjang, saya harap kamu sudah punya akun tripay.


Kalau sudah punya akun tripay, kamu wajib membuat sebuah mercant. Apa itu merchant tripay? Merchant Tripayment adalah akun atas nama toko yang bisa di gunakan untuk menerima pembayaran. Nama toko / Merchant bisa di muncul dalam slip tagihan pembeli. Sementara satu akun tripay bisa menambahkan lebih dari satu merchant. Sebelum menambahkan merchant, kamu wajib mempunyai website yang akan di gunakan untuk memproses pembayaran.

Di dalam sebuah merchant, terdapat setelan/pengaturan khusus yang nantinya kamu gunakan untuk memproses pembayaran. Daftar di bawah ini akan saya jelaskan elemen yang ada dalam sebuah merchant dan fungsinya.

Sebagai contoh kemarin saya mendaftar menggunakan domain ryanid.my.id, untuk URL callbacknya saya menggunakan url https://ryanid.my.id/callback.php (Nama file samaran, karena aslinya rahasia). URL callback akan di hubungi oleh Trypay ketika ada pembayaran masuk. Prosesnya instan, Sehingga kamu bisa mengelolah proses selanjutnya secara otomatis pada aplikasi kamu. Selain itu ada juga :



1. Channel pembayaran

Channel pemayaran adalah metode pembayaran yang akan kamu gunakan pada merchant tersebut, dalam satu merchant kamu bisa mengaktifkan beberapa metode pembayaran yang ingin di gunakan. Contoh channel pemayaran, misalnya Bank BCA, Bank Mandiri, OVO, Dana, QRIS, dan lain-lain. Kamu bisa mengaktifkan semua jenis channle pembayaran sehingga aplikasi kamu bisa mendukung semua jenis metode pembayaran.



2. Mercahant code.

Adalah kode merchant sebagai authentikasi nama toko, kode ini juga di gunakan saat auhentikasi menggunakan HTTP Header lewat rest API. Kode merchant di gunakan ketika kita ingin membuat sebuah tagihan ke Tripay, kode ini di kirim dalam sebuah permintaan melalui JSON POST.



3. Api key

Api key sebagai kode autentikasi permintaan, api key di gunakan ketika kamu ingin mendapatkan data dari situs web tripay. Kode api key wajib di sertakan, sebagai contoh kamu ingin mengambil daftar channel pembayaran via Rest API. Sama seperti wesite lain yang menggunakan api, mereke memberikan kode unik sebagai pengenal dari sebuah permintaan.



4. Kode Private key

Kode ini ada di dalam sebuah merchant, kegunaannya untuk melakukan authentikasi proses transfer data menggunakan sha256, metode ini penting karena kita bisa mengamankan transaksi palsu yang duat oleh pihak ketiga. Sehingga apabila ada transaksi yang tida ter-authentikasi tidak bisa mengganggu sistem aplikasi yang kita buat.



Berikut ini saya akan memberikan contoh merchant yang sudah siap di gunakan, kamu mungkin perlu melakukan penyiapan merchant sebelum menggunakan layanan tripayment.
merchant ryanid.jpg

Tripay menggunakan dua jenis cara cara pembayaran, pertama direct payment, kedua redirect payment. Perbedaan keduanya terletak pada kontrol dan cara pemayaran, direct payment semus sistem pembayaran di lakukan di web kamu. Sedangkan redirect payment di lakukan di web tripay.

Selain itu ada juga open payment dan closed payment,untuk open payment hanya pemeli yang bisa menentukan nominal yang akan di transfer, sedangkan closed payment merchant/aplikasi kamu yang bisa menentukan jumlah bayaran.

Dalam artikel kali ini saya akan memberikan panduan memproses closed payment menggunakan sistem direct, di mulai dari membuat membuat invoice, menampilkan info tagihan, dan memeriksa pembayaran. Dalam melakukan percobaan, saya akan menggunakan API sandbox, api sandbox memang di khususkan untuk developer melakukan percobaan pada aplikasi mereka.

Untuk membuat sebuah tagihan yang valid di butuhkan, disini saya tidak akan mengajarkan bagaimana kamu memproses sebuah form. Ingat, kalau sudah sampai ke Payment Gateway itu artinya skill coding kamu sudah lumayan. Jangan jadi developer yang hanya menyalin tempel kode terus menerus, tapi belajarlah dari nol mengembangkan aplikasi web sendiri.

  • Nama pembeli
  • Nomor HP pembeli
  • Alamat email pembeli
  • Nama barang/Produk

Saya akan masukan data di atas ke dalam seuah variabel, untuk kuantitas atau jumlah barangnya saya hanya gunakan satu saja. Silakan pahami data di bawah ini :

<?php
$nama = "Ryan jauhari";
$hp = "0857832993xx";
$email = "[email protected]";
$barang = "Jasa Bot telegram";
$merchant_code = "T10xx";
$api_key = "KODE_API_KAMU";
$private_key = "KODE_PRIVATE_KEY";
$method = "";
$pay_url = "https://tripay.co.id/api-sandbox/transaction/create"; // ini api sandbox, untuk testing

// variabel ini memanggil sebuah function
// Saya buat fungsi biar nggak ribet kalau pengen di gunakan pada file lain.
$get = invoice($nama, $email, $hp, $method, $harga ,$produk, $api_key, $private_key, $merchant_code, "NAMA_TOKO_". time(), $pay_url, "https://your-domain.com/callback.php");

// Menampilkan tagihan dari tripay
echo '<p>Anda membeli produk <b>'.$get["data"]["order_items"][0]["name"].'</b> dengan harga Rp '.number_format($get["data"]["order_items"][0]
["price"]).', silakan selesaikan pembayaran tagihan anda dibawah ini.</p>

// tampilkan juga keterangan produk yang di beli
<p><table border="1" width="90%">
<tr><th>Metode Pembayaran</th> <td>'.$get["data"]["payment_name"].'</td></tr>
<tr><th>Nama </th> <td>'.$get["data"]["customer_name"].'</td></tr>

<tr><th>Email </th> <td>'.$get["data"]["customer_email"].'</td></tr>

<tr><th>HP</th> <td>'.$get["data"]["customer_phone"].'</td></tr>

<tr><th>Biaya Transfer</th> <td><!-- Rp '.number_format(($get["data"]["order_items"][0]["price"])).' + fee--> Rp '.number_format($get["data"]
["fee_customer"]).'</td></tr>


<tr><th>Kode Referensi</th> <td>'.$get["data"]["reference"].'</td></tr>


<tr><th>Total Bayar</th> <td><mark>Rp '.number_format($get["data"]["amount"]).'</mark></td></tr>
</table></p>';

// Tampilkan instrukasi pembayaran yang di berikan oleh tripay
if ($get["data"]["payment_method"] == "ALFAMART" || $get["data"]["payment_method"] == "ALFAMIDI"){
echo 'Silakan datang ke kasir '.$get["data"]["payment_name"].' terdekat di tempat anda, sampaikan ke kasir anda ingin membayar <u>Plasamall</u> dan 
berikan kode pembayaran dibawah ini:<br/>
KODE BAYAR :  <b>'.$get["data"]["pay_code"].'</b><br/>';
} else

if ($get["data"]["pay_code"]){
echo 'Silakan transfer pembayaran dengan nominal yang sama seperti <mark>total bayar</mark> di atas. Salin kode Virtual Account<br/>
KODE VA :  <b>'.$get["data"]["pay_code"].'</b><br/>';
} else

if ($get["data"]["qr_url"]){
echo 'Scan Kode QRIS Berikut dengan aplikasi apa saja yang mendukung pembayaran Via QRIS. OVO, DANA, GOPAY, NETZME, BCA, JAGO dan lain-lain.<br/>
<img src="'.$get["data"]["qr_url"].'" width="400px"/><br/><br/>';
} 

echo '<i style="color:red">Silakan bayar sebelum '.date("D d M Y, H:i:s", $get["data"]["expired_time"]).'</i></p>

?>

Fungsi di bawah ini di gunakan untuk melakukan pembuatan tagihan ke situs web tripay, demi keamanan dari para perusak koding saya akan enkripsi. Siapa perusak koding? Perusak koding adalah blogger yang menyalin artikel orang lain tanpa izin, mengganti nama variabel, serta mengaku-ngaku skrip buatan mereka.

Hasilnya saya mencoba menampilkan metode cara pembayaran, nomor rekening VA, dan juga waktu kadaluarsa tagihan. Oh iya, skrip di atas harus di jalankan dengan menyertakan fungsi di bawah ini. Tenang saja, aman saya menjamin tidak ada apapun dalam kode di bawah ini.

<? 
function invoice($nama, $email, $phone, $method, $harga ,$produk, $apiKey, $privateKey, $merchantCode, $merchantRef, $pay_url, $callback, $expired= (time()+(60*60)*24) ){

$data = [
  'method'            => $method,
  'merchant_ref'      => $merchantRef,
  'amount'            => $harga,
  'customer_name'     => $nama,
  'customer_email'    => $email,
  'customer_phone'    => $phone,
  'order_items'       => [
    [
      'sku'       => 'Produk1',
      'name'      => $produk,
      'price'     => $harga,
      'quantity'  => 1
    ]
  ],
  'callback_url'      => $callback,
  'return_url'        => $callback,
  'expired_time'      => $expired, 
  'signature'         => hash_hmac('sha256', $merchantCode.$merchantRef.$harga, $privateKey)
];

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_FRESH_CONNECT     => true,
  CURLOPT_URL               => $pay_url,
  CURLOPT_RETURNTRANSFER    => true,
  CURLOPT_HEADER            => false,
  CURLOPT_HTTPHEADER        => array(
    "Authorization: Bearer ".$apiKey
  ),
  CURLOPT_FAILONERROR       => false,
  CURLOPT_POST              => true,
  CURLOPT_POSTFIELDS        => http_build_query($data)
));

$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
return $response;
}
 ?>



Cara memproses pembayaran otomatis dengan sistem direct

pada kodingan kita sebelumnya saya menyertakan url callaback dengan alamat https://ryanid.my.id/callback.php, nah alamat callback ini yang akan kita gunakan untuk menerima informasi dari tripayment ketika ada pembayaran masuk. Cara memprosesnya gampang, kamu lihat saja baris kode dibawah ini. File name : calback.php

Ingat ya url callback adalah url merchant anda yang anda daftarkan ke Tripay, url ini akan menerima informasi dari tripayment ketika ada proses pembayaran masuk, pembayaran gagal, pemayaran di kembalikan, dan pembayaran di batalkan. Kamu harus menyimpan respon atau hasilnya ke dalam database agar bisa di tampilkan ke user.

<?php
header("content-type:text/json");

// Untuk print dokumen halaman ini gunakan array json
// file ini berkomunikasi secara langsung dengan tripay
// jika ada transaksi masuk maka file ini akan di hubungi tripay beserta pengiriman data lewat protokol internet


$apikey = "Kode_API";
$privatekey = "Kode_Private_Key";
// ambil data json callback notifikasi
$json = file_get_contents("php://input");
$signature = hash_hmac('sha256', $json, $privatekey);


// ambil callback signature
// kita ambil signature, apakah sama atau sudah di modifikasi
$callbackSignature = isset($_SERVER['HTTP_X_CALLBACK_SIGNATURE']) ? $_SERVER['HTTP_X_CALLBACK_SIGNATURE'] : '';
// validasi signature
if( $callbackSignature !== $signature ) {
    exit("Validasi signature gagal, halaman ini hanya boleh di akses dengan menyertakan JSON data "); // signature tidak valid, hentikan proses
}

$data = json_decode($json, true);
$event = $_SERVER['HTTP_X_CALLBACK_EVENT'];



// Bagian ini memeriksa pembayaran...
if ( $event == "payment_status" ){

// ststus pembayaran
// PAID, UNPAID, REFUND, FAILED
  $payment_status = $data["status"];

// nomor tagihan tripay
  $referensi = $data["reference"];


if ($payment_status == "UNPAID"){
// tagihan belum di bayar, silakan update database jadi unpaid untuk id tagihan $referensi
}

if ($payment_status == "PAID"){
// tagihan sukses di bayar, silakan update database jadi unpaid untuk id tagihan $referensi
}

if ($payment_status == "REFUND"){
// uang di kembalikan, silakan update database jadi unpaid untuk id tagihan $referensi
}

if ($payment_status == "FAILED"){
// Pembayaran gagal... silakan update database jadi unpaid untuk id tagihan $referensi
}
}

?>

Sebenarnya skripnya akan lebih komplit jika kita melakukan tahap demi tahap, di tahap awal kamu harus terhubung ke tripay untuk mengambil data channel pembayaran. Data channel pembayaran ini isinya kode bank va, dan juga nama channel pembayaran. Misalnya BCA kode nya BCAVA.

Tripayment tidak hanya mengggunakan plugin wordpress saja, tapi juga bisa menggunakan koding cURL sendiri. Bahkan pada halama dokumentasi situs resmi nya sudah lengkap teknik mengaitkan aplikasi dengan tripayment.

Channel pembayaran di tampilkan dalam sebuah kolom area pilihan, option nya berupa nama dan isi nya berupa kode. Dalam data channel pembayaran juga terdapat fee, sehingga kamu bisa mengkalkulasikan otomatis tanpa harus menggunakan kalkulator dari Tripay.



Bila kamu membutuhkan bantuan saya dalam mengaitkan aplikasi ke Tripay.co.id saya menyediakan jasa kok, cukup bayar 50rb saja saya bisa bantu kamu dalam proses pengaitan aplikasi/codingan ke Tripay. Bila berminat silakan hubungi saja saya via WhatsApp

RyanID
RyanID Saya aslinya tertarik pada teknologi elekronika, tapi karena kurang di dukung ortu, akhirnya pindah ke coding. Saat ini bekerja sebagai fullstack dev di Netzku.com