iPay88 Indonesia - Mobile SDK

Catatan Penting
  1. Mobile SDK berikut adalah standar iPay88 Indonesia.
  2. Anda dapat menambahkan kode pada Mobile SDK sesuai dengan kebutuhan bisnis Anda.
  3. Lakukan uji transaksi pada fase development atau sandbox terlebih dahulu sebelum memasuki fase production.

Android Mobile Payment SDK

Segera integrasikan iPay88 android mobile payment sdk ini dengan aplikasi android Anda. SDK ini memungkinkan aplikasi android Anda menerima pembayaran online secara langsung melalui iPay88 Indonesia.

Download Android SDK

Prasyarat Pengembangan Aplikasi dengan iPay88

Silahkan berikan merchant code Anda kepada iPay88 Indonesia untuk memverifikasi identitas merchant. iPay88 perlu mengkonfigurasi merchant code Anda kedalam server untuk memungkinkan aplikasi android Anda menggunakan gerbang pembayaran iPay88 Indonesia.


Library pada iPay88 Android Mobile Payments

Bagian ini menjelaskan library secara detil, yakni iPay88 android mobile payments API dan memberikan petunjuk untuk mengintegrasikan library tersebut dengan aplikasi Android Anda.


Referensi Mobile Payments Library API

  1. Aplikasi Anda menginisialisasi library.
  2. Setelah pelanggan menyelesaikan pembayaran mereka, library mengembalikan data atau callback ke aplikasi Anda dengan status pembayaran dan ID transaksi.
  3. Setelah alur dari library selesai, hasil aktivitas akan dikirimkan ke aplikasi Anda.

Deklarasi Library dan Permission pada AndroidManisfest.xml

Mobile Payments library adalah sebuah aktivitas, oleh karena itu Anda harus mendeklarasikannya dalam file AndroidManifest.xml pada aplikasi Anda. Anda harus deklarasikan mengenai internet and phone state permission yang diperlukan oleh library.




<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.ipay" android:versionCode="1" android:versionName="1.0" > 

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="18" />

<application android:icon="@drawable/ipay88logo" android:label="@string/app_name" >

<activity android:name="IPAYSampleActivity" android:label="@string/app_name" >
         
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</activity>

<activity android:name="com.ipay.IpayAcitivity" android:configChanges="orientation|screenSize"/>
<activity android:name="com.ipay.IpayAcitivityR" android:configChanges="orientation|screenSize"/>
</application>

</manifest>
                        

Menambahkan Jar File Library dan Impor Kelas

  1. Klik kanan pada proyek Anda dan pilih "Properties".
  2. Pilih "Java Build Path".
  3. Pilih tab "Libraries".
  4. Pilih tombol "Add Jars…"
  5. Pilih file "ipay88_android.jar" dari struktur folder Anda dan klik "OK"



//Anda perlu mengimpor kelas yang sesuai ke dalam kelas aplikasi. Kelas-kelas berikut harus di-impor.

import com.ipay.Ipay;
import com.ipay.IpayPayment;
import com.ipay.IpayR;
                        

Memulai Aktivitas Library

Library ini menggunakan mekanisme native android activity untuk memulai alur pembayaran dan untuk mengkomunikasikan data kembali ke aplikasi Anda. Selain data respon atau onActivityResult callback, Anda dapat mengimplementasikan IpayResultDelegate untuk segera menginformasikan apabila pembayaran berhasil diselesaikan.

Untuk memulai pembayaran dengan Ipay88, Anda harus memulai aktivitas Library menggunakan metode Android startActivityForResult. Lakukan ini ketika pembeli menyentuh tombol bayar. Aplikasi harus mengirim data ke iPay88 agar data dapat diproses sebagai objek Pembayaran. IpayPayment menangani pembayaran sederhana, yang mendukung satu penerima pembayaran dengan satu transaksi dan beberapa rincian.

Parameter
Deskripsi
Intent (Diharuskan) - Suatu objek IpayPayment yang berisi informasi tentang pembayaran. Buat intent ini dengan kode sebagai berikut:
Intent checkoutIntent = new Intent(this, IpayActivity.class);
Request Code (Diharuskan) - Gunakan tipe data integer untuk kode permintaan (request code). Ketika Anda mendapatkan data respon atau onActivityResult() callback dari library activity, Anda dapat menggunakan kode permintaan ini untuk mengetahui bahwa hasilnya berasal dari library activity.



//Dalam contoh di bawah ini, pembeli membayar dengan pembayaran sederhana untuk satu penerima

IpayPayment payment = new IpayPayment();

payment.setMerchantKey (txtMerchantKey.getText().toString());
payment.setMerchantCode (txtMerchantCode.getText().toString());
payment.setPaymentId (txtPaymentID.getText().toString());
payment.setCurrency (txtCurrency.getText().toString());
payment.setRefNo (txtRefID.getText().toString());
payment.setAmount (txtAmount.getText().toString());
payment.setProdDesc (txtProdDesc.getText().toString());
payment.setUserName (txtUserName.getText().toString());
payment.setUserEmail (txtUserEmail.getText().toString());
payment.setUserContact (txtUserContact.getText().toString());
payment.setRemark (txtRemark.getText().toString());
payment.setLang (txtLang.getText().toString());
payment.setCountry (txtCountry.getText().toString());
payment.setBackendPostURL (txtBackendPost.getText().toString());

Intent checkoutIntent = Ipay.getInstance().checkout(payment, this, new ResultDelegate());
startActivityForResult(checkoutIntent, 1);
                        

Metode Pada Library

Metode yang digunakan adalah getInstance Method. Metode ini mengembalikan objek tunggal Ipay.

Ipay ipay = Ipay.getInstance ();

Antarmuka untuk memberikan rincian tentang kapan pembayaran diselesaikan didefinisikan dalam com.ipay.IpayResultDelegate.




//Dengan antarmuka ini, Anda segera diberitahu ketika pembayaran telah selesai

public abstract interface IpayResultDelegate 
{
   public abstract void onPaymentSucceeded(String TransId, String RefNo, String Amount, String Remark, String AuthCode);
   
   public abstract void onPaymentFailed(String TransId, String RefNo, String Amount, String Remark, String ErrDesc);
   
   public abstract void onPaymentCanceled(String TransId, String RefNo, String Amount, String Remark, String ErrDesc);

   ** (For Requery Result Purpose)
   public abstract void onRequeryResult(String MerchantCode, String RefNo, String Amount, String Result);
}
                        

Fungsi Requery

  1. Buat tombol requery pada aplikasi Anda.
  2. Tetapkan onclicklistener ke tombol tersebut.
  3. Hasil akan ditampilkan pada label yang Anda tentukan di ResultDelegate().



//Ketika tombol diklik oleh pengguna, jalankan kode di bawah ini

String local_MerchantCode = txtMerchantCode.getText().toString();
String local_RefID   = txtRefID.getText().toString();
String local_Amount  = txtAmount.getText().toString();
IpayR r             = new IpayR();

r.setMerchantCode(local_MerchantCode);
r.setRefNo(local_RefID);
r.setAmount(local_Amount);

Intent checkoutIntent = Ipay.getInstance().requery(r,this, new ResultDelegate());

startActivityForResult(checkoutIntent, 1);
                        

Custom Objects Dalam Mobile Payments Library

Library pada Mobile Payments menyertakan objek khusus yang dikirim oleh libarary sebagai jembatan antara aplikasi Anda dengan iPay88 selama proses pembayaran.

IpayPayment
Objek ini diteruskan ke library melalui data ekstra dalam Intent ketika Aktivitas library dimulai. Objek ini berisi semua nilai untuk pembayaran.

Metode
Deskripsi
setMerchantKey(String merchantKey) (Diharuskan) - Merchant key disediakan oleh iPay88. Misalnya apple88KEY.
setMerchantCode(String merchantCode) (Diharuskan) - Merchant code disediakan oleh iPay88. Misalnya M09999.
setPaymentId(String paymentId) PaymentId adalah nilai untuk meminta (request) metode pembayaran yang akan ditampilkan pada halaman pembayaran iPay88. Silahkan merujuk referensi untuk melihat PaymentId yang tersedia atau biarkan kosong dengan
[payment setPaymentId:@""];.
setRefNo(String refNo) (Diharuskan) - Nomor referensi untuk tujuan referensi merchant, harus unik untuk setiap transaksi.
setAmount(String amount) (Diharuskan) - Total akhir untuk tagihan pembayaran dan dalam 2 angka desimal. Misalnya 10,90. Untuk pengujian, silahkan gunakan 1.00.
setCurrency(String currency) (Diharuskan) - Kode mata uang yang berdasarkan standar ISO. Misalnya IDR.
setProdDesc(String prodDesc) (Diharuskan) - Deskripsi produk yang dibeli oleh pelanggan. Catatan: karakter khusus tidak diizinkan. Misalnya tiket untuk konser.
setUserName(String userName) (Diharuskan) - Nama pelanggan dalam sistem merchant. Misalnya John Woo.
setUserEmail(String userEmail) (Diharuskan) - Alamat email pelanggan dalam sistem merchant dengan format email yang valid. Misalnya [email protected]
setUserContact(String userContact) (Diharuskan) - Nomor kontak pelanggan dalam sistem merchant. Misalnya 60123456789
setRemark(String remark) (Opsional) - Catatan untuk transaksi tertentu. Catatan: karakter khusus tidak diizinkan.
setLang(String lang) (Opsional) - Language. Misalnys ISO-8859-1.
setCountry(String country) (Diharuskan) - Tetapkan bagian ini untuk menghubungkan gerbang pembayaran iPay88. Diharuskan mengisi bagian ini dengan IDR. Catatan penting: pastikan merchant sudah memiliki merchant account di iPay88 Indonesia.
setBackendPostURL(String merchant_backend_post_url) (Diharuskan) - Tentukan URL callback merchant yang valid saat pembayaran berhasil. Misalnya http://www.ipay88shop.com/backend_page.



Payment Response

Berikut ini adalah respon dengan HTTPS POST dari iPay88 OPSG ke merchant setelah selesai proses pembayaran.

Nama Parameter
Deskripsi
MerchantCode Merchant code yang disediakan oleh iPay88 dan digunakan untuk mengidentifikasi merchant. Misalnya M09999.
PaymentId Lihat lampiran 1.
RefNo Nomor referensi yang dikirimkan oleh merchant sebagai nomor referensi saat permintaan (request) halaman pembayaran iPay88. Harus unik dalam setiap transaksi.
Amount Total yang dibayarkan pelanggan merchant dengan dua angka desimal dan penanda ribuan. Misalnya 1,270.90.
Currency Kode mata uang berdasarkan standar ISO. Dalam hal ini diharuskan menggunakan kode mata uang Indonesia yaitu IDR.
Remark Catatan untuk transaksi tertentu.
TransId ID transaksi iPay88 Indonesia. Misalnya T019988877700.
AuthCode Nomor referensi bank.
Catatan:terkadang bank tidak mengirimkan nomor referensi ke gerbang pembayaran.
Status Status pembayaran
"1" – Success.
"0" – Fail.
"6" – Pending (hanya tersedia untuk metode pembayaran ATM Transfer).
ErrDesc Deskripsi error.
Signature Signature dengan metode SHA1.



Backend Post Feature

Backend post feature atau BackendPostURL adalah teknologi server ke server yang tidak bergantung pada aplikasi yang terdapat pada perangkat pelanggan merchant. Fitur ini harus diimplementasikan di aplikasi merchant. Tujuan fitur ini adalah untuk mendapatkan status pembayaran dari iPay88 OPSG. Merchant bisa mendapatkan status pembayaran melalui laman backend merchant. iPay88 OPSG dapat mengirim status pembayaran secara berulang walaupun laman respon merchant pada aplikasi gagal mendapatkan status tersebut yang disebabkan oleh aplikasi ditutup, batas waktu koneksi internet, dan lain sebagainya.

Implementasi

Pada server merchant, buat laman lain sebagai backend (BackendPostURL) untuk menerima parameter dari iPay88. Parameter backend yang dikirim oleh iPay88 sama seperti parameter yang dikirim ke laman response merchant. Pada laman request merchant, tentukan url backend melalui parameter "BackendPostURL".

Pada laman BackendPostURL Anda perlu menuliskan kata 'RECEIVEOK' saja (tanpa tanda kutip) sebagai konfirmasi setelah laman backend berhasil mendapatkan status pembayaran dari iPay88 OPSG. Tentunya kata tersebut tertulis setelah dilakukan pengecekan seperti signature dan lain sebagainya di laman backend merchant. iPay88 OPSG akan mencoba mengirim kembali status pembayaran ke laman 'backend_response' hingga 5 kali pada interval yang berbeda jika tidak terdeteksi 'RECEVEIOK'.

Contoh:

Di ASP >> response.write "RECEIVEOK"
Di PHP >> echo "RECEIVEOK";

Catatan:

  1. iPay88 OPSG hanya mengirim status pembayaran melalui laman backend merchant apabila status pembayaran pada transaksi merchant telah sukses. Jika status pembayaran gagal, maka iPay88 OPSG tidak akan mengirimkan status melalui laman backend merchant.

  2. Pastikan tidak ada kode/tag HTML di laman BackendPostURL merchant.

  3. Pastikan BackendPostURL merchant berisi pengkodean/fungsi untuk memperbarui pesanan (update order) selain menggunakan metode onPaymentSucceeded.

  4. Laman backend merchant harus menerapkan beberapa pengecekan yang sama seperti laman response seperti pengecekan signature, dan lain sebagainya untuk mencegah tejadinya pembajakan pada sistem merchant.

  5. Pastikan untuk melaksanakan pemeriksaan untuk menentukan "onPaymentSucceeded method" atau "BackendPostURL" saat memperbarui pesanan, sehingga sistem pedagang tidak akan memperbarui status lebih dari 1 kali. Catatan: Saat pembayaran berhasil, iPay88 akan mengembalikan status pembayaran sukses ke "SDK" dan "BackendPostURL".

  6. Anda perlu melakukakan pemeriksaan untuk menentukan fungsi perubah status transaksi baik di metode "onPaymentSucceeded" atau "BackendPostURL" sehingga tidak terjadinya perubahan status transaksi lebih dari satu kali.

    Note: Setelah iPay88 OPSG menerima informasi dari bank bahwa status pembayaran pada transaksi merchant telah suskes, iPay88 OPSG secara bersamaan akan mengirimkan status pembayaran tersebut ke "SDK" dan "BackendPostURL".

  7. Pastikan BackendPostURL pada aplikasi merchant hanya membalas 'RECEIVEOK'.

  8. BackendPostURL bukan pengganti metode IpayResultDelegate untuk mendapatkan status sukses pembayaran sehingga merchant masih perlu menerapkan IpayResultDelegate pada aplikasi untuk mendapatkan status pembayaran.


<%

MerchantCode = Request.Form("MerchantCode")
PaymentId    = Request.Form("PaymentId")
RefNo        = Request.Form("RefNo")
Amount       = Request.Form("Amount")
eCurrency    = Request.Form("Currency")
Remark       = Request.Form("Remark")
TransId      = Request.Form("TransId")
AuthCode     = Request.Form("AuthCode")
Status       = Request.Form("Status")
ErrDesc      = Request.Form("ErrDesc")
Signature    = Request.Form("Signature")

%>

<Add your programming code here>

IF Status=1 THEN
COMPARE Return Signature with Generated Response Signature
   
//update order to PAID
response.write "RECEIVEOK"

ELSE
// update order to FAIL
                        

<?php

$merchantcode = $_REQUEST["MerchantCode"];
$paymentid    = $_REQUEST["PaymentId"];
$refno        = $_REQUEST["RefNo"];
$amount       = $_REQUEST["Amount"];
$ecurrency    = $_REQUEST["Currency"];
$remark       = $_REQUEST["Remark"];
$transid      = $_REQUEST["TransId"];
$authcode     = $_REQUEST["AuthCode"];
$status       = $_REQUEST["Status"];
$errdesc      = $_REQUEST["ErrDesc"];
$signature    = $_REQUEST["Signature"];

//add your programming code here

if($status=1) 
{
   COMPARE Return Signature with Generated Response Signature
   
   //update order to PAID
   echo "RECEIVEOK";
}

else 
{
   //update order to FAIL
}
                        

Response dan Backend Signature

Jika status pembayaran dari transaksi merchant dinyatakan sukses, iPay88 OPSG akan mengirim signature di laman response dan backend merchant. Signature ini harus dibandingkan dengan signature yang dihasilkan oleh merchant sendiri guna mengindari adanya pembajakan. Signature tersebut adalah hasil dari pengacakan tujuh bidang utama berikut.

  1. MerchantKey (disediakan dan hanya untuk merchant oleh iPay88 OPSG)
  2. MerchantCode
  3. PaymentId
  4. RefNo
  5. Amount
  6. Currency
  7. Status

Field harus tersusun mengikuti aturan berikut:
MerchantKey & MerchantCode & PaymentId & RefNo & Amount & Currency & Status.

Contoh:

MerchantKey = "applekey"
MerchantCode = "ID00001"
PaymentId = "1"
RefNo = "A00000001"
Amount = "300000" (catatan: 300000 adalah representasi dari total Rp3.000,00)
Currency = "A00000001"
Currency = "A00000001"
Status = "1"

Pengacakan akan dihitung melalui string berikut:
applekeyID000011A00000001300000IDR1||IPP:3||

Hasil signature (menggunakan algoritma SHA1) adalah:
LG6ywEKkZxBYnZjHcUcSKGO4gwQ=


Untuk memastikan signature yang dihasilkan sudah benar, silahkan klik tautan ini untuk perbandingan signature.


Function GetHash(ByVal Source)

   on error resume next
  
   QString = "Source=" & Source
   URL     = "https://www.mobile88.com/DotNet/SHA1Hash.aspx"
  
   Dim strReturn, TryNo
  
   strReturn = ""
   TryNo     = 1
   Set xobj  = Server.CreateObject ("MSXML2.ServerXMLHTTP")
   
   xobj.open "POST", URL, false
   xobj.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
   xobj.send QString
   
   strReturn = xobj.responseText
   Set xobj  = nothing

   If Err.number <> 0 then
      GetHash = ""
      Err.Clear
   
   else
      GetHash = Mid(strReturn,InStr(strReturn,"")+6,InStr(strReturn,"")-7)
  
   End If

End Function
                        

<?php

function iPay88_signature($source)
{
   return base64_encode(hex2bin(sha1($source)));
}

if (!function_exists('hex2bin'))
{
   function hex2bin($hexSource)
   {
      for ($i=0;$i<strlen($hexSource);$i=$i+2)
      {
         $bin .= chr(hexdec(substr($hexSource,$i,2)));
      }
      
      return $bin;
    }
}

?>
                        

Public Shared Function ComputeHash(ByVal Key As String) As String

   Dim objSHA1 As New SHA1CryptoServiceProvider()
   objSHA1.ComputeHash(system.Text.Encoding.UTF8.GetBytes(Key.ToCharArray))
   
   Dim buffer() As Byte    = objSHA1.Hash
   Dim HashValue As String = System.Convert.ToBase64String(buffer)

   Return HashValue
   
End Function
                        

iOS Mobile Payment SDK

Segera integrasikan iPay88 iOS mobile payment sdk ini dengan aplikasi iOS Anda. SDK ini memungkinkan aplikasi iOS Anda menerima pembayaran online secara langsung melalui iPay88 Indonesia.

Download Integration Guide

Download iOS SDK


Prasyarat Pengembangan Aplikasi dengan iPay88

Silahkan berikan merchant code Anda kepada iPay88 Indonesia untuk memverifikasi identitas merchant. iPay88 perlu mengkonfigurasi merchant code Anda kedalam server untuk memungkinkan aplikasi android Anda menggunakan gerbang pembayaran iPay88 Indonesia.


Library pada iPay88 iOS Mobile Payments

Bagian ini menjelaskan library secara detil, yakni iPay88 iOS mobile payments API dan memberikan petunjuk untuk mengintegrasikan library tersebut dengan aplikasi iOS Anda.


Referensi Mobile Payments Library API

  1. Aplikasi Anda menginisialisasi library.
  2. Anda harus menambahkan UI view yang dikembalikan oleh library sebagai subview.
  3. Setelah pelanggan menyelesaikan pembayaran mereka, library mengembalikan data melalui callback ke aplikasi Anda dengan status pembayaran dan id transaksi.

Menambahkan File Library dan Impor Header Files

  1. Di XCode, buka target build Anda dan klik tab "Build Phases".
  2. Di bawah "Link Binary With Libraries", tambahkan library statis "libipay88sdk.a".
  3. Tambahkan file header ("Ipay.h" & "IpayPayment.h") ke dalam aplikasi Anda.

//Anda perlu mengimpor header yang sesuai ke dalam kelas aplikasi Anda. Kelas-kelas berikut harus diimpor.

#import "Ipay.h"
#import “IpayPayment.h”
                        

Memulai Library UIView

Library ini menggunakan native UIWebView untuk memulai alur pembayaran dan untuk berkomunikasi. Anda dapat menerapkan PaymentResultDelegate agar dapat menerima status secara langsung setelah pelanggan berhasil menyelesaikan pembayaran. Untuk memulai pembayaran dengan iPay88, Anda harus menginisialisasi objek Ipay terlebih dahulu.

Anda harus menggunakan metode checkout dan kirimkan data tersebut melalui objek IpayPayment. IpayPayment menangani pembayaran sederhana yang mendukung satu penerima pembayaran dan satu transaksi dengan beberapa rincian.


//Dalam contoh di bawah ini, pembeli membayar dengan pembayaran sederhana untuk satu penerima

paymentsdk = [[Ipay alloc] init];
paymentsdk.delegate = self;
IpayPayment *payment = [[IpayPayment alloc] init];

[payment setPaymentId:@""];
[payment setMerchantKey:@"ABCD1234"];
[payment setMerchantCode:@"M01234"];
[payment setRefNo:@"test"];
[payment setAmount:@"1.00"];
[payment setCurrency:@"MYR"];
[payment setProdDesc:@"testing"];
[payment setUserName:@"SDK Tester"];
[payment setUserEmail:@"[email protected]"];
[payment setUserContact:@"0171234567"];
[payment setRemark:@"Testing SDK"];
[payment setLang:@"ISO-8859-1"];
[payment setCountry:@"MY"];

UIView *paymentView = [paymentsdk checkout:payment];
[self.view addSubview:paymentView];
                        

Metode Pada Library

1. Metode Checkout

Metode ini mengembalikan UIView. Antarmuka yang menampilkan rincian seperti kapan pembayaran diselesaikan didefinisikan dalam protokol <PaymentResultDelegate>.


2. Metode Requery

hanya properti refNo, merchantCode, dan amount dari objek IpayPayment yang diperlukan untuk requery (sisanya dapat dibiarkan kosong). Antarmuka untuk memberikan rincian tentang kapan requery selesai didefinisikan dalam protokol <PaymentResultDelegate>.


//Metode checkout
//Contoh UIWebView

(UIView *)checkout:(IpayPayment *)payment;

//Antarmuka ini memberi Anda cara untuk mendapatkan informasi ketika pembayaran telah selesai

@protocol PaymentResultDelegate <NSObject>

- (void)paymentSuccess:(NSString *)refNo withTransId:(NSString *)transId withAmount:(NSString *)amount withRemark:(NSString *)remark withAuthCode:(NSString *)authCode;

- (void)paymentFailed:(NSString *)refNo withTransId:(NSString *)transId withAmount:(NSString *)amount withRemark:(NSString *)remark withErrDesc:(NSString *)errDesc;

- (void)paymentCancelled:(NSString *)refNo withTransId:(NSString *)transId withAmount:(NSString *)amount withRemark:(NSString *)remark withErrDesc:(NSString *)errDesc;
@end
                        

//Metode requery
- (void)requery:(IpayPayment *)payment

//Antarmuka ini memberi Anda cara untuk segera menerima informasi ketika requery selesai

@protocol PaymentResultDelegate <NSObject>

- (void)requerySuccess:(NSString *)refNo withMerchantCode:(NSString *)merchantCode withAmount:(NSString *)amount withResult:(NSString *)result;

- (void)requeryFailed:(NSString *)refNo withMerchantCode:(NSString *)merchantCode withAmount:(NSString *)amount withErrDesc:(NSString *)errDesc;

@end
                        

Custom Objects Dalam Mobile Payments Library

Library pada Mobile Payments menyertakan objek khusus yang dikirim oleh libarary sebagai jembatan antara aplikasi Anda dengan iPay88 selama proses pembayaran.

IpayPayment
Objek ini diteruskan ke library melalui data ekstra dalam Intent ketika Aktivitas library dimulai. Objek ini berisi semua nilai untuk pembayaran.

Metode
Deskripsi
setMerchantKey(String merchantKey) (Diharuskan) - Merchant key disediakan oleh iPay88. Misalnya apple88KEY.
setMerchantCode(String merchantCode) (Diharuskan) - Merchant code disediakan oleh iPay88. Misalnya M09999.
setPaymentId(String paymentId) PaymentId adalah nilai untuk meminta (request) metode pembayaran yang akan ditampilkan pada halaman pembayaran iPay88. Silahkan merujuk referensi untuk melihat PaymentId yang tersedia atau biarkan kosong dengan
[payment setPaymentId:@""];.
setRefNo(String refNo) (Diharuskan) - Nomor referensi untuk tujuan referensi merchant, harus unik untuk setiap transaksi.
setAmount(String amount) (Diharuskan) - Total akhir untuk tagihan pembayaran dan dalam 2 angka desimal. Misalnya 10,90. Untuk pengujian, silahkan gunakan 1.00.
setCurrency(String currency) (Diharuskan) - Kode mata uang yang berdasarkan standar ISO. Misalnya IDR.
setProdDesc(String prodDesc) (Diharuskan) - Deskripsi produk yang dibeli oleh pelanggan. Catatan: karakter khusus tidak diizinkan. Misalnya tiket untuk konser.
setUserName(String userName) (Diharuskan) - Nama pelanggan dalam sistem merchant. Misalnya John Woo.
setUserEmail(String userEmail) (Diharuskan) - Alamat email pelanggan dalam sistem merchant dengan format email yang valid. Misalnya [email protected]
setUserContact(String userContact) (Diharuskan) - Nomor kontak pelanggan dalam sistem merchant. Misalnya 60123456789
setRemark(String remark) (Opsional) - Catatan untuk transaksi tertentu. Catatan: karakter khusus tidak diizinkan.
setLang(String lang) (Opsional) - Language. Misalnys ISO-8859-1.
setCountry(String country) (Diharuskan) - Tetapkan bagian ini untuk menghubungkan gerbang pembayaran iPay88. Diharuskan mengisi bagian ini dengan IDR. Catatan penting: pastikan merchant sudah memiliki merchant account di iPay88 Indonesia.
setBackendPostURL(String merchant_backend_post_url) (Diharuskan) - Tentukan URL callback merchant yang valid saat pembayaran berhasil. Misalnya http://www.ipay88shop.com/backend_page.


Catatan:
Pastikan merchant account Anda telah menyatakan opsi pembayaran di iPay88 Indonesia.


Referensi

Kami berusaha memberikan informasi selengkap mungkin untuk Anda. Adanya informasi tersebut menjadikan proses integrasi Anda dengan iPay88 OPSG menjadi mudah dan cepat. Untuk itu, kami meyediakan referensi sebagai informasi tambahan untuk Anda. Berikut ini adalah referensi dari iPay88 OPSG.


Testing Credentials

Uji transaksi dengan metode pembayaran kartu kredit melalui sandbox memerlukan data sampel kartu. Berikut ini adalah testing credentials yang dapat digunakan untuk uji transaksi dengan metode pembayaran kartu kredit.


1. Pengujian Data

Card Number
CVV/CVV2
EXP Date (DD/MM)
Card Status
4000000000000044
123
03/33
Good card
5500000000000004
123
03/33
Good card


2. Pengujian Data Eksespsi


Card Number
CVV/CVV2
EXP Date (DD/MM)
Card Status
Error Message
4000000000000028
223
07/18
Bad card
Bank declined transaction
5200000000000007
223
07/18
Bad card
Bank declined transaction
5200000000000015
223
07/18
Bad card
Bank declined transaction



Payment ID

Berikut ini adalah daftar Payment ID iPay88 Indonesia berdasarkan metode pembayaran yang tersedia.


1. Credit Card

Metode Pembayaran
Payment ID
Credit Card (BCA)
52
Credit Card (BRI)
35
Credit Card (CIMB)
42
Credit Card (CIMB Authorization)
56
Credit Card (CIMB IPG)
34
Credit Card (Danamon)
45
Credit Card (Mandiri)
53
Credit Card (Maybank)
43
Credit Card (UnionPay)
54
Credit Card (UOB)
46
Credit Card (GPN)
49

2. Online Banking

Metode Pembayaran
Payment ID
BCA KlikPay
8
CIMB Clicks
11
Muamalat IB
14
Danamon Online Banking
23

3. ATM Transfer

Metode Pembayaran
Payment ID
Maybank VA
9
Mandiri ATM
17
BCA VA
25/30
BNI VA
26/68
Permata VA
31
BRI VA
61

4. e-Wallet

Metode Pembayaran
Payment ID
ShopeePay
75
DANA
77
LinkAja
13
OVO
63

5. Others

Metode Pembayaran
Payment ID
PayPal
6
Kredivo
55
Alfamart
60
Indomaret
65
Indodana
70
Akulaku
71

Mata Uang

Berikut ini adalah mata uang yang diharuskan untuk integrasi dengan iPay88 Indonesia.

Deskripsi Mata Uang
Simbol
Indonesia Rupiah
IDR

Deskripsi Error

Berikut ini adalah daftar pesan dan deskripsi error dari iPay88 Indonesia.

Pesan Error
Deskripsi Error
Duplicate reference number Nomor referensi harus unik disetiap transaksi.
Invalid merchant Merchant code tidak terdaftar atau merchant code salah.
Invalid parameters Beberapa parameter yang dikirimkan ke iPay88 tidak tepat atau kosong.
Overlimit per transaction Kelebihan nilai total per transaksi.
Payment not allowed Metode pembayaran yang diminta tidak disediakan untuk merchant code yang bersangkutan. Silahkan hubungi iPay88 Indonesia untuk menyediakan metode pembayaran yang Anda inginkan.
Permission not allow Request url milik merchant yang terdaftar di iPay88 tidak tepat. Silahkan registrasi request url situs Anda ke iPay88.
Signature not match Signature yang dihasilkan merchant tidak tepat.
Status not approved Akun telah disuspend atau tidak aktif.