iPay88 Indonesia - Mobile SDK
Catatan Penting
- Mobile SDK berikut adalah standar iPay88 Indonesia.
- Anda dapat menambahkan kode pada Mobile SDK sesuai dengan kebutuhan bisnis Anda.
- 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 SDKPrasyarat 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
- Aplikasi Anda menginisialisasi library.
- Setelah pelanggan menyelesaikan pembayaran mereka, library mengembalikan data atau callback ke aplikasi Anda dengan status pembayaran dan ID transaksi.
- 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
- Klik kanan pada proyek Anda dan pilih "Properties".
- Pilih "Java Build Path".
- Pilih tab "Libraries".
- Pilih tombol "Add Jars…"
- 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.
|
|
---|---|
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
- Buat tombol requery pada aplikasi Anda.
- Tetapkan onclicklistener ke tombol tersebut.
- 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.
|
|
---|---|
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.
|
|
---|---|
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:
-
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.
-
Pastikan tidak ada kode/tag HTML di laman BackendPostURL merchant.
-
Pastikan BackendPostURL merchant berisi pengkodean/fungsi untuk memperbarui pesanan (update order) selain menggunakan metode onPaymentSucceeded.
-
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.
-
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".
-
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".
-
Pastikan BackendPostURL pada aplikasi merchant hanya membalas 'RECEIVEOK'.
-
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.
- MerchantKey (disediakan dan hanya untuk merchant oleh iPay88 OPSG)
- MerchantCode
- PaymentId
- RefNo
- Amount
- Currency
- 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.
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
- Aplikasi Anda menginisialisasi library.
- Anda harus menambahkan UI view yang dikembalikan oleh library sebagai subview.
- 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
- Di XCode, buka target build Anda dan klik tab "Build Phases".
- Di bawah "Link Binary With Libraries", tambahkan library statis "libipay88sdk.a".
- 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.
|
|
---|---|
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
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
2. Pengujian Data Eksespsi
|
|
|
|
|
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Payment ID
Berikut ini adalah daftar Payment ID iPay88 Indonesia berdasarkan metode pembayaran yang tersedia.
1. Credit Card
|
|
---|---|
Credit Card (BCA) |
|
Credit Card (BRI) |
|
Credit Card (CIMB) |
|
Credit Card (CIMB Authorization) |
|
Credit Card (CIMB IPG) |
|
Credit Card (Danamon) |
|
Credit Card (Mandiri) |
|
Credit Card (Maybank) |
|
Credit Card (UnionPay) |
|
Credit Card (UOB) |
|
Credit Card (GPN) |
|
2. Online Banking
|
|
---|---|
BCA KlikPay |
|
CIMB Clicks |
|
Muamalat IB |
|
Danamon Online Banking |
|
3. ATM Transfer
|
|
---|---|
Maybank VA |
|
Mandiri ATM |
|
BCA VA |
|
BNI VA |
|
Permata VA |
|
BRI VA |
|
4. e-Wallet
|
|
---|---|
ShopeePay |
|
DANA |
|
LinkAja |
|
OVO |
|
5. Others
|
|
---|---|
PayPal |
|
Kredivo |
|
Alfamart |
|
Indomaret |
|
Indodana |
|
Akulaku |
|
Mata Uang
Berikut ini adalah mata uang yang diharuskan untuk integrasi dengan iPay88 Indonesia.
|
|
---|---|
Indonesia Rupiah |
|
Deskripsi Error
Berikut ini adalah daftar pesan dan deskripsi error dari iPay88 Indonesia.
|
|
---|---|
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. |