Membuat Parser QRIS CPM Dengan ChatGPT

Sandi Fajariadi
4 min readMar 21, 2023

Setelah sebelumnya bisa membuat parser QRIS MPM dengan bantuan ChatGPT (bisa dilihat disini) kali ini saya tertantang untuk membuat parser QRIS CPM, tentunya dibantu ChatGPT juga. Kira-kira bisa gak ya?

Kenapa agak ragu, karena jujur saya sama sekali tidak paham cara membaca QRIS CPM, ada kode HEXA yang digunakan, berbeda dengan QRIS MPM yang hanya membaca string biasa sehingga langsung bisa terbaca dengan hanya melihat string nya saja.

Sebelumnya saya akan sedikit menjelaskan perbedaan QRIS MPM dan QRIS CPM.

MPM itu singkatan dari Merchant Presented Mode, dimana QRIS akan ditampilkan oleh merchant/penjual. Customer akan membuka aplikasi mereka dan melakukan scan kepada QRIS milik merchant tersebut. Hal ini yang umum kita jumpai sekarang kalau kita membayar menggunakan QRIS.

CPM itu singkatan dari Customer Presented Mode, dimana QRIS akan ditampilkan oleh customer/pembeli. Di proses ini, sebaliknya, si merchant/penjual yang akan melakukan scan QRIS milik customer. Contohnya seperti transaksi di mesin layanan pesan mandiri McDonald’s. Dengan mesin tersebut, QRIS di aplikasi kita bisa discan untuk dilakukan pembayaran.

Format QRIS CPM berbeda dengan format QRIS MPM. Seperti kita ketahui kalau format QRIS MPM berupa string yang mempunyai format 2 digit ID, 2 digit length value dan sisa nya adalah value nya sesuai panjang yang diinformasikan sebelumnya.

Di CPM format yang digunakan adalah HEXA dan harus melakukan pengecekan di setiap kode HEXA, bukan string.

Pertama yang saya coba, saya minta ChatGPT untuk langsung melakukan parsing dengan petunjuk Consumer Presented Mode

Tapi hasilnya gagal, cara yang digunakan tidak sesuai. Data tidak bisa dibaca. Saya lalu mencoba beberapa cara, sampai nyasar minta menggunakan BER-TLV segala.

Jadi makin ngawur hasilnya. Udah gitu ChatGPT gratisan sering ngadat saat memberikan respon. Akhirnya pindah ke Poe nya Quora, ada ChatGPT nya juga dan jarang ngadat. Ok, kita coba pendekatan berbeda. Saya akan berikan contoh dan hasil yang diinginkan.

Tapi si Om Gepete masih saja salah terus membuat code nya. Dan saya harus terus melakukan koreksi.

Dan tidak berhasil juga. Udah mau menyerah saja tadinya, ribet juga ngomong sama mesin yak 😁 Tapi saya coba pendekatan lain lagi, saya minta coba di print saja per baris untuk debugging terlebih dahulu.

Akhirnyaaaaa. Nah tinggal melakukan parsing. Tapi si Om Gepete masih saja gagal parsing, aarrghhhhh. Jadi saya mesti turun tangan juga ngedebug.

Haiyah, gimana nih si Om, mesti dibantu juga. Sudah dapat nih 1 data, tetapi data kedua nya belum dapat. Mesti dikasih tahu lagi caranya.

Dan akhirnya dapat juga hasilnya, fiuhhhhh.

Kode QRIS CPM asli adalah :

hQVDUFYwMWEVTwfRI0VniRAQWgqTYBI0ESNFZ4mf

Hasil parsingnya adalah :

ADF Name: D1234567891010

Application PAN: 9360123411234567899

Total waktu yang dibutuhkan sekitar 3 jam untuk mendapatkan hasil ini. Ini dua2nya sama gaptek QRIS CPM. Yang minta tolong dibuatkan cara parsing QRIS CPM belum paham kode QRIS CPM nya, yang diminta tolong juga sama saja.

Oiya, btw, Om Gepete sepertinya tahu sebentar lagi mau Ramadhan, soalnya banyak banget minta maaf nya 😅

Mohon maaf lahir batin juga Om Gepete 🙏

Sandi Fajariadi mempunyai pengalaman di product development terutama terkait payment, emoney dan ewallet. Di waktu senggang membuat aplikasi mobile seperti QRIS wantuno, cek RS dan dengan temannya bersenang senang membuat beberapa lagu di The Vader

Originally published at https://www.linkedin.com.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Sandi Fajariadi
Sandi Fajariadi

Written by Sandi Fajariadi

10+ years deep in payment systems, always curious about QRIS. Let's talk!

No responses yet

Write a response