Midtrans-Middleware
Go to file
Tengku Achmad c671468462 feat: add POST /api/payment-links to accept direct order_id/customer/expire_at payload
Adds a new endpoint that creates a shareable Midtrans Snap payment link
straight from { order_id, nominal, customer, expire_at } without remapping
to the mercant_id/item[] shape required by /createtransaksi.

order_id is sanitized (':' and other disallowed chars -> '.') before being
sent to Midtrans, while the mercant_id used for ERP webhook notification is
derived from the original, unsanitized order_id so ERP always gets a clean
identifier instead of the full composite order_id.

Includes a Postman collection covering link creation, resolution, status
check, and replaying a captured Midtrans notification payload for local
webhook debugging.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 21:47:15 +07:00
postman feat: add POST /api/payment-links to accept direct order_id/customer/expire_at payload 2026-08-03 21:47:15 +07:00
public feat: update favicon and page title for branding 2025-11-22 11:58:37 +07:00
scripts Fix Snap payment flow: direct to payment UI in step 2 and add customer/item details to API request 2025-12-03 17:01:12 +07:00
server feat: add POST /api/payment-links to accept direct order_id/customer/expire_at payload 2026-08-03 21:47:15 +07:00
src Merge branch 'main' of https://git.winteraccess.id/root/Midtrans-Middleware 2026-01-06 20:46:26 +07:00
tests fix: update webhook signature retrieval and enhance error logging; correct file path in payment link test 2025-12-08 11:58:44 +07:00
v4-backup/.bmad-core new improvement 2025-11-25 16:24:52 +07:00
web-bundles feat(payments): stabilisasi QRIS & CStore; hapus tombol Buat QR 2025-11-10 11:10:35 +07:00
.gitignore feat: update global styles and Tailwind configuration with Inter font; remove obsolete test files and add server documentation 2025-12-04 22:57:38 +07:00
README.md feat(payments): stabilisasi QRIS & CStore; hapus tombol Buat QR 2025-11-10 11:10:35 +07:00
ecosystem.config.cjs adding ecosystem 2025-11-28 07:24:50 +00:00
eslint.config.js feat(payments): stabilisasi QRIS & CStore; hapus tombol Buat QR 2025-11-10 11:10:35 +07:00
index.html feat: update global styles and Tailwind configuration with Inter font; remove obsolete test files and add server documentation 2025-12-04 22:57:38 +07:00
package-lock.json feat: add fs and path dependencies; update server logging and webhook handling 2025-12-05 15:05:51 +07:00
package.json feat: add fs and path dependencies; update server logging and webhook handling 2025-12-05 15:05:51 +07:00
postcss.config.cjs feat(payments): stabilisasi QRIS & CStore; hapus tombol Buat QR 2025-11-10 11:10:35 +07:00
tailwind.config.ts feat: update global styles and Tailwind configuration with Inter font; remove obsolete test files and add server documentation 2025-12-04 22:57:38 +07:00
tsconfig.app.json feat(payments): stabilisasi QRIS & CStore; hapus tombol Buat QR 2025-11-10 11:10:35 +07:00
tsconfig.json feat(payments): stabilisasi QRIS & CStore; hapus tombol Buat QR 2025-11-10 11:10:35 +07:00
tsconfig.node.json feat(payments): stabilisasi QRIS & CStore; hapus tombol Buat QR 2025-11-10 11:10:35 +07:00
vite.config.ts feat(payments): stabilisasi QRIS & CStore; hapus tombol Buat QR 2025-11-10 11:10:35 +07:00

README.md

Core Midtrans CIFO (Frontend)

Frontend Vite + React untuk integrasi Midtrans Core API dengan UI kustom.

Setup

  1. Duplikasi file contoh env dan isi nilainya:
cp .env.example .env.local

Isi .env.local (lihat .env.example untuk referensi):

VITE_API_BASE_URL=http://localhost:8000/api
VITE_MIDTRANS_CLIENT_KEY=YOUR_CLIENT_KEY
VITE_MIDTRANS_ENV=sandbox
  1. Jalankan pengembangan:
npm install
npm run dev

App akan tersedia di http://localhost:5173/ (atau port lain jika 5173 dipakai).

Catatan Integrasi Midtrans

  • Client Key hanya digunakan di frontend (mis. tokenisasi kartu/3DS). Server Key TIDAK pernah di frontend.
  • Semua request ke Midtrans dilakukan lewat backend (VITE_API_BASE_URL). Frontend memanggil endpoint seperti /payments/:orderId/status.
  • Status real-time dapat diimplementasikan via polling (TanStack Query) atau SSE/WebSocket dari backend.

Struktur Env di Kode

  • Akses env melalui modul src/lib/env.ts:
    • Env.API_BASE_URL
    • Env.MIDTRANS_CLIENT_KEY
    • Env.MIDTRANS_ENV

Lisensi

Internal project skeleton.