NAV Navbar
java

Pengenalan

Selamat datang di laman dokumentasi SDK Android Duitku. Integrasikan SDK ini untuk mulai bertransaksi menggunakan Duitku di aplikasi android anda.

Alur Transaksi

Transactionflow

  1. Checkout, Client melakukan checkout didalam aplikasi android kemudian aplikasi mengirimkan request transaksi ke server merchant.
  2. Request Transaction, server merchant meneruskan request transaksi ke server duitku.
  3. Get Request Transaction, server duitku mengirimkan request transaksi yang kemudian diterima oleh server merchant.
  4. Response, Server merchant mengirimkan response ke client.
  5. Callback Notification, server duitku mengirimkan callback notification kepada merchant.

Environment

Standar IDE untuk pengembangan aplikasi adalah android studio versi 3.4 keatas. Untuk lebih jelas, dibawah ini adalah detail spesifikasi

item pendukung pengembangan aplikasi dapat diperoleh dalam dokumentasi :

Integrasi Sistem

Tambahkan Librari Duitku SDK ke project merchant

Import Duitku SDK Library ke build gradle diaplikasi anda

import Duitku SDK Library

implementation 'com.duitku:duitku-android-sdk:1.0.2-beta-1'

Tambahkan Duitku SDK Class

Untuk mendukung integrasi, merchant membutuhkan Duitku SDK Class untuk menjalankan fungsi SDK diproject merchant

import Duitku SDK Class

import 'com.duitku.sdk.DuitkuCallback.DuitkuCallbackTransaction;'
import 'com.duitku.sdk.DuitkuClient;'
import 'com.duitku.sdk.DuitkuUtility.BaseKitDuitku;'
import 'com.duitku.sdk.DuitkuUtility.DuitkuKit;'
import 'com.duitku.sdk.Model.ItemDetails;'

Extends DuitkuClient

public class MainActivity extends DuitkuClient

Deklarasikan DuitkuKit di Activity

DuitkuKit duitku ;
DuitkuCallbackTransaction callbackKit ;

Tambahkan Fungsi ini Untuk Mendapatkan Callback Transaksi

public void onSuccessTransaction(String status, String reference, String amount, String Code) {
    Toast.makeText(MainActivity.this,"Transaction"+status,Toast.LENGTH_LONG).show();

    clearSdkTask(); //REQUIRED
    super.onSuccessTransaction(status, reference, amount, Code);
}

@Override
public void onPendingTransaction(String status, String reference, String amount, String Code) { 
    Toast.makeText(MainActivity.this,"Transaction"+status,Toast.LENGTH_LONG).show();

    clearSdkTask(); //REQUIRED
    super.onPendingTransaction(status, reference, amount, Code);
}

@Override
public void onCancelTransaction(String status, String reference, String amount, String Code) { 
    Toast.makeText(MainActivity.this,"Transaction :"+status,Toast.LENGTH_LONG).show();

    clearSdkTask(); //REQUIRED
    super.onCancelTransaction(status, reference, amount, Code);
}

Dari contoh kode diatas, ada 3 perbedaan fungsi untuk menangkap Callback Transaksi,
anda membutuhkan 3 halaman activity untuk menampilan status transaksi ke customer anda.
kita membuat contoh dengan Toast.

OnResume Activity

protected void onResume() {
    super.onResume();
    run(MainActivity.this); //context
} 

Request Transaksi ke Server Merchant

Tambahkan method ini untuk melakukan Request Transaksi Ke Server Merchant

private void requestTransaction(){

    //set false if callback from duitku
    callbackKit.setCallbackFromMerchant(true);   

    run(MainActivity.this); //context
    //set base url merchant
    BaseKitDuitku.setBaseUrlApiDuitku("Merchant site url"); 
    BaseKitDuitku.setUrlRequestTransaction("Request transaction module"); 
    BaseKitDuitku.setUrlCheckTransaction("Check transaction module"); 
    BaseKitDuitku.setUrlPaymentMethodList("List Payment module");
    duitku.setPaymentAmount("10000");
    duitku.setProductDetails("");
    duitku.setEmail("");
    duitku.setPhoneNumber("");
    duitku.setAdditionalParam(""); //optional
    duitku.setMerchantUserInfo(""); //optional
    duitku.setCustomerVaName("");
    duitku.setExpiryPeriod("");
    duitku.setCallbackUrl("http://merchantsite.com");
    duitku.setReturnUrl("http://merchantsite.com");

    // Customer Detail
    duitku.setFirstName("John");//optional 
    duitku.setLastName("Doe");//optional 

    // Address
    duitku.setAddress("Jl. Kembangan Raya");//optional
    duitku.setCity("Jakarta");//optional
    duitku.setPostalCode("11530");//optional 
    duitku.setCountryCode("ID");//optional 

    //set item details
    ItemDetails itemDetails = new ItemDetails(10000,2,"shoes");
    ArrayList<ItemDetails> arrayList = new  ArrayList<ItemDetails> ();
    arrayList.add(itemDetails);
    duitku.setItemDetails(arrayList);
}

Function Description
callbackKit.setCallbackFromMerchant digunakan untuk set notifikasi dari Duitku atau dari Merchant. Set true untuk notifikasi dari merchant, atau false untuk notifikasi dari merchant
run(MainActivity.this) digunakan untuk menjalankan SDK Duitku.
BaseKitDuitku.setBaseUrlApiDuitku digunakan untuk set merchant site url untuk mengakses modul request transakasi dan modul cek transaksi.
BaseKitDuitku.setUrlRequestTransaction digunakan untuk set modul request transaksi.
BaseKitDuitku.setUrlCheckTransaction digunakan untuk set modul cek transaksi.
BaseKitDuitku.setUrlPaymentMethodList digunakan untuk set modul API metode pembayaran.
duitku.setPaymentAmount digunakan untuk memasukan nominal transaksi.
duitku.setProductDetails digunakan untuk memasukan detail produk transaksi.
duitku.setEmail digunakan untuk memasukan alamat email customer merchant, mandatory.
duitku.setPhoneNumber digunakan untuk memasukan nomor telepon customer merchant, mandatory.
duitku.setAdditionalParam digunakan untuk memasukan parameter tambahan.
duitku.setMerchantUserInfo digunakan untuk memasukan info customer merchant.
duitku.setCustomerVaName digunakan untuk set nama customer di VA, customer merchant dapat melihat nama mereka di mobile banking atau ATM, fungsi ini hanya digunakan untuk channel pembayaran VA.
duitku.setExpiryPeriod digunakan untuk set waktu expiry pembayaran.
duitku.setCallbackUrl digunakan untuk set merchant callback url, ini harus di arahkan ke server merchant untuk mendapatkan atau memperbarui status transaksi di database merchant
duitku.setReturnUrl digunakan untuk set merchant return url, ini harus di arahkan ke server merchant untuk redirect setelah pembayaran selesai
duitku.setItemDetails digunakan untuk memuat item detail pembelian customer, merchant dapat membuat ItemDetail Object untuk mengisi detail. Price di detail adalah total harga item pembelian. merchant dapat melihat di contoh project kami.

Set Toolbar menjadi No Action Bar

Merchant perlu set Toolbar menjadi No Action Bar untuk menjalankan Android SDK Duitku

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

Memulai Payment Function

Memanggil Fungsi StartPayment

startPayment(MainActivity.this);

Merchant dapat memanggil fungsi startPayment() untuk melanjutkan process pembayaran.

Penanganan Error

Exception from call site #1 bootstrap

jika anda mendapatkan eror seperti ini, kamu dapat menambahkan code dibawah ini di app.gradle

compileOptions {
    targetCompatibility = "8"
    sourceCompatibility = "8"
}

Mendapat Error At WebView

jika anda mendapatkan eror seperti ini, merchant dapat menambahkan depedency ini di app.gradle

implementation 'androidx.appcompat:appcompat:1.0.2'

Sisi Server Merchant

dibawah ini adalah modul server merchant untuk transaksi dengan Duitku Android SDK

Deskripsi Value
Alamat URL Server Merchant Example, https://www.merchantsite.com
Permintaan Transaksi unduh
Cek Status Transaksi unduh
Daftar Kanal Pembayaran unduh

Contoh Project

Berikut contoh project Sample-project