อาลีเพย์ (ออนไลน์)

อาลีเพย์ (Alipay) เป็นอีกหนึ่งช่องทางรับชำระเงินที่ได้รับความนิยมสูงจากร้านค้าที่มีกลุ่มผู้บริโภคชาวจีน หรือต้องการขยายฐานลูกค้าให้เข้าถึงกลุ่มผู้บริโภคชาวจีนมากขึ้น ปัจจุบันมีผู้ใช้งานอาลีเพย์กว่า 450 ล้านบัญชี

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

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

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

Payment Flow1 Payment Flow2

เมื่อผู้ซื้อถูกส่งไปยังหน้าเว็บไซต์อาลีเพย์ ยอดเงินที่ต้องชำระจะถูกกรอกไว้ให้แล้ว โดยสกุลเงินจะแสดงตามบัญชีที่ร้านค้าจดทะเบียน เช่น ร้านค้าในประเทศไทยจะแสดงเป็นบาท (ในขณะนี้สกุลเงินที่รองรับคือบาทเท่านั้น) ส่วนการดำเนินการตัดเงินของระบบ ยอดจะถูกแปลงเป็นหยวนจีน (CNY) และเมื่อระบบทำรายการเสร็จสิ้น ร้านค้าจะได้รับชำระเงินเข้าบัญชีเป็นสกุลเงินบาท

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

การสร้างรายการรับชำระเงิน (charge) อาลีเพย์มีวิธีคล้ายกันกับการสร้างรายการอินเทอร์เน็ตแบงก์กิง

1. ร้านค้าจะต้องสร้าง source object โดยใช้ source api

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

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

ตัวอย่าง JSON Response

{
  "object": "source",
  "id": "src_test_59tz6ut89klcihx52ss",
  "type": "alipay",
  "flow": "redirect",
  "amount": 100000,
  "currency": "thb"
}

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

2. ในการสร้างรายการรับชำระเงิน (charge) ให้ส่ง parameter ชื่อ source ใน charge api

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

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

ตัวอย่าง JSON response

{
  "object": "charge",
  "id": "chrg_test_59tz85445qe6oj0illy",
  "livemode": false,
  "location": "/charges/chrg_test_59tz85445qe6oj0illy",
  "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-11-02T07:14:14Z",
    "offset": 0,
    "limit": 20,
    "total": 0,
    "order": null,
    "location": "/charges/chrg_test_59tz85445qe6oj0illy/refunds",
    "data": []
  },
  "return_uri": "https://omise.co",
  "reference": "ofsp_test_59tz8545ixmxqjq4vjt",
  "authorize_uri": "http://pay.omise.co/offsites/ofsp_test_59tz8545ixmxqjq4vjt/pay",
  "failure_code": null,
  "failure_message": null,
  "card": null,
  "customer": null,
  "ip": null,
  "dispute": null,
  "created": "2017-11-02T07:14:14Z",
  "source": {
    "object": "source",
    "id": "src_test_59tz6ut89klcihx52ss",
    "type": "alipay",
    "flow": "redirect",
    "amount": 100000,
    "currency": "thb"
  }
}

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

*สำหรับท่านที่ใช้งานในโหมดทดสอบ ให้คัดลอก URL ที่ถูกส่งกลับมาใน authorize_uri และวางในเบราว์เซอร์เพื่อใช้ทดสอบ

สามารถตรวจสอบสถานะรายการได้ โดยศึกษาวิธีการเรียกข้อมูลดังกล่าวใน Charges API

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

การคืนเงิน (refund)

สามารถทำการคืนเงินให้แก่ลูกค้าของคุณโดยเรียกใช้ Refund API หรือดำเนินการผ่านแดชบอร์ด

หมายเหตุ: การคืนเงินสามารถทำได้ภายในระยะเวลา 3 เดือนนับจากวันทำรายการ

Webhooks

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

สถานะรายการ

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

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

รหัสข้อขัดข้อง รายละเอียด
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]=alipay”

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

หมายเหตุ

- ในเบื้องต้น อาลีเพย์จะรองรับเฉพาะร้านค้าที่ลงทะเบียนใช้งานในประเทศไทยเท่านั้น

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