Enabling Online Payment Using Veritrans (Desember 2015)

29
Payment Gateway Integration Adam Pahlevi Baihaqi

Transcript of Enabling Online Payment Using Veritrans (Desember 2015)

Payment Gateway Integration

Adam  Pahlevi  Baihaqi  

Click  to  edit  Master  text  styles   2  Tentang  pembicara   2  

• Nama:  Adam  Pahlevi  Baihaqi  • Bahasa  kesukaan:  Ruby,  Clojure  • Open  sources  project:  BALI,  World  Airports,  Jsoning,  Grape::Routes,  Condensable,  Assignbot,  Urbans,  Remexify,  ccjs,  etc.  

• Contributed:  ransack,  carrierwave,  refinerycms,  acLveadmin,  etc.  

• email:  adam.pahlevi@{gmail.com,  veritrans.co.id}  

Click  to  edit  Master  text  styles   3  Also  the  most  innocent   3  

Click  to  edit  Master  text  styles   4  Apa  itu  Payment  Gateway   4  

• Payment  Gateway  adalah  sistem  untuk  menerima  pembayaran,  keLka  melakukan  transaksi  online.  

• Contoh  payment  gateway:  – Luar  negeri:  PayPal  – Dalam  negeri:  Veritrans,  Doku,  ipay88,  Kartuku  

Click  to  edit  Master  text  styles   5  Tentang  Veritrans   5  

•  It  has  Japanese  branch  • Di  Indonesia,  ada  cabang  di  Jakarta  dan  Bandung  • e-­‐Commerce  Enablement  Company  • Primary  focus  today  is  Payment  Gateway  

Click  to  edit  Master  text  styles   6  Why  Veritrans?   6  

• Seamless  integraLon:  plugins  are  available  for  Ruby,  PHP,  and  other  PHP-­‐based  meta-­‐frameworks  such  as  Magento  

• Dokumentasi  accessible  • Easy-­‐to-­‐use  Merchant  Admin  Portal  (MAP)  • One  email  two  accounts:  Sandbox  and  ProducLon!  (and,  switchable!)  

• MulL-­‐accounts  per  Merchant,  with  Role  • SubjecLve:  excellent  customer  service  

Click  to  edit  Master  text  styles   7  Payment  Channel   7  

• Kartu  kredit  dengan  acquirer  BNI,  BCA,  CIMB  dan  MANDIRI.  Issuer,  any:  Visa,  MasterCard,  JCB,  UnionPay.  

• Bank  Transfer:  BCA  VA,  Permata  VA.  •  Internet  Banking:  Mandiri  (Bill,  E-­‐CASH),  BRI  e-­‐PAY,  Klik  BCA.  • e-­‐Wallet:  Telkomsel  Cash,  XL.  • Convenient  store:  Indomaret.  

IntegraLon  

Click  to  edit  Master  text  styles   9  3  Moda  Integrasi   9  

• VT-­‐LINK  • VT-­‐WEB  • VT-­‐DIRECT  

Click  to  edit  Master  text  styles   10  3  Moda  Integrasi   10  

Click  to  edit  Master  text  styles   11  VT-­‐LINK   11  

• Cocok  untuk  usaha  online  lewat  Facebook,  Instagram,  atau  pembayaran  cepat  lain.  

• Studi  kasus:  Garuda  menggunakan  VT-­‐LINK  untuk  corporate  clients  mereka.  

• Tidak  perlu  programming.  

Click  to  edit  Master  text  styles   12  VT-­‐WEB   12  

• Perlu  coding:  PHP,  JavaScript,  Ruby,  Java,  bahasa  apapun  dengan  package  HTTP,  bisa.  

• Menggunakan  REST  dan  JSON  • Checkout  dilakukan  di  situs  Veritrans  • Lebih  mudah  daripada  VT-­‐DIRECT,  karena:  

– Layout  sudah  tersedia  untuk  web  browser  desktop,  ataupun  smartphone.  

• GraLs,  tak  ada  biaya  per  bulan,  selain  daripada  biaya  per  transaksi.  

Click  to  edit  Master  text  styles   13  VT-­‐DIRECT   13  

• Direct:  lebih  low-­‐level  daripada  VT-­‐WEB  • Checkout  di  implementasikan  di  situs  sendiri  • Sangat  teknikal  • Fixed  biaya  pemakaian  2  juta  per  bulan,  apart  dari  biaya  transaksi  

Demonstrasi  VT-­‐LINK  

Let’s  have  a  quick  VT-­‐Direct  and  VT-­‐Web  demo!  

Let’s  talk  API    the  basic  of  VT-­‐WEB  and  VT-­‐DIRECT  

Click  to  edit  Master  text  styles   17  API  Endpoint   17  

• API  memiliki  dua  basis  URL:  – Development  URL:  api.sandbox.veritrans.co.id/v2  – ProducLon  URL:  api.veritrans.co.id/v2  

• Pada  dasarnya,  semua  api  menggunakan  “/charge”  untuk  checkout,  baik  untuk  VT-­‐WEB  atau  VT-­‐DIRECT  

• Tersedia  API  untuk  melakukan  approve,  cancel,  expire  transaksi.  Juga  unutk  mengecek  status  transaksi.  

Click  to  edit  Master  text  styles   18  API  Body   18  

• Headers:  – AuthorizaLon:  Basic  <Base64  serverkey>  – Accept:  applicaLon/json  – Content-­‐Type:  applicaLon/json  – User-­‐Agent:  NamaMerchant  

• Method:  POST  • URL:  base/charge  • Body:  parameter-­‐paramater  charging  

Click  to  edit  Master  text  styles   19  Plugins   19  

• Veritrans  memiliki  plugin:  – Ruby  – iOS  – Android  – PHP  

•  Jika  menggunakan  plugin,  Lnggal  set  Client  Key,  Server  Key,  lalu  panggil  “Charge”  dan  passed  in  parameter-­‐paremeter  nya.  

Click  to  edit  Master  text  styles   20  Plugins   20  

• Veritrans  memiliki  plugin:  – Ruby  – iOS  – Android  – PHP  

•  Jika  menggunakan  plugin,  Lnggal  set  Client  Key,  Server  Key,  lalu  panggil  “Charge”  dan  passed  in  parameter-­‐paremeter  nya.  

Charging  Parameters  

Click  to  edit  Master  text  styles   22  Charging  Parameters  101  (1)   22  

• Harus  ada:  payment_type  • Harus  ada:  transacLon_details  

– order_id  – gross_amount  

• OpLonal:  item_details:  – id  – name  – quanLty  – price  

Click  to  edit  Master  text  styles   23  Charging  Parameters  101  (2)   23  

• OpLonal:  customer_details  – first_name  – last_name  – email  – phone  – billing_address  dan  juga  shipping_address  

• first_name  • last_name  • phone  

Click  to  edit  Master  text  styles   24  Charging  Parameters  101  (2)   24  

• OpLonal:  customer_details  – first_name  – last_name  – email  – phone  – billing_address  dan  juga  shipping_address  

• first_name  • last_name  • phone  

Click  to  edit  Master  text  styles   25  Charging  Parameters  101  (3)  -­‐>  Contoh   25  

 "customer_details":  {          "first_name":  "Adam",          "last_name":  "Pahlevi",          "email":  "[email protected]",          "phone":  "085618921905",          "billing_address":  {              "first_name":  "Adam",              "last_name":  "Pahlevi",              "phone":  "085618921905"          },          "shipping_address":  {              "first_name":  "Adam",              "last_name":  "Pahlevi",              "phone":  "085618921905"          }      }  }  

{      “payment_type”:  “VTWEB”,      "transacLon_details":  {          "order_id":  13,          "gross_amount":  112200      },      "item_details":  [          {              "id":  2,              "price":  112200,              "quanLty":  1,              "name":  "Bumi  Manusia"          }      ],  

Perbedaan  API:    VT-­‐Direct  vs  VT-­‐Web  

Click  to  edit  Master  text  styles   27  Perbedaan  API:  VT-­‐DIRECT  vs  VT-­‐WEB   27  

•  VT-­‐WEB  – payment_type:  “VTWEB”  

•  VT-­‐DIRECT  – payment_type  tergantung  jenis  payment  

• Credit  Card:  credit_card  • CIMB  clicks:  cimb_clicks  • Telkomsel  T-­‐CASH:  telkomsel_cash  

– charging  params  biasanya  memiliki  modifikasi  • Credit  Card:  perlu  token_id  • Telkomsel  Cash:  promo,  is_reversal,  customer  

Diving  the  Code  

Terima  kasih