Dokumen API SpeedCash(v.3.0)

download Dokumen API SpeedCash(v.3.0)

of 26

description

Google map api documentation

Transcript of Dokumen API SpeedCash(v.3.0)

  • 0

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan Integrasi Webstore ke SpeedCash via API

    (V.3.0)

    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/

  • 1

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Pendahuluan

    Panduan Integrasi Webstore ke SpeedCash via API

    Panduan Integrasi Webstore ke SpeedCash via API (Panduan dan Spesifikasi Teknis)

    v3.0

    Disiapkan oleh Divisi Ecommerce Solution

    PT. Bimasakti Multi Sinergi, Indonesia

    Dokumen ini berisi informasi kepemilikan yang rahasia dari PT. Bimasakti Multi Sinergi.

    Penyingkapan sebagian atau seluruh dokumen ini dapat menyebabkan kerugian materiil bagi PT.

    Bimasakti Multi Sinergi. Ijin tertulis dari PT. Bimasakti Multi Sinergi wajib didapatkan sebelum

    menyingkapkan dokumen ini kepada pihak ketiga.

    This document contains proprietary information that is confidential to PT. Bimasakti Multi Sinergi.

    Disclosure of this document in full or in part, may result in material damage to PT. Bimasakti Multi

    Sinergi. Written permission must be obtained from PT. Bimasakti Multi Sinergi prior to the disclosure

    of this document to third party.

  • 2

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Pendahuluan

    Panduan Integrasi Webstore ke SpeedCash via API

    Kontrol Perubahan Dokumen

    Author Keterangan Tanggal Versi

    awicaksi

    rdarmawan

    rmaulidya

    Penulisan ulang dari Panduan Integrasi API

    SpeedCash (v2.0.2.08.10.14), dan

    penambahan field expiry dan callback.

    Update spesifikasi parameter dan contoh kode.

    Update screenshots dan contoh aliran proses.

    22 Oktober 2014 3.0

  • 3

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    Pengantar Dokumen ini berisi panduan integrasi webstore merchant ke server SpeedCash via API untuk dapat

    memanfaatkan layanan pembayaran SpeedCash. Isi dokumen ditujukan bagi pemilik webstore yang

    memiliki pengetahuan dan sumber daya untuk membangun kode di webstore-nya.

    Terminologi SpeedCash : sistem layanan mediasi pembayaran online.

    SpeedCash API : antarmuka siap pakai yang tersedia di SpeedCash untuk diakses oleh aplikasi

    lain secara programatik.

    Webstore : toko online berbasis web.

    Merchant : member SpeedCash, yang akunnya akan digunakan dalam integrasi ini.

    Prasyarat Integrasi Integrasi dapat dilakukan bila syarat-syarat berikut ini terpenuhi:

    (1) Merchant memiliki ID SpeedCash yang aktif dan sudah mendapatkan fitur akses layanan

    yang memadai sesuai ketentuan SpeedCash.

    (2) Webstore sudah online di internet dan dapat diakses secara publik dengan nama domain

    tertentu (bukan IP).

    (3) Webstore dapat berkomunikasi dengan aplikasi SpeedCash melalui internet menggunakan

    protokol HTTP/HTTPS.

    (4) Webstore memiliki modul enkripsi yang diperlukan untuk pengamanan data yang akan

    dikomunikasikan ke dan dari aplikasi SpeedCash. Teknik enkripsi harus sesuai standar yang

    digunakan oleh API SpeedCash.

    Persiapan Integrasi Langkah persiapan integrasi yang perlu dilakukan oleh merchant:

    (1) Mendaftarkan URL webstore ke aplikasi SpeedCash.

    a) Silakan login ke www.speedcash.co.id menggunakan akun SpeedCash Anda.

    Gambar 1. Halaman home pada website SpeedCash.

    b) PIlih menu Penjualan dan Merchant - Integrasi via API.

    c) Klik tombol Private Key di halaman Integrasi SpeedCash via API.

  • 4

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    Gambar 2. Halaman Integrasi via API(Private Key) pada website SpeedCash.

    d) Pilih tab Daftarkan Domain.

    Gambar 3. Halaman Integrasi via API(Daftarkan Domain) pada website SpeedCash.

    e) Silakan mengisi field yang diperlukan, meliputi : ID Outlet, PIN dan Nama Domain

    webstore yang akan digunakan. Selanjutnya, klik tombol Buat Private Key Untuk

    Domain Saya.

    Gambar 4. Halaman Integrasi via API(Private Key Domain) pada website SpeedCash.

  • 5

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    f) Private Key yang telah sukses digenerate akan ditampilkan di halaman Detail API

    Saya.

    Gambar 5. Halaman Integrasi via API(Data API) pada website SpeedCash.

    (2) Mengambil dan mencatat private keys yang digenerate oleh SpeedCash (langkah 1f di atas).

    Data tersebut (kedua buah data string) akan dicantumkan pada kode API client yang akan

    dibuat dan digunakan sebagai pengenal setiap request (permintaan) dari webstore terhadap

    SpeedCash.

    Integrasi Langkah integrasi adalah sebagai berikut:

    (1) Membangun kode fungsi API client di dalam aplikasi webstore yang akan digunakan untuk

    memanggil fungsi API SpeedCash.

    (2) Menempelkan fungsi API client ke dalam aliran proses pembelian di webstore.

  • 6

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    Fungsi API SpeedCash

    Get Token

    Mengambil token yang akan digunakan sebagai data otentikasi dalam setiap permintaan (request)

    layanan API lainnya.

    URL https://www.speedcash.co.id/spi/token

    Keterangan Jenis Nama

    Berisi private_key1 yang diperoleh dari hasil proses pendaftaran webstore merchant

    String(50), mandatory username

    Berisi private_key2 yang diperoleh dari hasil proses pendaftaran webstore merchant

    String(50), mandatory password

    Berisi URL lengkap dari webstore yang didaftarkan oleh merchant

    String(100), mandatory url domain

    Contoh Kode API Client (PHP)

  • 7

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    $username = "0bd110fe579789dac348709f47187b45"; // berisi private_key1 yg

    diperoleh dari hasil proses pendaftaran webstore merchant

    $password = "e63b3b8596a42e194130488e016c1d0e"; // berisi private_key2 yg

    diperoleh dari hasil proses pendaftaran webstore merchant

    $token = get_token($username, $password); // berisi token authentikasi yg akan

    digunakan untuk rekues pembayaran.

    ?>

    Request Pembayaran

    Proses ini digunakan untuk mengirim data transaksi ke server SpeedCash dan sekaligus melakukan

    transaksi pembayarannya.

    URL https://www.speedcash.co.id/spi/toolbar

    Parameter Request

    Keterangan Jenis Nama

    Detail produk. Berisi [name,unitPrice,sku,ids,qty,desc] (dapat dilihat di tabel Deskripsi variabel spi_item)

    Array2D spi_item

    Harus diisi dengan API String (20), mandatory cms

    URL Call Back Website Merchant String (150), mandatory spi_callback

    Flag Rekening Bersama SpeedCash: 0 = kustomer tidak boleh menggunakan RekBer, atau 1 = kustomer diperbolehkan menggunakan Rekber

    Integer spi_is_escrow

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

    String (20), mandatory spi_request_key

    Nilai Mata Uang hanya support (IDR,USD)

    String (3), mandatory spi_currency

    Jumlah Total Barang Yang Dibeli(hasil penjumlahan dari parameter spi_item[qty])

    Integer, mandatory spi_quantity

    Jumlah Total Harga Barang Yang Dibeli(hasil penjumlahan dari parameter spi_item[unitPrice])

    Integer, mandatory spi_amount

  • 8

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

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

    String (30), mandatory spi_merchant_transaction_reff

    Gabungan antara private_key1 dan private_key2 (digabung dalam satu string)

    String (100), mandatory spi_token

    Nama Pembeli String (30), mandatory spi_billingName

    Alamat Pembeli String (100), mandatory spi_billingAddress

    Kota Pembeli String (50), mandatory spi_billingCity

    Inisial Kota Pembeli LA:LAMONGAN format bebas maksimal 3 karakter

    String (4) spi_billingState

    Kode Pos Pembeli(kode pos bisa dilihat di http://kodepos.posindonesia.co.id/)

    String (6), mandatory spi_billingPostalCode

    Kode Negara Pembeli (ID:Indonesia) , kode format bisa dilihat di wesbsite http://www.web- l.com/country-codes/

    String (3), mandatory spi_billingCountry

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

    String (20) spi_billingPhone

    Email Pembeli String (50) spi_billingEmail

    Nama Penerima String (30), mandatory spi_deliveryName

    Alamat Penerima String (100), mandatory spi_deliveryAddress

    Kota Penerima String (50), mandatory spi_deliveryCity

    Inisial Kota Penerima LA: LAMONGAN format bebas maksimal 3 karakter

    String (3) spi_deliveryState

    Kode Pos Penerima (kode pos bisa dilihat di http://kodepos.posindonesia.co.id/)

    String (6), mandatory spi_deliveryPostalCode

    Kode Negara Penerima (ID:Indonesia) , kode format bisa dilihat di wesbsite http://www.web- l.com/country-codes/

    String (3), mandatory spi_deliveryCountry

  • 9

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    yes : menggunakan user interface, no : tidak menggunakan user interface

    String(5) using_gui

    Batas tanggal dan waktu kadaluarsa pembayaran, dihitung berdasarkan waktu server SpeedCash (GMT+7).

    Date (yyyyMMddHHmmss)

    spi_paymentDate

    URL listener pada Webstore Merchant (SpeedCash akan mengirinkan notifikasi pembayaran ke URL tersebut untuk jenis pembayaran yang asinkron: ATM BCA, BRI MOCASH, MANDIRI, TCASH, ATM 137 Bank Online)

    String (150) url_listener

    Parameter ini digunakan jika merchant ingin merubah tampilan (Header dan Footer pada gambar 8 dan 9) sesuai dengan nama webstore merchant. 0 = Tidak merubah tampilan 1 = Merubah tampilan

    Integer, mandatory custom_page

    Gambar yang ingin ditampilkan pada bagian atas(Gambar 8 dan 9). NB : Gambar harus diberikan pada pihak SpeedCash terlebih dahulu.

    String(100), mandatory (jika parameter custom_page bernilai 1)

    custom_header

    Logo webstore merchant yang ingin ditampilkan.

    String(100), mandatory (jika parameter custom_page bernilai 1)

    custom_logo

    Nama webstore merchant yang ingin ditampilkan.

    String(100), mandatory (jika parameter custom_page bernilai 1)

    custom_name

    Parameter ini digunakan jika merchant ingin menggunakan fasilitas pengiriman (Pos, dll). 0 = Tidak menggunakan pengiriman 1 = Menggunakan pengiriman

    Integer spi_item_expedition

    Berat barang / produk. Integer spi_item_weight

    Deskripsi struktur variabel spi_item

    Keterangan Jenis Nama

    Nama produk. nb : dapat berulang

    String(20), mandatory name

    Harga Satuan Produk, contoh: 45000 atau 45000.00 (tanpa separator

    String (12), mandatory unitPrice

  • 10

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    ribuan, hanya separator pecahan) nb : dapat berulang

    Jenis Produk. nb : dapat berulang

    String (30), mandatory sku

    Model Produk. nb : dapat berulang

    String (30), mandatory ids

    Jumlah Produk. nb : dapat berulang

    String (5), mandatory qty

    Deskripsi Produk. nb : dapat berulang

    String (30), mandatory desc

    Contoh kode API client (PHP)

  • 11

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    "sku"=>"Jenis Kaos 2",

    "ids"=>"Jenis Kaos 2",

    "qty"=>"1",

    "desc"=>"Kaos 2"

    ),

    ),

    "cms" => "API",

    "spi_callback" =>

    utf8_encode("http://www.yourwebstore.com/response_receiver.php"),

    "spi_is_escrow" => 0,

    "spi_request_key" => "EGHGHGH1212",

    "spi_currency" => "IDR",

    "spi_quantity" => "2",

    "spi_amount" => 30000,

    "spi_merchant_transaction_reff" => "ASJ1231231233",

    "spi_token" => $username . $password,

    "spi_billingName" => "Name",

    "spi_billingAddress" => "Address",

    "spi_billingCity" => "City",

    "spi_billingState" => "State",

    "spi_billingPostalCode" => "64393",

    "spi_billingCountry" => "ID",

    "spi_billingPhone" => "081232646622",

    "spi_billingEmail" => "[email protected]",

    "spi_deliveryName" => "Name",

    "spi_deliveryAddress" => "Address",

    "spi_deliveryCity" => "City",

    "spi_deliveryState" => "State",

    "spi_deliveryPostalCode" => "60119",

    "spi_deliveryCountry" => "ID",

    "using_gui" => "no",

    "spi_paymentDate" => "20141230235905",

    "url_listener" =>

    utf8_encode("http://www.yourwebstore.com/listener_notifikasi_payment.php"),

    "custom_page" => "1",

    "custom_header" => "img/your_webstore",

    "custom_logo" => "img/webstore",

    "custom_name" => "www.yourwebstore.com",

    "spi_item_expedition" => "0",

    "spi_item_weight" => "0"

    );

    $message = json_encode($data);

    $token = get_token($username, $password);

    $messageEncrypted = encrypt($message, $token);

    // Compose pesan untuk dikirim ke URL

    $messageEncrypted = substr($messageEncrypted, 0, 10)

    . $token

    . substr($messageEncrypted, 10);

    $redirect_url = "https://www.speedcash.co.id/spi/toolbar";

    ?>

  • 12

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    // Set timeout (in milliseconds)

    var t = setTimeout("document.myform.submit();", 1000);

  • 13

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    "spi_billingEmail": "[email protected]",

    "spi_deliveryName": "Name",

    "spi_deliveryAddress": "Address",

    "spi_deliveryCity": "City",

    "spi_deliveryState": "State",

    "spi_deliveryPostalCode": "60119",

    "spi_deliveryCountry": "ID",

    "spi_paymentDate": "20141230235905",

    "url_listener":

    "http:\/\/www.yourwebstore.com\/listener_notifikasi_payment.php",

    "custom_page" => "1",

    "custom_header" => "img/your_webstore",

    "custom_logo" => "img/webstore",

    "custom_name" => "www.yourwebstore.com",

    "spi_item_expedition" => "0",

    "spi_item_weight" => "0"

    }

    Contoh data request setelah dienkripsi

    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

    Metode enkripsi tersebut menggunakan library dari php yaitu php_mcrypt. Cara instalasinya

    sangat mudah, langkahnya adalah sebagai berikut:

    Linux (Ubuntu)

    1. Periksa konfigurasi library mcrypt terlebih dahulu, apakah aktif / tidak aktif di php

    Anda dengan cara membuat file ekstensi php(phpinfo.php) yang berisi script dan mengaksesnya lewat browser(mozilla firefox, google chrome, dll).

    Contoh akses di browser : http://localhost/phpinfo.php.

  • 14

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    2. Jika konfigurasi telah aktif maka di phpinfo anda akan tercantum library mcrypt

    seperti gambar di bawah ini.

    Gambar 6. Konfigurasi library php (PHP_Mcrypt).

    3. Jika konfigurasi mcrypt tidak terlihat di phpinfo Anda. maka instal library php_mcrypt

    dengan cara ketikan apt-get install php5-mcrypt di command line (terminal).

    4. Setelah instalasi library php_mcrypt sukses kemudian restart apache dengan cara

    ketikan service apache2 restart di command line (terminal). lalu refresh browser

    Anda. Konfigurasi library php_mcrypt akan terlihat di phpinfo Anda, dengan begitu

    php anda sudah siap untuk melakukan enkripsi data.

    Windows

    1. Download windows binary package di http://php.net/downloads.php.

    2. Extract / Unzip hasil download windows binary package tersebut.

    3. Dalam folder hasil extract / unzip tersebut ada sebuah file yang bernama

    "libmcrypt.dll", salin file ke folder ekstensi php Anda. Biasanya berada di direktori

    file program Anda, misal "C:\Program Files\PHP\", jika Anda menggunakan versi non

    Inggris Windows maka nama mungkin berbeda.

    4. Dalam folder hasil extract / unzip juga terdapat folder lain yang disebut "ext", buka

    dan copy file "php_mcrypt.dll" ke folder ekstensi php Anda.

    5. Edit file php.ini dengan menambahkan extension=php_mcrypt.dll.

    6. Restart web server, dengan begitu php anda sudah siap untuk melakukan enkripsi

    data.

    Alternatif library enkripsi, PHPCrypt

    Selain menggunakan library php_mcrypt, Anda juga bisa memanfaatkan fungsi dari PHPCrypt

    yang bisa Anda dapatkan di http://www.gilfether.com/phpcrypt/. Cara penggunaannya juga sangat

    mudah, contohnya seperti di bawah ini.

    Linux / Windows (Cara penggunaannya sama)

  • 15

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    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, "www.yourwebstore.com"); // 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)

    );

    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;

    }

    /* fungsi enkripsi menggunakan PHPCrypt */

    function encrypt_phpCrypt($text,$token){

    $crypt = new PHP_Crypt($token, PHP_Crypt::CIPHER_RIJNDAEL_256,

    PHP_Crypt::MODE_ECB);

    return base64_encode($crypt->encrypt($text));

    }

    /* contoh kode untuk proses enkripsi data */

    // Set username, diambil dari nilai private_key1

    // yang diperoleh dari hasil proses pendaftaran webstore merchant

    $username = "0bd110fe579789dac348709f47187b45";

    // Set username, diambil dari nilai private_key2

    // yang diperoleh dari hasil proses pendaftaran webstore merchant

    $password = "e63b3b8596a42e194130488e016c1d0e";

    $data = array(

    "spi_item" => array(

    array(

    "name"=>"Kaos oblong",

    "unitPrice"=>"20000",

    "sku"=>"Jenis Kaos 1",

    "ids"=>"Jenis Kaos 1",

    "qty"=>"1",

    "desc"=>"Kaos 1"

    ),

    array(

    "name"=>"Kaos tidak oblong",

    "unitPrice"=>"10000",

  • 16

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    "sku"=>"Jenis Kaos 2",

    "ids"=>"Jenis Kaos 2",

    "qty"=>"1",

    "desc"=>"Kaos 2"

    ),

    ),

    "cms" => "API",

    "spi_callback" =>

    utf8_encode("http://www.yourwebstore.com/response_receiver.php"),

    "spi_is_escrow" => 0,

    "spi_request_key" => "EGHGHGH1212",

    "spi_currency" => "IDR",

    "spi_quantity" => "2",

    "spi_amount" => 30000,

    "spi_merchant_transaction_reff" => str_pad("1014", 16,

    "0",STR_PAD_LEFT), // untuk enkripsi menggunakan PHP_Crypt order id harus

    16 digit",

    "spi_token" => $username . $password,

    "spi_billingName" => "Name",

    "spi_billingAddress" => "Address",

    "spi_billingCity" => "City",

    "spi_billingState" => "State",

    "spi_billingPostalCode" => "64393",

    "spi_billingCountry" => "ID",

    "spi_billingPhone" => "081232646622",

    "spi_billingEmail" => "[email protected]",

    "spi_deliveryName" => "Name",

    "spi_deliveryAddress" => "Address",

    "spi_deliveryCity" => "City",

    "spi_deliveryState" => "State",

    "spi_deliveryPostalCode" => "60119",

    "spi_deliveryCountry" => "ID",

    "using_gui" => "no",

    "spi_paymentDate" => "20141230235905",

    "url_listener" =>

    utf8_encode("http://www.yourwebstore.com/listener_notifikasi_payment.php"),

    "custom_page" => "1",

    "custom_header" => "img/your_webstore",

    "custom_logo" => "img/webstore",

    "custom_name" => "www.yourwebstore.com",

    "spi_expedition_price" => "23560",

    "spi_expedition_type" => "Express Barang Nasional",

    "spi_expedition_name" => "PT. POS",

    "spi_seller_zipcode" => "61252",

    "spi_item_weight" => "0"

    );

    $message = json_encode($data);

    $token = get_token($username, $password);

    $messageEncrypted = encrypt_phpCrypt($message, $token);

    // Compose pesan untuk dikirim ke URL

    $messageEncrypted = substr($messageEncrypted, 0, 10)

    . $token

    . substr($messageEncrypted, 10);

  • 17

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    $redirect_url = "https://www.speedcash.co.id/spi/toolbar";

    ?>

    // Set timeout (in milliseconds)

    var t = setTimeout("document.myform.submit();", 1000);

  • 18

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    Gambar 8. Halaman Speedcash Payment Interface konfirmasi produk.

    - Konfirmasi bahwa pembayaran sedang diproses

  • 19

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    Gambar 9. Halaman Speedcash Payment Interface proses pembayaran.

    Kemudian tekan tombol Kembali ke situs merchant, maka server SpeedCash akan mengirimkan

    respon data konfirmasi pembayaran ke url yang telah diberikan pada saat permintaan (request), dari

    parameter spi_callback : "http://www.yourwebstore.com/response_receiver.php".

    Parameter response

    Response yang diberikan akan berisi data berikut:

    Keterangan Jenis Nama

    Id referensi yang di peroleh dari server Speedcash

    String (10) reff_id

    Sesuai variabel spi_merchant_transaction_reff yang anda kirim

    String (16) order_id

    Sesuai dengan varaibel spi_request_key yang anda kirim

    String (20) request_key

    Kode respon hasil transaksi pembayaran. 00 : Transaksi Sukses 80 : Salah Currency 33 : Database Trouble 31 : Gagal Catat Transaksi

    String (5) response_code

    Keterangan / deskripsi dari variabel response_code. 00 : Transaksi Sukses 80 : Salah Currency 33 : Database Trouble 31 : Gagal Catat Transaksi

    Text response_desc

    Berisi enkripsi dari data detail produk yang di-request oleh webstore merchant ke server Speedcash. Lakukan dekripsi terlebih dahulu untuk memperoleh datanya.(contoh cara pengolahan data dapat dilihat di Contoh kode untuk mengolah data respon dari SpeedCash)

    JSON additional_datas

    Harga pengiriman barang / produk. Integer, spi_expedition_price

    Tipe pengiriman barang / produk. String(50) spi_expedition_type

    Nama pengiriman barang / produk String (50) spi_expedition_name

    Kode pos penjual. Integer(5) spi_seller_zipcode

    Versi api SPI SpeedCash String(5) api_version

  • 20

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    Contoh data respon

    reff_id=3138687&response_code=00&response_desc=Transaksi+Anda+Berhasil&order_id=A

    SJ1231231233&request_key=EGHGHGH1212&additional_datas=9hO1ufY8rbIsTvUgNjZreAMAEpE

    0rP1io5jf2CG4Hx7IhG9G29ACAiBNQ7NxBhuuS3%2B4YgKLViVk0UGZBUjv8FFlrraRnaMIDLw6JFsk%2

    F6zdQFPgOWL08UJjzaQDIOSFjupdmW7NQ%2Fk8FXSPlLJZjrmWxT7ML5xQSzfMJcGpW7RYx%2Bu1H5DKT

    NS8GcZi3LuKbtBi8jy8nxb5SED%2Fjej96okbGUzjs%2FG2l7e2rDZheMN%2FquZebusDCHq6vbaYpGsd

    Y6ge%2BmftZAztUN%2BZYjnCKK9MF%2BQovbIzFUfAGWhfqdAmcsZpyVzcZgZHBJDZRUVmWMoZJfTOtuH

    IzTuVhCOJZHjlOq69iPuojQaeyIxz4Ieujrpz9nsBEXvBnFGoh1jAtnGK9tLI427LDvtzzvFvEH1o1frV

    1HnYRhNc5vF3kNB9uKzEt55lLy%2FkeuCLtWzfxp%2FzJM86HYc3roOp8xzE%2BfJeoRy6fMcCb6BfuqY

    stywkgpN99oP2ANEu9xZG0tUQlvMkfqroP3CdGFgQTrIGF4gCljl90iDZ7e%2Fd0JjetMJSbOK9q0ZwdY

    PtbTCXVq10vZqqD6IQj8tZ1OnhVGZ5yadyvQNLxmVb5KJta526kgbEGHR8%2BkwX8pk3uS6%2BHhA4fbj

    VbN8coInsoAX5n80LWCcd3FHQEYOUVUd7zdLrhyFleaPptEmpQrCLDzZ0dQZO50mo2rPJLD%2FGP0xBMY

    k6yTa06LDVAcoa%2BYTiJhtgK1pWDb8LwzqnVtejWvJlWZ0XIzHBnS3VyF9n%2B7e7AyKqwjILeLcCPN0

    Em5auyEPgW0peZnUSOSh1jVd3OgHs5je78Y8BZDo1qDbQY6x0sp%2BH%2FQhZ39s%2FMet7C%2B4hm0rN

    gs7LIDFkXZZoPAGYBmg2QXT9SCXjZQSVr5FtXDOjcPbqxfGy1zjbLaF1HJdBWItZhoNMt2PAz9xeiJtu5

    cRyv%2FZeEaBH%2FUjLjEEw2M9SiDwF31%2FAxUBDugvFaFf2HYBCkj46D8mBl8twFn6uzobcDEbkH0FR

    vNhVFUHlvTEWm3WHg11kViSEzh0%2B8FwlO%2B3pxPu%2BoHyjXxVe0qmfjps%2BrzUaY6SkBodo2tkgz

    kNZ8SwHpy3enEa8Cg2unZeBCSQAy6Gtm7kj%2Bgkz3uan9uKIpWcJDkGPu%2Bk7LdWEg0sZrblOZD3%2B

    P1szLlUrjw1kD3cFhfUUrbbfaKpcFi500ZnGZyGwi3faOWhAxyg2fHAy4vrKblI%2BNAn52o5trk8Al0X

    2kAl1SppVhfDFhFzfDI5xdYsx&spi_expedition_price=12000&spi_expedition_type=Express+

    Barang+Nasional&spi_expedition_name=PT.POS&spi_seller_zipcode=60119&api_version=3

    .0

    Anda dapat mengolah data respon tersebut sebagai konfirmasi pembayaran kepada pembeli

    dengan cara menampilkan hasil olahan data ke url yang Anda berikan pada parameter

    spi_callback : "http://www.yourwebstore.com/response_receiver.php" saat permintaan (request)

    ke server Speedcash.

    Contoh kode untuk mengolah data respon dari server SpeedCash

  • 21

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via 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)));

    }

    ?>

    Metode dekripsi di atas menggunakan php_mcrypt. Selain menggunakan metode php_mcrypt,

    Anda juga bisa menggunakan metode dekripsi dengan PHPCrypt, contoh cara penggunaan

    dekripsi dengan PHPCrypt adalah seperti dibawah ini.

    Request Status Transaksi

    Mengambil data status transaksi harian yang sebelumnya telah dilakukan melalui layanan

    SpeedCash.

    URL https://www.speedcash.co.id/spi/toolbar/transaction_list

    Parameter Request

    Parameter disusun dalam format JSON, dienkrip, lalu disubmit dengan method POST.

  • 22

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    Keterangan Jenis Nama

    Tanggal transaksi yang diinginkan, dalam format YYYY-mm-dd.

    Date (yyyy-MM-dd), mandatory tanggal

    Berisi private_key1 yang diperoleh dari hasil proses pendaftaran webstore merchant

    String (32), mandatory private_key

    Berisi private_key2 yang diperoleh dari hasil proses pendaftaran webstore merchant

    String(32), mandatory private_key2

    Contoh data Request

    {

    "tanggal":"2014-08-30",

    "private_key":"0bd110fe579789dac348709f47187b45",

    "private_key2":"e63b3b8596a42e194130488e016c1d0e"

    }

    Contoh kode API Client (PHP)

  • 23

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    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, "www.yourwebstore.com");

    $headers = array(

    'Content-Type:application/json',

    'Authorization: Basic ' . base64_encode($username . ":" . $password)

    );

    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;

    }

    /**

    / Fungsi pengambil data status transaksi

    */

    function getData($tgl="00",$username="00",$password="00")

    {

    $ch = curl_init();

    $orderdata = new stdClass();

    $orderdata->tanggal = $tgl;

    $orderdata->private_key = $username;

    $orderdata->private_key2 = $password;

    $message = json_encode($orderdata);

    $token = get_token($username, $password);

    $messageEncrypted = encrypt($message, $token);

    // Enkrip data untuk dikirim ke URL

    $messageEncrypted = substr($messageEncrypted, 0, 10)

    . $token

    . substr($messageEncrypted, 10);

    $d = array("orderdata" => $messageEncrypted);

    $serialized = _serialize_request($d);

    curl_setopt($ch, CURLOPT_URL,

    "https://www.speedcash.co.id/spi/toolbar/transaction_list");

    curl_setopt($ch, CURLOPT_POSTFIELDS, $serialized);

    curl_setopt($ch, CURLOPT_PORT, 443);

    curl_setopt($ch, CURLOPT_POST, true);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  • 24

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    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 = "Data Tidak Di Temukan";

    }

    else

    {

    $i = 1;

    $tabel = "NOREFF IDORDER

    IDTRANSACTION DATEKETERANGAN";

    foreach ($resp as $data){

    $tabel .= "".$i."".$data-

    >reff_id."".$data->id_transaksi."".date("Y-m-d H:i:s",

    strtotime($data->time_request))."".$data->keterangan."";

    $i++;

    }

    $tabel .= "";

    }

    return $tabel;

    }

    // Set tanggal transaksi yang diinginkan

    $tanggal = '2014-10-22';

    // Set username, diambil dari nilai privatekey1

    $username = "0bd110fe579789dac348709f47187b45";

    // Set password, diambil dari nilai privatekey2

    $password = "e63b3b8596a42e194130488e016c1d0e";

    echo getData($tanggal,$username,$password);

    ?>

    Parameter Response

    Response berisi data transaksi per hari sesuai tanggal permintaan (request), diberikan dalam format

    JSON.

  • 25

    SpeedCash, Ecommerce Solution, PT. Bimasakti Multi Sinergi, 2014

    Panduan dan Spesifikasi Teknis

    Panduan Integrasi Webstore ke SpeedCash via API

    Keterangan Jenis Nama

    Diperoleh dari server Speedcash yang merupakan id_transaksi pembayaran.

    String(16) id_transaksi

    Diperoleh dari parameter spi_merchant_transaction_reff yang dikirim oleh merchant saat request pembayaran

    String(16) reff_id

    Tanggal transaksi pembayaran date (yyyy-MM-dd HH:mm:ss)

    time_request

    Kode response hasil transaksi pembayaran String(5) response_code

    Keterangan hasil transaksi pembayaran Text keterangan

    Versi API SpeedCash String(5) api_version

    Contoh data Response

    {

    id_transaksi":"3138612",

    "reff_id":"ASJ1231231233",

    "time_request":"2014-10-22 11:31:20",

    response_code:00,

    "keterangan":"Transaksi Anda Berhasil",

    api_version:3.0

    }

    Catatan Demi kelancaran dan ketersediaan akses bagi kustomer pada masing-masing aplikasi (webstore

    dan SpeedCash), beberapa point penting integrasi berikut wajib diperhatikan oleh merchant:

    (1) Merchant selalu menggunakan layanan API sesuai spesifikasi yang telah ditentukan

    SpeedCash.

    (2) Merchant tidak melakukan spamming maupun load test terhadap layanan API SpeedCash,

    baik melalui webstore ataupun tool lain.

    (3) Merchant bertanggung jawab dan mengusahakan keamanan data yang berada di dalam

    ranah webstore-nya.