NAV Navbar
java

Pengenalan

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

Alur Transaksi

Transactionflow

  1. Checkout, Client melakukan checkout didalam aplikasi ios 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 Xcode versi 9 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

IOS SDK Cocoapods Version

pod 'duitku', '~> 1.0'

Installation IOS SDK Cocoapods

* Navigasikan terminal ke direktori root project anda kemudian jalankan pod init untuk membuat podfile. - install command * Buka podfile dan tambahkan Duitku IOS SDK Cocoapods. * Simpan file dan run pod install untuk menginstall Duitku. * Cocopoads akan mendownload dan menginstal duitku. * Tutup project anda dan buka 'yourproject.xcworkspace' di project file anda.

Tambahkan Duitku SDK Class

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

import Duitku SDK Class

import duitku

Initialisasi class

class yourclass : DuitkuClient

Tambahkan Fungsi ini Untuk Mendapatkan Callback Transaksi

override func onSuccess_(status: String, reference: String, amount: String, code: String, merchantOrderId: String) {
    //logic here    
    clearSdkTask()
}

override func onPending_(status: String, reference: String, amount: String, code: String, merchantOrderId: String) {
    //logic here    
    clearSdkTask()
}

override func onCanceled_(status: String, reference: String, amount: String, code: String, merchantOrderId: String) {
    //logic here    
    clearSdkTask()
}

Dari contoh kode diatas, ada 3 perbedaan fungsi untuk menangkap Callback Transaksi,
anda membutuhkan 3 halaman untuk menampilkan status transaksi ke customer anda.

On viewWillAppear

override func viewWillAppear(_ animated: Bool) {

    runPayment(self)

    self.navigationController?.isNavigationBarHidden = false
    self.navigationItem.title = "Order" //optional

}

Request Transaksi ke Server Merchant

Tambahkan method ini untuk melakukan Request Transaksi Ke Server Merchant

func settingMerchant(){

    Util.merchantNotification = true

    DuitkuKit.data(
          paymentAmount: "100000" //example //your payment amount 
         ,productDetails: "Test Pay with duitku" // 
         ,email: "yourmail@mail.com" //your email 
         ,phoneNumber: "08123456789" //your customer phone number
         ,additionalParam: "" //optional 
         ,merchantUserInfo: "" //optional
         ,customerVaName: "John Doe"  // display name on bank confirmation display
         ,callbackUrl: 'http://example.com/callback'; // url for callback
         ,returnUrl: 'http://example.com/return'; // url for return
         ,expiryPeriod: "10" // set the expired time in minutes
         ,firstName: "john"
         ,lastName: "doe"
         ,alamat: "Jl. Kembangan Raya"
         ,city: "jakarta"
         ,postalCode: "11530"
         ,countryCode: "ID"
         ,merchantOrderId: "" //can empty if merchant order id on web server
    )

    //can loop here
    ItemDetails.data(name: "sepatu" , price: 100000 , quantity: 1) //optional


     // base url
    BaseRequestDuitku.data(
          baseUrlPayment: "http://server-merchant/api/" //base url merchant server
         ,requestTransaction: "requestTransaksi.php" //endpoint
         ,checkTransaction: "checktransaksi.php" //endpoint
         ,listPayment: "listPayment.php" //endpoint
     )


}

Function Description
Util.merchantNotification digunakan untuk set notifikasi dari Duitku atau dari Merchant. Set true untuk notifikasi dari merchant, atau false untuk notifikasi dari merchant
runPayment(self) digunakan untuk menjalankan SDK Duitku.
baseUrlPayment digunakan untuk set merchant site url untuk mengakses modul request transakasi dan modul cek transaksi.
requestTransaction digunakan untuk set modul request transaksi.
checkTransaction digunakan untuk set modul cek transaksi.
listPayment digunakan untuk set modul API metode pembayaran.
paymentAmount digunakan untuk memasukan nominal transaksi.
productDetails digunakan untuk memasukan detail produk transaksi.
email digunakan untuk memasukan alamat email customer merchant, mandatory.
phoneNumber digunakan untuk memasukan nomor telepon customer merchant, mandatory.
additionalParam digunakan untuk memasukan parameter tambahan.
merchantUserInfo digunakan untuk memasukan info customer merchant.
customerVaName 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.
expiryPeriod digunakan untuk set waktu expiry pembayaran.
callbackUrl digunakan untuk set merchant callback url, ini harus di arahkan ke server merchant untuk mendapatkan atau memperbarui status transaksi di database merchant
returnUrl digunakan untuk set merchant return url, ini harus di arahkan ke server merchant untuk redirect setelah pembayaran selesai

Memulai Payment Function

Memanggil Fungsi StartPayment

startPayment(self);

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

Penanganan Error

Getting Webkitview Exception

jika anda mendapatkan eror seperti ini, silahkan tambahkan Webkit framework ke target project anda

Getting Navigation Controller Exception

silahkan untuk menambahkan navigation controller pada viewcontroller di project anda

Getting Blank When checkout payment

silahkan tambahkan script berikut di info.plist file project anda

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

Sisi Server Merchant

dibawah ini adalah modul server merchant untuk transaksi dengan Duitku Ios 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