From 960f64ee817239a48687e306c5e5feed7decdb6a Mon Sep 17 00:00:00 2001 From: riz081 Date: Tue, 1 Jul 2025 13:07:14 +0700 Subject: [PATCH] Implement Integrasi Prduction key midtrans --- .../com/example/bdkipoc/qris/QrisActivity.java | 18 +++++++++++++----- .../bdkipoc/qris/QrisResultActivity.java | 12 ++++++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/example/bdkipoc/qris/QrisActivity.java b/app/src/main/java/com/example/bdkipoc/qris/QrisActivity.java index 0f37f41..997a236 100644 --- a/app/src/main/java/com/example/bdkipoc/qris/QrisActivity.java +++ b/app/src/main/java/com/example/bdkipoc/qris/QrisActivity.java @@ -69,10 +69,17 @@ public class QrisActivity extends AppCompatActivity { private static final long TRANSACTION_COOLDOWN_MS = 5000; // 5 second cooldown private static final String BACKEND_BASE = "https://be-edc.msvc.app"; - private static final String MIDTRANS_CHARGE_URL = "https://api.sandbox.midtrans.com/v2/charge"; - private static final String MIDTRANS_AUTH = "Basic U0ItTWlkLXNlcnZlci1PM2t1bXkwVDl4M1VvYnVvVTc3NW5QbXc="; + private static final String MIDTRANS_SANDBOX_AUTH = "Basic U0ItTWlkLXNlcnZlci1PM2t1bXkwVDl4M1VvYnVvVTc3NW5QbXc="; + private static final String MIDTRANS_PRODUCTION_AUTH = "TWlkLXNlcnZlci1sMlZPalotdVlVanpvNnU4VzAtYmF1a2o="; // Base64 of "Mid-server-l2VOjZ-uYUjzo6u8W0-baukj:" + + // Currently active server key (switch by commenting/uncommenting) + // private static final String MIDTRANS_AUTH = MIDTRANS_PRODUCTION_AUTH; + private static final String MIDTRANS_AUTH = MIDTRANS_SANDBOX_AUTH; // Default to sandbox private static final String WEBHOOK_URL = "https://be-edc.msvc.app/webhooks/midtrans"; - + + // Midtrans charge URL + private static final String MIDTRANS_CHARGE_URL = "https://api.sandbox.midtrans.com/v2/charge"; + // private static final String MIDTRANS_CHARGE_URL = "https://api.midtrans.com/v2/charge"; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -381,8 +388,9 @@ public class QrisActivity extends AppCompatActivity { private boolean isValidServerKey(String serverKey) { return serverKey != null && - serverKey.startsWith("SB-Mid-server-") && - serverKey.length() > 20; + (serverKey.startsWith("SB-Mid-server-") || // Sandbox format + serverKey.startsWith("Mid-server-")) && // Production format + serverKey.length() > 20; } private String generateSignature(String orderId, String statusCode, String grossAmount, String serverKey) { diff --git a/app/src/main/java/com/example/bdkipoc/qris/QrisResultActivity.java b/app/src/main/java/com/example/bdkipoc/qris/QrisResultActivity.java index 2d46142..e295b92 100644 --- a/app/src/main/java/com/example/bdkipoc/qris/QrisResultActivity.java +++ b/app/src/main/java/com/example/bdkipoc/qris/QrisResultActivity.java @@ -93,9 +93,17 @@ public class QrisResultActivity extends AppCompatActivity { private String backendBase = "https://be-edc.msvc.app"; private String webhookUrl = "https://be-edc.msvc.app/webhooks/midtrans"; - // Server key for signature generation - private static final String MIDTRANS_AUTH = "Basic U0ItTWlkLXNlcnZlci1PM2t1bXkwVDl4M1VvYnVvVTc3NW5QbXc="; + // Sandbox and Production server keys + private static final String MIDTRANS_SANDBOX_AUTH = "Basic U0ItTWlkLXNlcnZlci1PM2t1bXkwVDl4M1VvYnVvVTc3NW5QbXc="; + private static final String MIDTRANS_PRODUCTION_AUTH = "TWlkLXNlcnZlci1sMlZPalotdVlVanpvNnU4VzAtYmF1a2o="; // Base64 of "Mid-server-l2VOjZ-uYUjzo6u8W0-baukj:" + + // Currently active server key (switch by commenting/uncommenting) + // private static final String MIDTRANS_AUTH = MIDTRANS_PRODUCTION_AUTH; + private static final String MIDTRANS_AUTH = MIDTRANS_SANDBOX_AUTH; // Default to sandbox + + // Midtrans charge URL private static final String MIDTRANS_CHARGE_URL = "https://api.sandbox.midtrans.com/v2/charge"; + // private static final String MIDTRANS_CHARGE_URL = "https://api.midtrans.com/v2/charge"; // ✅ Mapping dari technical issuer ke display name private static final Map ISSUER_DISPLAY_MAP = new HashMap() {{