# Integrasi
TIP
Dokumentasi API dapat Anda akses melalui https://developers.purwantara.id (opens new window)
# 1. Membuat Token
Buat token pada halaman Settings > API.
# 2. Membuat Channel Pembayaran
Parameter | Deskripsi |
---|---|
TOKEN | Token yang telah dibuat seperti pada langkah #1 |
PAYLOAD | Data yang dibutuhkan untuk permintaan ke Purwantara. Selengkapnya dapat dilihat pada halaman API (opens new window). |
CHANNEL | Endpoint channel (virtual-account , qris , ewallet/ovo , ewallet/shopeepay , payment-link dan counter ). |
- cURL
- Nodejs
- Go
- Python
- PHP
curl -X POST https://api.purwantara.id/v1/CHANNEL
-H "Accept: application/json"
-H "Authorization: Bearer TOKEN"
-d 'PAYLOAD'
# 3. Menampilkan Respon pada Aplikasi Anda
Setiap respon dari permintaan diatas, dapat langsung digunakan pada aplikasi yang Anda buat dan digunakan untuk metode pembayaran kepada pelanggan Anda.
# 4. Webhook / Callback
Setiap kali terjadi perubahan pada suatu transaksi yang telah dibuat, Purwantara akan mengirimkan notifikasi pada URL yang bisa Anda daftarkan di Settings > Team > Callback URL.
Setiap notifikasi akan menyertakan tanda tangan yang menggunakan HMAC (opens new window). Dengan memverifikasi tanda tangan ini, Anda mengonfirmasi bahwa notifikasi tersebut dikirim oleh Purwantara.
# Langkah 1: Mengambil Data dari Permintaan HTTP
Anda perlu mengambil data dari permintaan HTTP, yaitu bagian headers dan payload, untuk digunakan dalam proses verifikasi tanda tangan. Contoh data headers dan payload adalah sebagai berikut:
# HEADERS
[
"Accept" => "*/*",
"Signature" => "8ba2b42168c2493e2bab000c1e00563fde688b6651f924f6ad9586e73ae66261",
"User-Agent" => "PPN-WH",
"Content-Type" => "application/json",
"X-PPN-Delivery" => "a656aff8-e8e8-40bb-a6a1-8321dc51f02b"
]
# PAYLOAD
$payload = [
"uuid" => "9cb83507-a0ab-4d59-ae53-123456789012",
"event" => [
"meta" => [
"customer_phone" => "08123456789"
],
"type" => "payment-link",
"channel" => "OVO"
],
"title" => "Demo",
"amount" => "10000.0000",
"status" => "ACTIVE",
"paid_at" => null,
"settle_at" => null,
"channel_id" => 8,
"created_at" => "2023-07-26T03:04:05.000000Z",
"expires_at" => "2023-08-31T05:00:00.000000Z",
"return_url" => null,
"description" => "Demo",
"external_id" => null,
"payment_link_url" => "http://purwantara.id/share/payment-links/9cb83507-a0ab-4d59-ae53-123456789012"
];
# Langkah 2: Membuat Signature yang Diverifikasi
Dalam langkah ini, Anda akan menggunakan fungsi hash_hmac()
untuk membuat tanda tangan (signature) dari payload yang diberikan dan menggunakan secret key yang telah ditentukan. Selanjutnya, Anda akan membandingkan tanda tangan yang dihitung dengan tanda tangan yang dikirimkan dalam headers.
$secret = 'S3CRE7'; // Dari pengaturan Team
$payloadJson = json_encode($payload);
$calculatedSignature = hash_hmac('sha256', $payloadJson, $secret);
$receivedSignature = $headers['Signature'];
if ($calculatedSignature === $receivedSignature) {
// Tanda tangan valid, request berasal dari Purwantara
// Lanjutkan dengan proses yang diperlukan
} else {
// Tanda tangan tidak valid, request mungkin tidak sah
// Lakukan tindakan yang sesuai, seperti menolak permintaan
}
# Sandbox
Kami telah menyediakan mode sandbox sehingga Anda dapat bermain dengan API tanpa membebankan biaya atau mentransfer uang sungguhan. Dalam mode sandbox, interaksi Anda tidak memengaruhi data langsung atau mengirim transaksi nyata melalui jaringan kami. Ini memberi Anda kesempatan untuk menguji integrasi Anda secara menyeluruh sebelum Live.
Platform | URL |
---|---|
Platform utama | https://sandbox.purwantara.id |
API | https://sandbox-api.purwantara.id |
Simulator Pembayaran | https://simulator.purwantara.id |