อินเทอร์เน็ตแบงก์กิ้ง

อินเทอร์เน็ตแบงก์กิ้งเป็นอีกหนึ่งทางเลือกในการชำระเงินออนไลน์ที่ให้ผู้ซื้อทำรายการผ่านทางเว็บไซต์ธนาคารได้ เพียงแค่สมัครใช้บริการอินเทอร์เน็ตแบงก์กิ้งกับธนาคารที่ต้องการไว้

ในเบื้องต้นโอมิเซะรองรับการชำระเงินผ่านธนาคารชั้นนำ 4 แห่งดังนี้:

ขั้นตอนการรับชำระเงิน

การชำระเงินผ่านระบบอินเทอร์เน็ตแบงก์กิ้ง ผู้ซื้อจะถูกส่งไปยังเว็บไซต์หรือแอปพลิเคชันของธนาคารเพื่อทำรายการ และเมื่อดำเนินการเรียบร้อยจะถูกส่งกลับมายังเว็บไซต์ของร้านค้าอีกครั้ง

internet banking 1

ในขั้นตอนการชำระเงินบนเว็บไซต์ของร้านค้า ผู้ซื้อเลือกช่องทางการชำระเงินเป็นอินเทอร์เน็ตแบงก์กิ้ง จากนั้นจะถูกส่งไปยังหน้าเว็บไซต์ของธนาคารโดยอัตโนมัติ

internet banking 2

จำนวนเงิน หมายเลข หมายเลขอ้างอิงต่างๆ ที่ปกติผู้ซื้อจะต้องกรอกเองนั้น ระบบของเราจะกรอกให้โดยอัตโนมัติทั้งหมด ผู้ซื้อเพียงตรวจทานข้อมูลก่อนยืนยันรายการเท่านั้น

การสร้างรายการรับชำระเงินโดยใช้ Payment Source

ในการสร้างรายการรับชำระเงิน (charge) อินเทอร์เน็ตแบงก์กิ้ง ร้านค้าจะต้องสร้าง source object โดยใช้ Source API

Field ทั้งหมดของ offsite มีดังนี้:
internet_banking_bay, internet_banking_bbl, internet_banking_ktb และ internet_banking_scb

ด้านล่างเป็นตัวอย่างการสร้าง source

curl https://api.omise.co/sources \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "amount=100000" \
  -d "currency=thb" \
  -d "type=internet_banking_scb"

ตัวอย่าง JSON Response

{
  "object": "source",
  "id": "src_test_59sviq593cxd3zckpe0",
  "type": "internet_banking_scb",
  "flow": "redirect",
  "amount": 100000,
  "currency": "thb"
}

*หมายเหตุ เมื่อสร้าง source object สามารถใช้ได้ทั้ง Secret Key และ Public Key จากนั้นจะได้ผลลัพธ์เป็น source ที่สร้างเสร็จสมบูรณ์แล้ว สิ่งสำคัญที่สุดก็คือ id ซึ่งจะนำมาใช้ต่อไป สมมุติว่าไอดีของคุณคือ srctest59sviq593cxd3zckpe0 ในการสร้างรายการรับชำระเงิน (charge) ให้ส่ง parameter ชื่อ source ใน charge api

curl https://api.omise.co/charges \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "amount=100000" \
  -d "currency=thb" \
  -d "return_uri=http://example.com/orders/345678/complete" \
  -d "source=src_test_59sviq593cxd3zckpe0"

return_uri - เป็น URI ของหน้าเว็บไซต์ที่ผู้ซื้อจะถูกส่งกลับไป เมื่อทำการรับชำระเงินเรียบร้อย

ตัวอย่าง JSON response

{
  "object": "charge",
  "id": "chrg_test_59sviwaxncht3osj6fq",
  "livemode": false,
  "location": "/charges/chrg_test_59sviwaxncht3osj6fq",
  "amount": 100000,
  "currency": "thb",
  "description": null,
  "metadata": {
  },
  "status": "pending",
  "capture": true,
  "authorized": false,
  "reversed": false,
  "paid": false,
  "transaction": null,
  "refunded": 0,
  "refunds": {
    "object": "list",
    "from": "1970-01-01T00:00:00Z",
    "to": "2017-10-30T11:34:06Z",
    "offset": 0,
    "limit": 20,
    "total": 0,
    "order": null,
    "location": "/charges/chrg_test_59sviwaxncht3osj6fq/refunds",
    "data": [

    ]
  },
  "return_uri": "http://example.com/orders/345678/complete",
  "reference": "ofsp_test_59sviwaza3gh5ho98vb",
  "authorize_uri": "https://pay.omise.co/offsites/ofsp_test_59sviwaza3gh5ho98vb/pay",
  "failure_code": null,
  "failure_message": null,
  "card": null,
  "customer": null,
  "ip": null,
  "dispute": null,
  "created": "2017-10-30T11:34:06Z",
  "source": {
    "object": "source",
    "id": "src_test_59sviq593cxd3zckpe0",
    "type": "internet_banking_scb",
    "flow": "redirect",
    "amount": 100000,
    "currency": "thb"
  }
}

เพื่อดำเนินการต่อร้านค้าจะต้องส่งผู้ซื้อไปยังหน้า authorize_uri

หมายเหตุ: ในการทดสอบระบบ ให้คัดลอก URL ที่ได้รับตอบกลับจาก authorize_uri และวางลงในเบราว์เซอร์เพื่อใช้ในการทดสอบต่อ

ร้านค้าสามารถเรียกดูสถานะของรายการได้ทุกขณะ เราได้อธิบายวิธีการเรียกข้อมูลได้จากหน้า Charges API

  • หากทั้ง authorized และ paid เป็น true รายการรับชำระเงินนั้นสำเร็จ
  • หากทั้ง authorized และ paid เป็น false รายการรับชำระเงินนั้นไม่สำเร็จ (สามารถตรวจสอบ failure code และ failure message ได้จาก Charge object)
  • Authorized และ paid ไม่สามารถมีค่าที่ต่างกันได้

Webhooks

ร้านค้าสามารถรับการแจ้งเตือนเมื่อมีรายการสำเร็จ โดยใช้ Webhook API ซึ่งจะส่ง webhook ไปยัง URL ที่ ในแดชบอร์ดที่ได้ตั้งไว้ รายการจะแสดงเป็น charge.complete

สถานะรายการ

สถานะ (status) รายละเอียด
สำเร็จ (successful) ผู้ซื้อได้ทำการชำระเงินแล้ว (authorized = true and paid = true)
กำลังดำเนินการ (pending) ผู้ซื้อยังไม่ได้ดำเนินการชำระเงิน
หมดอายุ (expired) ผู้ซื้อไม่ชำระเงินภายใน 24 ชั่วโมง
ไม่สำเร็จ (failed) รายการชำระเงินไม่สำเร็จ สามารถเรียกดูสาเหตุได้จาก failure_code และ failure_message ในข้อมูลรายการ

รหัสข้อขัดข้อง

รหัสข้อขัดข้อง รายละเอียด
insufficient_balance ยอดเงินในบัญชีไม่เพียงพอสำหรับทำรายการ
payment_cancelled ผู้ซื้อยกเลิกการทำรายการ
timeout ผู้ซื้อไม่ได้ดำเนินการใดๆ ภายใน 24 ชั่วโมงหลังจากที่ได้มีการสร้างรายการรับชำระเงินแล้ว
failed_processing รายการไม่สำเร็จด้วยเหตุผลอื่นๆ
bad_request ยอดของรายการรับชำระเงินจะต้องน้อยกว่าหรือเท่ากับ 100000000 (หน่วยย่อยที่สุดของบาท/สตางค์)
bad_request สกุลเงินไม่รองรับ
bad_request ระบบยังไม่รองรับ type ที่ระบุ
bad_request source ไม่ถูกต้อง
bad_request ต้องระบุ return_uri
not_found ไม่พบ source source_id

การสร้างรายการรับชำระเงินโดยการเพิ่ม attribute source[type]

curl https://api.omise.co/charges \
  -X POST \
  -u skey_test_59rnqoboimgxvjk894d: \
  -d "description=Charge for order 3947" \
  -d "amount=100000" \
  -d "currency=thb" \
  -d "return_uri=http://example.com/orders/345678/complete" \
  -d "source[type]=internet_banking_scb"

แม้รายการรับชำระเงินจะสามารถสร้างโดยเพิ่ม attribute source [type] ลงใน request ได้ แต่เราแนะนำให้สร้างรายการโดยใช้ payment source api

หมายเหตุ

- การรับชำระเงินผ่านอินเทอร์เน็ตแบงก์กิ้ง รองรับเฉพาะร้านค้าที่ลงทะเบียนใช้งานโอมิเซะในประเทศไทยเท่านั้น

- สำหรับร้านค้าที่อยู่ในโหมดใช้งานจริง (live account) อยู่แล้ว กรุณาส่งอีเมล์แจ้งความประสงค์ต้องการเปิดใช้งานอินเทอร์เน็ตแบงก์กิ้งผ่านทาง support@omise.co