Anda di halaman 1dari 14

Panduan Integrasi

SpeedCash Via API


(Aplication Programming Interface)
(V.2.0.1-10.09.14)

PT. Bimasakti Multi Sinergi


Head Office: GRAHA BIMASAKTI Jl. Delta Raya Utara Kav. 49 - 51 Deltasari Baru, Sidoarjo, Jawa Timur, Indonesia 61256
Operation and Service Center: Jalan Kolonel Sugiyono No. 104C, Yogyakarta, Indonesia 55153
Phone : +62-274-4580333,
Mobile
: +62-82226657999,
Fax :
+62-274-4580183,
Website: http://www.speedcash.co.id/0
PT. Bimasakti
Multi
Sinergi - Copyright
2014 SpeedCash

Panduan Pengelolaan Produk via API


Daftar Isi

DAFTAR ISI
DAFTAR ISI .........................................................1
PENGANTAR .........................................................2
PANDUAN PENGGUNAAN API ..................................3

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Pengantar

Selain metode integrasi sederhana melalui SSN / Simple Sell Now dan integrasi
melalui penginstalan plugins shopping cart, SpeedCash juga menyediakan metode
integrasi yang lengkap menggunakan API (Application Programming Interface) untuk
shopping cart Anda. Metode integrasi dengan API cocok untuk bisnis online
profesional dengan shopping cart yang bersifat customized dan kompleks.
SpeedCash menyediakan dokumen API (Application Programming Interface) yang
dapat digunakan oleh tim IT Anda membangun aplikasi yang menghubungkan
webstore Anda dengan SpeedCash secara H2H (host to host).

Langkah mudah yang dapat Anda lakukan dengan penggunaan metode ini adalah
dengan cara:

Download dokumen API


Daftarkan domain Anda untuk mendapatkan private key
Integrasikan dokumen API dan private key dengan web e-commerce Anda
Silakan pilih panduan sesuai kebutuhan web Anda
Hubungi IT customer kami jika Anda mengalami kesulitan

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

PANDUAN PENGGUNAAN API


1.
2.

Silakan login ke web SpeedCash, www.speedcash.co.id


Setelah login, silakan memilih menu Penjualan dan Merchant. Selanjutnya pilih
Integrasi via API dilanjukan dengan menekan tombol Private Key untuk
mendaftarkan domain Anda

3.

Sistem akan menampilkan halaman SpeedCash API. Selanjutnya pilih tab


Daftarkan Domain. Isi dan lengkapi form tersebut dilanjutkan dengan menekan
tombol Buat Private Key untuk Domain Saya

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

4.

Private Key yang telah berhasil digenerate, dapat dilihat di tab Detail Api Saya

5.

Berikut source API yang dapat diintegrasikan pada web e-commerce Anda,
Proses Kirim Data/INPUT
Proses ini menjelaskan bagaimana data penjualan bisa terkirim ke website SPI
Speedcash, berikut Penjelasannya :
URL get Token = https://www.speedcash.co.id/spi/token
URL send Data = https://www.speedcash.co.id/spi/toolbar
List Variable Input
No.

Variable Name

Type Data

Example

Keterangan

1.

name

String max(30)

Kaos Oblong

Nama Produk

2.

unitPrice

String

"150"

Harga Satuan Produk

3.

sku

String max(30)

"Jenis Kaos 2"

Jenis Produk

4.

ids

String max(30)

"Jenis Kaos 2"

Model Produk

5.

qty

String

"3"

Jumlah Produk

6.

desc

String max(30)

"Kaos Oblong"

Deskripsi Tentang Produk

7.

cms

String max(20)

"ubercart"

Jenis CMS

8.

spi_callback

String max(150)

"http:\/\/localhost\/drupal7\/cart\/pay URL Call Back Website


ment_speedcash\/sukses\/1"
Merchant

9.

spi_is_escrow

Integer

10.

spi_request_key

String max(20)

"IYSOZDHWOP114"

Kode generate id transaksi


penjualan yang dihasilkan
dari merchant (custom
merchant) harus unique
atau beda dengan id
transaksi lain

11.

spi_currency

String max(3)

"IDR"

Nilai Mata Uang hanya


support (IDR,USD)

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

12.

spi_quantity

Integer

21

Jumlah Total Barang Yang


Dibeli

13.

spi_amount

Integer

145210

Jumlah Total Harga


Barang Yang Dibeli

14.

spi_merchant_transacti String max(30)


on_reff

114

Order ID Penjualan
Merchant harus unique /
beda dengan id transaksi
lain

15.

spi_token

String max(100)

"b3383905d8bbd9a562d1dcc31d890 Gabungan antara


01d0cf79f22dbda8ccb98f5dd9c90bf private_key1 dan
9c"
private_key2 (digabung
dalam satu string)

16.

spi_billingName

String max(30)

"andi kapri"

Nama pembeli

17.

spi_billingAddress

String max(100)

"jalan arjuno"

Alamat Pembeli

18.

spi_billingCity

String max(50)

"kota malang"

Kota Pembeli

19.

spi_billingState

String max(4)

"LA"

Inisial Kota Pembeli


LA:LAMONGAN
format bebas maksimal 3
karakter

20

spi_billingPostalCode

String max(6)

"64393"

Kode Pos Pembeli

21.

spi_billingCountry

String max(3)

"ID"

Kode Negara Pembeli


(ID:Indonesia) , kode
format bisa dilihat di
wesbsite http://www.webl.com/country-codes/

22.

spi_billingPhone

String max(20)

"085766171733"

No Telepon Pembeli
(diusahakan dengan no HP
agar suatu saat si pembeli
bisa mendapatkan sms dan
telepon)

23.

spi_billingEmail

String max(50)

"andikapri87@gmail.com"

Email Pembeli

24.

spi_deliveryName

String max(30)

"andi kapri"

Nama Penerima

25.

spi_deliveryAddress

String max(100)

"jalan mawar"

Alamat Penerima

26.

spi_deliveryCity

String max(50)

"kota jakarta"

Kota Penerima

27.

spi_deliveryState

String max(3)

"LA"

Inisial Kota Penerima LA:


LAMONGAN format
bebas maksimal 3 karakter

28.

"spi_deliveryPostalCo String max(6)


de"

"64393"

Kode Pos Penerima

Variabel diatas di kirim dalam bentuk JSON berikut contoh formatnya :


{"spi_item":[{"name":"Kaos 2",
"unitPrice":"150.00000",

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

"sku":"Jenis Kaos 2",


"ids":"Jenis Kaos 2",
"qty":"1",
"desc":"Kaos 2"},
{"name":"Kaos 1",
"unitPrice":"3.00000",
"sku":"Kaos Kebangsaan",
"ids":"Kaos Kebangsaan",
"qty":"20",
"desc":"Kaos 1"}],
"cms":"ubercart",
"spi_callback":"http:\/\/localhost\/drupal7\/cart\/payment_speedcash\/sukses\/1",
"spi_is_escrow":0,
"spi_request_key":"IYSOZDHWOP114",
"spi_currency":"IDR",
"spi_quantity":21,
"spi_amount":145210,
"spi_merchant_transaction_reff":"114",
"spi_token":"b3383905d8bbd9a562d1dcc31d89001d0cf79f22dbda8ccb98f5dd9c90bf9c",
"spi_billingName":"andi kapri",
"spi_billingAddress":"jalan aa jalan bb",
"spi_billingCity":"kota aa",
"spi_billingState":"LA",
"spi_billingPostalCode":"64393",
"spi_billingCountry":"ID",
"spi_billingPhone":"3333333",
"spi_billingEmail":"andikapri87@gmail.com",
"spi_deliveryName":"andi kapri",
"spi_deliveryAddress":"jalan aa jalan bb",
"spi_deliveryCity":"kota aa",
"spi_deliveryState":"LA",
"spi_deliveryPostalCode":"64393",
"spi_deliveryCountry":"ID"}

Di bawah ini merupakan contoh program dalam penggunaan variabel diatas :


<?php
// get token function
function get_token($username,$password)
{
$URL = "https://www.speedcash.co.id/spi/token"; //URL SPI Speedcash
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_TIMEOUT, 120); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_REFERER, "http://domainanda.com/api/"); // berisi url / domain yang didaftarkan oleh
merchant pada waktu mendaftarkan private key, 1 private key hanya bisa digunakan untuk 1 URL
$headers = array(
'Content-Type:application/json',
'Authorization: Basic '. base64_encode($username.":".$password)
);

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);


curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
$result = curl_exec($ch);
return $result;
}
//encript function
function encrypt($text,$token)
{
global $key;
$key = $token;
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB,
mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
//decript function
function decrypt($text,$order_id)
{
global $key;
$key = $order_id;
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB,
mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
$username = "TES_25b509108323a89d0db541e3d2e0"; // Berisi private_key1 dari hasil pendaftaran private key
$password = "TES_7e163824ca97fa1e64bb4c0e10a2"; // Berisi private_key2 dari hasil pendaftaran private key
$msg = '{"spi_item":[{"name":"Kaos 2",
"unitPrice":"2",
"sku":"Jenis Kaos 2",
"ids":"Jenis Kaos 2",
"qty":"1",
"desc":"Kaos 2"},
{"name":"Kaos 1",
"unitPrice":"1",
"sku":"Kaos Kebangsaan",
"ids":"Kaos Kebangsaan",
"qty":"2",
"desc":"Kaos 1"}],
"cms":"ubercart",
"spi_callback":"http:\/\/domainanda.com\/api\/output.php",
"spi_is_escrow":0,
"spi_request_key":"EGHGHGH1212",
"spi_currency":"IDR",
"spi_quantity":3,
"spi_amount":4,
"spi_merchant_transaction_reff":"114",
"spi_token":"'.$username.$password.'",
"spi_billingName":"andi kapri",
"spi_billingAddress":"jalan aa jalan bb",
"spi_billingCity":"kota aa",
"spi_billingState":"LA",
"spi_billingPostalCode":"64393",
"spi_billingCountry":"ID",
"spi_billingPhone":"3333333",
"spi_billingEmail":"andikapri87@gmail.com",
"spi_deliveryName":"andi kapri",

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

"spi_deliveryAddress":"jalan aa jalan bb",


"spi_deliveryCity":"kota aa",
"spi_deliveryState":"LA",
"spi_deliveryPostalCode":"64393",
"spi_deliveryCountry":"ID"}';
$token = get_token($username,$password); //ambil token melalui fungsi token diatas
$chiper_msg = encrypt($msg, $token); // encrypt $msg sebagai plain text, dan $token sebagai $key;
$chiper_msg = substr($chiper_msg,0,10).$token.substr($chiper_msg,10); //data ini yang akan dikirim ke URL
Speedcash
$redirect_url = "https://www.speedcash.co.id/spi/toolbar";
?>
<html>
<head>
<script language="JavaScript" type="text/javascript">
var t = setTimeout("document.myform.submit();", 1000); //1 seconds measured in miliseconds
</script>
</head>
<body>
<form name="myform" action="<?php echo $redirect_url ; ?>" method="POST">
<input type='hidden' name='orderdata' value='<?php echo $chiper_msg ?>'>
<input type="Submit" class="btn" value="wait for redirect or follow this button"
name="Submit" onMouseOver="this.style.cursor = 'hand'"/>
</form>
</body>
</html>

Proses CallBack /OUTPUT


Adalah Proses setelah melakukan transaksi pembayaran melalui website SPI
Speedcash, dari sini akan mendapatkan response/OUTPUT apakah pembayaran
sukses atau tidak.
List Variabel Output :
No.

Variable Name

Type Data

Contoh

Keterangan

1.

reff_id

String

10

Id yang di peroleh dari server Speedcash

2.

order_id

String

114

Sesuai variabel spi_merchant_transaction_reff


yang anda kirim

2.

request_key

String

"IYSOZDHWOP114"

Sesuai dengan varaibel spi_request_key yang


anda kirim

3.

response_code

String

00

00 : Transaksi Sukses
80 : Salah Currency
33 : Database Trouble
31 : Gagal Catat Transaksi

4.

response_desc

String

Silahkan Transfer Ke Keterangan dari variabel response_code


Rekening Smartcash 87878

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

5.

additional_datas

JSON

{"spi_item":[{"name":"Kao
s 2",
"unitPrice":"150.00000",
"qty":"1"},
{"name":"Kaos 1",
"unitPrice":"3.00000",
"qty":"20"}],
"spi_currency":"IDR",
"spi_amount":210,
"spi_deliveryName":"andi
kapri",
"spi_deliveryAddress":"jala
n aa jalan bb",
"spi_deliveryCity":"kota
aa",
"spi_deliveryPostalCode":"
64393",
"spi_deliveryCountry":"ID"
}

Adalah detail barang dan jumlah penjualan


yang terkirim ke website SPI Speedcash, Anda
juga bisa melihat variabel yang ada di
dalamnya.
Keterangan variabel yang ada di dalam JSON,
sama persis dangan variabel input pada saat
mengirim data ke website SPI Speedcash

Berikut contoh format variabel kembalian dari website SPI Speedcash:


reff_id:10
order_id:114
request_key:"IYSOZDHWOP114"
response_code:"00"
response_desc:Silahkan Transfer Ke Rekening Speedcash 87878
additional_datas:{"spi_item":[{"name":"Kaos 2",
"unitPrice":"150.00000",
"qty":"1"},
{"name":"Kaos 1",
"unitPrice":"3.00000",
"qty":"20"}],
"spi_currency":"IDR",
"spi_amount":210,
"spi_deliveryName":"andi kapri",
"spi_deliveryAddress":"jalan aa jalan bb",
"spi_deliveryCity":"kota aa",
"spi_deliveryPostalCode":"64393",
"spi_deliveryCountry":"USA"}

Berikut kami berikan contoh pengambilan dan pengolahan variabel Output dari
Website SPI Speedcash :
<?php
//decript function
function decrypt($text,$order_id)
{
global $key;

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

$key = $order_id;
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB,
mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
$reff_id = $_REQUEST['reff_id']; // order id yang di peroleh dari speedcash
$response_code = $_REQUEST['response_code']; // kode yang menunjukan proses transaksi jika mendapatkan nilai 00
maka transaksi sukses dan apabila mendapatkan nilai selain 00 maka anda bisa menampilkan notifikasi melalui parameter
$response_desc
$order_id = $_REQUEST['order_id']; // order id penjualan dari website/toko online merchant
$request_key = $_REQUEST['request_key']; //nilai spi_request_key yang anda kirim ketika proses pembelian
$response_desc = $_REQUEST['response_desc']; // parameter pesan apabila transaksi belum sukses
$datas = $_REQUEST['additional_datas']; // parameter array yang berisi detail pembelian barang dari website merchant
$datas = decrypt($datas,$order_id); // harus di dekrip terlebih dahulu untuk membuka array tersebut, fungsi decrypt sudah
tercantum di atas
//Berikut contoh fungsi untuk membuka isi decript untuk parameter $datas, dan anda bisa melihat apasaja parameter di
dalamnya
$datas = json_decode($datas);
$str = "<br/><table border = 1>";
$str="<tr><td><strong>No.</strong></td><td><strong>Name</strong></td><td><strong>Qty</strong></td><td><strong
>Price (".$datas->spi_currency.")</strong></td></tr>";
$i = 1;
foreach ($datas->spi_item as $key => $product) {
$price = round($product->unitPrice,2);
$str .= "<tr><td>".$i."</td><td>".$product->name."</td><td>".$product->qty."</td><td>".$price."</td></tr>";
$i = $i + 1;
}
$str .= "</table>";
$str .= "<br/>";
$str .= "Total Amount = ".$datas->spi_amount."<br/><br/>";
$str .= "<strong>Delivery Order</strong><br/>";
$str .= "Delivery Name : ".$datas->spi_deliveryName ."<br/>";
$str .= "Delivery Address : ".$datas->spi_deliveryAddress."<br/>";
$str .= "Delivery City : ".$datas->spi_deliveryCity."<br/>";
$str .= "Delivery PostalCode : ".$datas->spi_deliveryPostalCode."<br/><br/>";
echo $str;
?>

Kode Untuk Pengecekan Data Transaksi Speedcash:


User hanya bisa mengecek transaksi per tanggal, berikut parameter dan beberapa
fungsi programnya :
URL = https://www.speedcash.co.id/spi/toolbar/transaction_list

List Variable Input :


No.

Variable Name

Type Data

Example

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

Keterangan

10

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

1.

tanggal

String

2014-08-30

Format tanggal harus seperti yang


di contohkan (YYYY-mm-dd)

2.

private_key

String

"83905d8bbd9a562d1dcc31d89001"

Diambil dari private key 1

Variabel diatas dikirim dalam bentuk JSON berikut contoh formatnya :


{"tanggal":"2014-08-30","private_key":"b3383905d8bbd9a562d1dcc31d89001"}

List Variabel Output


No.

Variable Name

Type Data

Contoh

Keterangan

1.

id_transaksi

String

10

Diperoleh dari id speedcash

2.

bill_info32

String

114

Diperoleh dari Order Id


Penjualan Website Merchant

3.

time_request

date

"2014-08-30 12:21:39.183124+07"

Tanggal Transaksi

4.

keterangan

String

Sukses

Keterangan Hasil Transaksi

Variabel diatas dikirim dalam bentuk JSON, berikut contohnya :


{
"id_transaksi":"10",
"bill_info32":"114",
"time_request":"2014-08-30 12:21:39.183124+07",
"keterangan":"sukses"
}

Dibawah ini adalah contoh program untuk mengecek transaksi penjualan ke


website Speedcash :
<?php
$url = 'https://www.speedcash.co.id/spi/toolbar/transaction_list';
$tanggal = '2014-08-30';
$pin = b3383905d8bbd9a562d1dcc31d89001; // diambil dari privatekey 1
function encrypt2($text) //Fungsi Enkrip
{
$key = 'bukaksitikjoss';
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB,
mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
function decrypt2($text) // Fungsi Dekrip
{
$key = 'bukaksitikjoss';
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB,
mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
function _serialize_request($array='')

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

11

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

{
$data = '';
if($array != '' && is_array($array)){
foreach($array as $key => $value) {
if($key != ""){
$data .= $data == "" ? "" : "&";
$data .= urlencode(urldecode($key)) ."=". urlencode($value);
}
}
}
return $data;
}
function setData($tgl="00",$pin="00", $url) // contoh program untuk mengambil data transaksi dari website speedcash
{
$ch = curl_init();
$orderdata = new stdClass();
$orderdata->tanggal = $tgl;
$orderdata->private_key = $pin;
$orderdata_ = (json_encode($orderdata));
$orderdata_encrypted = encrypt2(json_encode($orderdata));
$orderdata_decrypted = decrypt2($orderdata_encrypted);
$d = array("orderdata" => $orderdata_encrypted);
$serialized = _serialize_request($d);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $serialized);
curl_setopt($ch, CURLOPT_PORT, 443);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
$response = curl_exec($ch);
$errno = curl_errno($ch);
$error = curl_error($ch);
if ($errno > 0)
$aa = 'null';
else
$aa = $response;
curl_close($ch);
$resp = json_decode($response);
if ($resp == null || $resp == "")
{
$tabel = "<font size='6' color='red'>Data Tidak Di Temukan</font>";
}
else
{
$i = 1;
$tabel
=
"<table><tr><td>NO</td><td>REFF
ID</td><td>ORDER
ID</td><td>TRANSACTION
DATE</td><td>KETERANGAN</td></tr><tr>";
foreach ($resp as $data)
{

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

12

Panduan Integrasi SpeedCash via API


Panduan Penggunaan API

$tabel .= "<td>".$i."</td><td>".$data->bill_info32."</td><td>".$data->id_transaksi."</td><td>".date("Ym-d H:i:s", strtotime($data->time_request))."</td><td>".$data->keterangan."</td>";


$i++;
}
$tabel .= "</tr></table>";
}
return $tabel;
}
echo setData($tanggal,$pin,$url);
?>

6.
7.

Silakan Anda menambahkan source API tersebut di atas pada halaman web ecommerce Anda
SpeedCash Interface Payment siap untuk digunakan

PT. Bimasakti Multi Sinergi - Copyright 2014 SpeedCash

13

Anda mungkin juga menyukai