{
"payment_id": "PAY_***************",
"transaction": {
"transaction_details": {
"order_id": "ORDER_************",
"gross_amount": 949050
},
"item_details": [
{
"id": "PRODUCT_********-****-****-****-************",
"variant_id": "VARIANT_********-****-****-****-************",
"price": 950000,
"quantity": 1,
"name": "HP DeskJet 2336 Printer",
"brand": "HP",
"category": "Elektronik",
"merchant_name": "***"
},
{
"id": "SHIPPING_************",
"price": 10000,
"quantity": 1,
"name": "Ongkos Kirim - J&T Express",
"brand": "***",
"category": "Shipping",
"merchant_name": "***"
},
{
"id": "PLATFORM_FEE",
"price": 100,
"quantity": 1,
"name": "Biaya Platform",
"brand": "***",
"category": "Fee",
"merchant_name": "***"
},
{
"id": "ADJUSTMENT",
"price": -11050,
"quantity": 1,
"name": "Penyesuaian",
"brand": "***",
"category": "Adjustment",
"merchant_name": "***"
}
],
"customer_details": {
"first_name": "***",
"last_name": "***",
"email": "***@***.com",
"phone": "62***********",
"billing_address": {
"first_name": "***",
"last_name": "***",
"email": "***@***.com",
"phone": "62***********",
"address": "***",
"city": "***",
"postal_code": "*****",
"country_code": "IDN"
},
"shipping_address": {
"first_name": "***",
"last_name": "***",
"email": "***@***.com",
"phone": "62***********",
"address": "***",
"city": "***",
"postal_code": "*****",
"country_code": "IDN"
}
},
"enabled_payments": ["credit_card"],
"credit_card": {
"save_card": false,
"secure": true,
"installment": {
"required": true,
"terms": {
"bni": [3]
}
}
},
"expiry": {
"start_time": "2025-**-** **:**:** +0700",
"unit": "hours",
"duration": 24
}
}
}
midTransKit = UiKitApi.Builder()
.withMerchantClientKey(if (BuildConfig.DEBUG) Constant.MIDTRANS_KEY_SANDBOX else Constant.MIDTRANS_KEY_PRODUCTION)
//.withMerchantClientKey(Constant.MIDTRANS_KEY_PRODUCTION)
.withContext(this@PaymentGeneralActivity)
.withMerchantUrl(if (BuildConfig.DEBUG) Constant.MIDTRANS_MERCHANT_URL_SANDBOX else Constant.MIDTRANS_MERCHANT_URL_PRODUCTION)
//.withMerchantUrl(Constant.MIDTRANS_MERCHANT_URL_PRODUCTION)
.enableLog(true)
.build()
---
midTransKit?.startPaymentUiFlow(
this@PaymentGeneralActivity,
launcherUIKit,
snapToken
)
Masalah Integrasi Midtrans Snap (Android UI Kit)
Backend Request (Snap Flow)
kode Android
Hasil Debug network
Dari hasil network log Android:
Perbedaan versi API ini menyebabkan request dari Android ditolak dengan HTTP 400
untuk lengkap nya di file txt berikut
transaction.txt
Perbandingan dengan snap.js
Jika menggunakan snap.js (di web) sudah menggunakan api v2
https://app.sandbox.midtrans.com/snap/v2/transactions/01d4e763-a3dd-46a9-81e0-f6e7f44e02c6/charge
jika menggunakan v2, transaksi terjadi tanpa ada masalah
Kesimpulan
Root Cause
Android UI Kit
(com.midtrans:uikit)masih menggunakan Transaction API v1Payload yang dikirim backend sudah kompatibel dengan API v2
Terjadi inkompatibilitas versi API (v1 vs v2)