บทนำ
บทนี้อธิบายเกี่ยวกับหน้าที่ของ LINE Pay
การแนะนำเกี่ยวกับ LINE Pay
เอกสารนี้สำหรับผู้พัฒนาที่ต้องการเชื่อมต่อกับ LINE Pay
- แผนภาพประกอบ 1 LINE Pay Overview *
เงื่อนไขในการเชื่อมต่อ
บทนี้อธิบายเกี่ยวกับสิ่งที่จำเป็นและการเตรียมความพร้อมสำหรับการเชื่อมต่อกับ LINE Pay
ความต้องการของระบบ
การเชื่อมต่อ API กับ LINE Pay เป็นการสื่อสารเบื้องต้นระหว่าง LINE Pay กับระบบของร้านค้า ดังนั้นจึงจำเป็นที่ต้องทำการเชื่อมต่อกับระบบการชำระเงินที่ร้านค้าเตรียมไว้ต่างหาก
การเตรียมความพร้อมก่อนการเชื่อมต่อ
ก่อนทำการเชื่อมต่อ API ของการชำระเงิน LINE Pay ร้านค้าต้องสมัครเพื่อจะเป็นร้านค้า LINE Pay และตรวจสอบข้อมูลที่สำคัญสำหรับการเชื่อมต่อก่อน
การลงทะเบียนร้านค้า
ร้านค้าต้องลงทะเบียนเป็นร้านค้า LINE Pay เพื่อทำการเชื่อมต่อระบบการชำระเงินของ LINE Pay หากต้องการดูขั้นตอนการลงทะเบียน ร้านค้าสามารถดาวน์โหลดคู่มือการลงทะเบียนร้านค้า LINE Pay ได้ที่หน้าเว็บ (Location: https://pay.line.me/developers/documentation/download/tech?locale=th_TH – คู่มือการลงทะเบียนร้านค้า LINE Pay)
ขั้นตอนการเชื่อมต่อ
- การลงทะเบียน White list ใน Payment Server ของร้านค้า a. LINE Pay จำกัดการเข้าถึงเซิร์ฟเวอร์ ด้วย channel ID ที่ออกให้เฉพาะสำหรับแต่ละร้านค้า โดยการลงทะเบียน IP ใน Payment Server ของร้านค้า b. การลงทะเบียน IP สามารถทำได้ที่นี่ - "ล็อกอินเข้าสู่ Merchant Center (http://pay.line.me) - การจัดการการเชื่อมต่อระบบชำระเงิน - IP สำหรับจัดการ Payment Server"
- การยืนยัน Channel ID และ Channel Secret a. นี่เป็นข้อมูลสำคัญสำหรับการเชื่อมต่อ API และสามารถดูได้ที่นี่ - "ล็อกอินเข้าสู่ Merchant Center (http://pay.line.me) - การจัดการการเชื่อมต่อระบบชำระเงิน - จัดการ Link Key". b. ข้อมูลนี้จะไม่ถูกแสดงในที่ต่างๆ เนื่องจากเป็นข้อมูลเฉพาะสำหรับแต่ละร้านค้า
- การตรวจสอบสกุลเงินที่ใช้ได้ สำหรับการเชื่อมต่อการชำระเงิน a. ร้านค้า LINE Pay สามารถใช้ได้เพียงสกุลเงินเดียวเท่านั้นสำหรับการเชื่อมต่อ API และสกุลเงินที่ใช้ได้เป็นตามด้านล่างนี้ สามารถดูได้ที่นี่ - "ล็อกอินเข้าสู่ Merchant Center (http://pay.line.me) - จัดการข้อมูลทั่วไป - ข้อมูลร้านค้า"
- JPY
- USD
- THB
- TWD
ขั้นตอนการเชื่อมต่อ
Payment Sequence diagram
อธิบายเกี่ยวกับขั้นตอนวิธีการชำระเงิน
เป้าหมายของ API
- Payment API (sequence diagram - #4)
ภาพประกอบ 2 Payment Sequence diagram
คำอธิบายเกี่ยวกับ Payment Sequence
- ผู้ใช้บริการ LINE Pay แสดง MyCode (Barcode/QR Code) ต่ออุปกรณ์ของร้านค้า
- อุปกรณ์ของร้านค้าอ่าน MyCode (Barcode/QR Code)
- อุปกรณ์ของร้านค้าร้องขอการชำระเงินการ Payment Server ของร้านค้า
- Payment Server ของร้านค้า เรียก Payment API
- ตรวจสอบข้อมูลการตอบสนองของ API และยืนยันว่าการชำระเงินนั้นสมบูรณ์หรือไม่
- Payment Server ของร้านค้า ตอบสนองผลการชำระเงินไปยังอุปกรณ์ของร้านค้า
- เซิร์ฟเวอร์ของ LINE Pay แจ้งผลการชำระเงิน (สำเร็จ / ล้มเหลว) ไปยังผู้ใช้บริการ LINE Pay ผ่านทางข้อความ Push หรือ LINE Pay Official Account Message
After Payment Sequence
API หลังจากขั้นตอนการสร้างการชำระเงิน จะสามารถประมวลผลได้ โดยการเรียก API อีกครั้ง
เป้าหมายของ API
- VOID
- REFUND
- CAPTURE
- Authorization / Payment Details
API Specifications (Payment)
บทนี้อธิบายเกี่ยวกับ API ที่ใช้จากการอ่าน "oneTimeKey" ("MyCode" ในเมนูหลักของ LINE Pay) ซึ่งเกิดจากผู้ใช้บริการ LINE Pay เพื่อชำระเงินให้สมบูรณ์
- Payment
- Payment Status Check
Payment
API นี้เพื่อใช้ในการชำระเงิน โดยการอ่าน MyCode ที่ได้รับจาก LINE Pay App บนอุปกรณ์ของร้านค้า
Specification
ตาราง 1 Payment API Endpoint
Item|Description
รายการ|รายละเอียด
Endpoint URL|Sandbox: https://sandbox-api-pay.line.me/v2/payments/oneTimeKeys/pay
Product: https://api-pay.line.me/v2/payments/oneTimeKeys/pay
Method|POST
Request Header|Required
- Content-Type: application/json; charset=UTF-8
- X-LINE-ChannelId: {ข้อมูลการเชื่อมต่อ - channelId}
- X-LINE-ChannelSecret: {ข้อมูลการเชื่อมต่อ - channelSecretKey}
ตั้งค่าว่ามันจำเป็นหรือไม่ในข้อมูลการตั้งค่าร้านค้า
- X-LINE-MerchantDeviceType : device type
- X-LINE-MerchantDeviceProfileId : device’s serial no
Timeout|Read: 20 วินาที
ตาราง 2 Payment API Request Body
Name | Type | Mandatory | description |
---|---|---|---|
productName | string(4000) | Y | product name |
amount | number(38) | Y | amount to payment |
currency | string(3) | Y | currency to payment |
orderId | string(100) | Y | OrderId given by merchant device. (unique on merchant-side) |
oneTimeKey | string(12) | Y | Result of scanning and reading QR/Bar code information given by LINE Pay App. oneTimeKey มีอายุการใช้งานคือ 5 นาที ดังนั้นมันจะใช้ได้ 5 นาทีนับจากเวลาที่ผู้ใช้บริการ LINE Pay ยืนยัน QR/Bar Code หลังจากเข้าถึงหน้าจอ MyCode |
capture | boolean | N | Whether to capture or not. A boolean value (true or false) default is true. true(default): payment authorization and capture are handled at once false: payment is completed only after it is authorized then separately capture by calling "Capture API" |
ตาราง 3 Payment API Response Body
Name | Type | Mandatory | description |
---|---|---|---|
returnCode | string(4) | Y | Result code generated by LINE Pay. - 0000 : การขอ API สำเร็จ - รหัสการตอบสนองอื่น สามารถพบได้ที่ "ภาคผนวก - รหัสการตอบสนอง โดย API" ในเอกสารนี้ |
returnMessage | string(100) | Y | Result messages or reason for failure |
info.transactionId | number(19) | Y | LINE Pay's transaction id |
info.orderId | string(100) | Y | OrderId given by merchant device. (unique on merchant-side) |
info.transactionDate | string(20) | Y | Transaction Date(ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' * reference : https://en.wikipedia.org/wiki/ISO_8601 |
info.payInfo[].method | string(20) | Y | Payment method used - CREDIT_CARD - BALANCE - DISCOUNT |
info.payInfo[].amount | number(38) | Y | payment amount |
info.balance | number(38) | N | remained balance after payment. |
info.authorizationExpireDate | string(20) | N | Authorization Expire Date(ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' when the payment status is "AUTHORIZATION"(capture=false). * reference : https://en.wikipedia.org/wiki/ISO_8601 |
Request
POST https://sandbox-api-pay.line.me/v2/payments/oneTimeKeys/pay HTTP/1.1
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {channel id}
X-LINE-ChannelSecret: {channel secret}
X-LINE-MerchantDeviceType: POS
X-LINE-MerchantDeviceProfileId: DUMMY
{
"productName": "test product",
"amount": 100,
"currency": "THB",
"orderId": "merchant_test_order_1",
"oneTimeKey": "123456789012"
}
Response Body - การชำระเงินสมบูรณ์
{
"returnCode": "0000",
"returnMessage": "success",
"info": {
"transactionId": "2016010112345678910",
"orderId": "test_order_#1",
"transactionDate": "2016-01-01T01:01:00Z",
"payInfo": [{
"method": "BALANCE",
"amount": 10
}, {
"method": "DISCOUNT",
"amount": 5
}],
"balance": 9900
}
}
Payment Status Check
โปรดใน API นี้ในการตรวจสอบสถาณะการชำระเงิน ในกรณีที่รายการนั้นๆ ไม่ได้ รับ response เนื้องจาก time out
- สถานะจะต้องมีการตรวจสอบ โดยการเรียกมันในช่วงเวลาปกติ และแนะนำให้ทำในช่วง 3-5 วินาที
- ระยะเวลาในการชำระเงินสูงสุดคือ 20 นาที และจะถูกคำนวณจากเวลาในการตอบสนองของ Payment API ดังนั้นร้านค้าควรจะตรวจสอบสถานะการชำระเงินที่สูงสุด 20 นาที ในกรณีที่เกิน 20 นาที รายการชำระเงินนั้นจะไม่สมบูรณ์ เนื่องจากเกินระยะเวลา
Specification
ตาราง 4 Payment Status Check API Endpoint
รายการ | รายละเอียด |
---|---|
Endpoint URL | Sandbox : https://sandbox-api-pay.line.me/v2/payments/orders/{orderId}/check Product : https://api-pay.line.me/v2/payments/orders/{orderId}/check |
Method | GET |
Request Header | Required - Content-Type: application/json; charset=UTF-8 - X-LINE-ChannelId: {ข้อมูลการเชื่อมต่อ - channelId} - X-LINE-ChannelSecret: {ข้อมูลการเชื่อมต่อ - channelSecretKey} ตั้งค่าว่ามันจำเป็นหรือไม่ในข้อมูลการตั้งค่าร้านค้า - X-LINE-MerchantDeviceType : device type - X-LINE-MerchantDeviceProfileId : device’s serial no |
Timeout | Read : 20 วินาที |
ตาราง 5 Payment Status Check API URI Parameters
Name | Type | Mandatory | description |
---|---|---|---|
orderId | string(100) | Y | - Order ID ถูกส่งเมื่อร้านค้าขอเพื่อการชำระเงิน - Order ID จะถูกส่งให้หลังจากเข้ารหัสพารามิเตอร์ที่มีอยู่ใน URI * reference : https://en.wikipedia.org/wiki/Percent-encoding |
ตาราง 6 Payment Status Check API Response Body
Name | Type | Mandatory | description |
---|---|---|---|
returnCode | string(4) | Y | result code - 0000 : API การขอ API สำเร็จ - รหัสการตอบสนองอื่น สามารถพบได้ที่ "ภาคผนวก - รหัสการตอบสนอง โดย API" ในเอกสารนี้ |
returnMessage | string(100) | Y | result messages |
info.status | string(20) | Y | payment status - COMPLETE : payment completed. - terminated status - FAIL : payment failed. - terminated status * reference : ในกรณีที่ “COMPLETE” หรือ “FAIL” จะมีข้อมูลการตอบสนองเพิ่มเติม |
case "info.status" : "COMPLETE" | |||
info.orderId | string(100) | Y | OrderId given by merchant device. (unique on merchant-side) |
info.transactionDate | string(20) | Y | Transaction Date(ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' * reference : https://en.wikipedia.org/wiki/ISO_8601 |
info.payInfo[].method | string(20) | Y | Payment method used - CREDIT_CARD - BALANCE - DISCOUNT |
info.payInfo[].amount | number(38) | Y | payment amount |
info.balance | number(38) | N | remained balance after payment. |
info.authorizationExpireDate | string(20) | N | Authorization Expire Date(ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' when the payment status is "AUTHORIZATION"(capture=false). * reference : https://en.wikipedia.org/wiki/ISO_8601 |
case "info.status" : "FAIL" | |||
info.failReturnCode | string(4) | Y | Fail result code - รหัสการตอบสนอง กรุณาดูได้ที่ "ภาคผนวก - รหัสการตอบสนอง โดย API" ในเอกสารนี้ - รหัสการตอบสนองจะเหมือนกันกับรหัสการตอบสนองของ Payment API |
info.failReturnMessage | string(100) | Y | Fail result messages |
Request
- ถ้า “orderId” คือ “test_order_#1”,
GET https://sandbox-api-pay.line.me/v2/payments/orders/test_order_%231/check HTTP/1.1
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {channel id}
X-LINE-ChannelSecret: {channel secret}
X-LINE-MerchantDeviceType: POS
X-LINE-MerchantDeviceProfileId: DUMMY
Response Body - ในกรณีที่ Status คือ “COMPLETE”
{
"returnCode": "0000",
"returnMessage": "success",
"info": {
"status": "COMPLETE",
"transactionId": "2016010112345678910",
"orderId": "test_order_#1",
"transactionDate": "2016-01-01T01:01:00Z",
"payInfo": [{
"method": "BALANCE",
"amount": 10
}, {
"method": "DISCOUNT",
"amount": 5
}],
"balance": 9900
}
}
Response Body - ในกรณีที่ Status คือ “FAIL”
{
"returnCode": "0000",
"returnMessage": "success",
"info": {
"status": "FAIL",
"failReturnCode": "1142",
"failReturnMessage" : "Insufficient balance remains."
}
}
API Specifications (After Payment)
บทนี้อธิบายเกี่ยวกับ API เพื่อคืนเงินสำหรับยอดที่ชำระเข้ามา หรือเพื่อค้นหาประวัติการชำระเงิน ซึ่งขึ้นอยู่กับสถานะคำสั่งซื้อของร้านค้านั้น หลังจากการชำระเงินเสร็จสิ้น
- Void
- Capture
- Refund
- Authorization Details
- Payment Details
Void
API นี้เพื่อใช้ยกเลิกการขออนุมัติวงเงิน
Specification
ตาราง 7 Void API Endpoint
รายการ | รายละเอียด |
---|---|
Endpoint URL | Sandbox : https://sandbox-api-pay.line.me/v2/payments/orders/{orderId}/void Product : https://api-pay.line.me/v2/payments/orders/{orderId}/void |
Method | POST |
Request Header | Required - Content-Type: application/json; charset=UTF-8 - X-LINE-ChannelId: {ข้อมูลการเชื่อมต่อ - channelId} - X-LINE-ChannelSecret: {ข้อมูลการเชื่อมต่อ - channelSecretKey} ตั้งค่าว่ามันจำเป็นหรือไม่ในข้อมูลการตั้งค่าร้านค้า - X-LINE-MerchantDeviceType : device type - X-LINE-MerchantDeviceProfileId : device’s serial no |
Timeout | Read : 20 วินาที |
ตาราง 8 Void API URI Parameters
Name | Type | Mandatory | description |
---|---|---|---|
orderId | string(100) | Y | - Order ID ถูกส่งเมื่อร้านค้าขอเพื่อการชำระเงิน - Order ID จะถูกส่งให้หลังจากเข้ารหัสพารามิเตอร์ที่มีอยู่ใน URI * reference : https://en.wikipedia.org/wiki/Percent-encoding |
ตาราง 9 Void API Response Body
Name | Type | Mandatory | description |
---|---|---|---|
returnCode | string(4) | Y | Result code generated by LINE Pay - 0000 : การขอ API สำเร็จ - รหัสการตอบสนองอื่น สามารถพบได้ที่ "ภาคผนวก - รหัสการตอบสนอง โดย API" ในเอกสารนี้ |
returnMessage | string(100) | Y | Result messages or reason for failure |
Request
- ถ้า “orderId” คือ “test_order_#1”,
POST https://sandbox-api-pay.line.me/v2/payments/orders/test_order_%231/void HTTP/1.1
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {channel id}
X-LINE-ChannelSecret: {channel secret}
X-LINE-MerchantDeviceType: POS
X-LINE-MerchantDeviceProfileId: DUMMY
Response - ความสมบูรณ์ของการชำระเงิน
{
"returnCode": "0000",
"returnMessage": "success"
}
Capture
API นี้เพื่อใช้จัดเก็บเงินสำหรับรายการที่ขออนุมัติวงเงินแล้ว
Specification
ตาราง 10 Capture API Endpoint
รายการ | รายละเอียด |
---|---|
Endpoint URL | Sandbox : https://sandbox-api-pay.line.me/v2/payments/orders/{orderId}/capture Product : https://api-pay.line.me/v2/payments/orders/{orderId}/capture |
Method | POST |
Request Header | Required - Content-Type: application/json; charset=UTF-8 - X-LINE-ChannelId: {ข้อมูลการเชื่อมต่อ - channelId} - X-LINE-ChannelSecret: {ข้อมูลการเชื่อมต่อ - channelSecretKey} ตั้งค่าว่ามันจำเป็นหรือไม่ในข้อมูลการตั้งค่าร้านค้า - X-LINE-MerchantDeviceType : device type - X-LINE-MerchantDeviceProfileId : device’s serial no |
Timeout | Read : 20 วินาที |
ตาราง 11 Capture API URI Parameters
Name | Type | Mandatory | description |
---|---|---|---|
orderId | string(100) | Y | - Order ID ถูกส่งเมื่อร้านค้าขอเพื่อการชำระเงิน - Order ID จะถูกส่งให้หลังจากเข้ารหัสพารามิเตอร์ที่มีอยู่ใน URI * reference : https://en.wikipedia.org/wiki/Percent-encoding |
ตาราง 12 Capture API Request Body
Name | Type | Mandatory | description |
---|---|---|---|
amount | number(38) | Y | amount to capture |
currency | string(3) | Y | currency to capture |
ตาราง 13 Capture API Response Body
Name | Type | Mandatory | description |
---|---|---|---|
returnCode | string(4) | Y | Result code generated by LINE Pay - 0000 : การขอ API สำเร็จ - รหัสการตอบสนองอื่น สามารถพบได้ที่ "ภาคผนวก - รหัสการตอบสนอง โดย API" ในเอกสารนี้ |
returnMessage | string(100) | Y | Result messages or reason for failure |
info.transactionId | number(19) | Y | LINE Pay's transaction id |
info.orderId | string(100) | Y | OrderId given by merchant device. (unique on merchant-side) |
info.payInfo[].method | string(20) | Y | Payment method used - CREDIT_CARD - BALANCE - DISCOUNT |
info.payInfo[].amount | number(38) | Y | payment amount |
Request
- ถ้า “orderId” คือ “test_order_#1”,
POST https://sandbox-api-pay.line.me/v2/payments/orders/test_order_%231/capture HTTP/1.1
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {channel id}
X-LINE-ChannelSecret: {channel secret}
X-LINE-MerchantDeviceType: POS
X-LINE-MerchantDeviceProfileId: DUMMY
{
"amount": "100"
"currency": "THB
}
Response
{
"returnCode": "0000",
"returnMessage": "success",
"info": {
"transactionId": "2016010112345678910",
"orderId": "test_order_#1",
"transactionDate": "2016-01-01T01:01:00Z",
"payInfo": [{
"method": "BALANCE",
"amount": 95
}, {
"method": "DISCOUNT",
"amount": 5
}],
"balance": 9900
}
}
Refund
API นี้เพื่อใช้สำหรับการคืนเงิน หลังจากการชำระเงินสมบูรณ์ (ข้อมูลการจัดเก็บเงิน).
Specification
ตาราง 14 Refund API Endpoint
Item | Description |
---|---|
Endpoint URL | Sandbox : https://sandbox-api-pay.line.me/v2/payments/orders/{orderId}/refund Product : https://api-pay.line.me/v2/payments/orders/{orderId}/refund |
Method | POST |
Request Header | Required - Content-Type: application/json; charset=UTF-8 - X-LINE-ChannelId: {ข้อมูลการเชื่อมต่อ - channelId} - X-LINE-ChannelSecret: {ข้อมูลการเชื่อมต่อ - channelSecretKey} ตั้งค่าว่ามันจำเป็นหรือไม่ในข้อมูลการตั้งค่าร้านค้า - X-LINE-MerchantDeviceType : device type - X-LINE-MerchantDeviceProfileId : device’s serial no |
Timeout | Read : 20 วินาที |
ตาราง 15 Refund API URI Parameters
Name | Type | Mandatory | description |
---|---|---|---|
orderId | string(100) | Y | - Order ID ถูกส่งเมื่อร้านค้าขอเพื่อการชำระเงิน - Order ID จะถูกส่งให้หลังจากเข้ารหัสพารามิเตอร์ที่มีอยู่ใน URI * reference : https://en.wikipedia.org/wiki/Percent-encoding |
ตาราง 16 Refund API Request Body
Name | Type | Mandatory | description |
---|---|---|---|
refundAmount | number(38) | N | amount to refund. - Full refund if this parameter is not passed |
ตาราง 17 Refund API Response Body
Name | Type | Mandatory | description |
---|---|---|---|
returnCode | string(4) | Y | Result code generated by LINE Pay - 0000 : การขอ API สำเร็จ - รหัสการตอบสนองอื่น สามารถพบได้ที่ "ภาคผนวก - รหัสการตอบสนอง โดย API" ในเอกสารนี้ |
returnMessage | string(100) | Y | Result messages or reason for failure |
info.refundTransactionId | number(19) | Y | LINE Pay's refund transaction id |
info.refundTransactionDate | string(20) | Y | Refunded Transaction Date(ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' * reference : https://en.wikipedia.org/wiki/ISO_8601 |
Request
- ถ้า “orderId” คือ “test_order_#1”,
POST https://sandbox-api-pay.line.me/v2/payments/orders/test_order_%231/refund HTTP/1.1
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {channel id}
X-LINE-ChannelSecret: {channel secret}
X-LINE-MerchantDeviceType: POS
X-LINE-MerchantDeviceProfileId: DUMMY
{
"refundAmount": "100"
}
Response
{
"returnCode": "0000",
"returnMessage": "success",
"info": {
"refundTransactionId": "2016010112345678910",
"refundTransactionDate": "2016-01-01T01:01:00Z"
}
}
Authorization Details
API นี้เพื่อใช้ในการค้นหารายละเอียดการขออนุมัติวงเงิน ข้อมูลที่ได้รับอนุญาต หรือถูกยกเลิก (Void or Expire) เท่านั้นที่จะสามารถค้นหาได้ และข้อมูลหลังจากการจัดเก็บเงินจะสามารถค้นหาได้จาก Payment Details API
Specification
ตาราง 18 Authorization Details API Endpoint
รายการ | รายละเอียด |
---|---|
Endpoint URL | Sandbox : https://sandbox-api-pay.line.me/v2/payments/authrozations Product : https://api-pay.line.me/v2/payments/authorizations |
Method | GET |
Request Header | Required - Content-Type: application/json; charset=UTF-8 - X-LINE-ChannelId: {ข้อมูลการเชื่อมต่อ - channelId} - X-LINE-ChannelSecret: {ข้อมูลการเชื่อมต่อ - channelSecretKey} ตั้งค่าว่ามันจำเป็นหรือไม่ในข้อมูลการตั้งค่าร้านค้า - X-LINE-MerchantDeviceType : device type - X-LINE-MerchantDeviceProfileId : device’s serial no |
Timeout | Read : 20 วินาที |
ตาราง 19 Authorization Details API Query Parameters
Name | Type | Mandatory | description |
---|---|---|---|
orderId | string(100) | N | Order ID ถูกส่ง เมื่อร้านค้าขอเพื่อการชำระเงิน |
transactionId | number(19) | N | LINE Pay’s transaction id |
ตาราง 20 Authorization Details API Response Body
Name | Type | Mandatory | description |
---|---|---|---|
returnCode | string(4) | Y | Result code generated by LINE Pay - 0000 : การขอ API สำเร็จ - รหัสการตอบสนองอื่น สามารถพบได้ที่ "ภาคผนวก - รหัสการตอบสนอง โดย API" ในเอกสารนี้ |
returnMessage | string(100) | Y | Result messages or reason for failure |
info.transactionId | number(19) | Y | LINE Pay's transaction id |
info.orderId | string(100) | Y | OrderId given by merchant device. (unique on merchant-side) |
info.transactionDate | string(20) | Y | Transaction Date(ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' * reference : https://en.wikipedia.org/wiki/ISO_8601 |
info.transactionType | String(20) | Y | Transaction Type - PAYMENT : payment - PAYMENT_REFUND : refund - PARTIAL_REFUND : partial refund |
info.payInfo[].method | string(20) | Y | Payment method used - CREDIT_CARD - BALANCE - DISCOUNT |
info.payInfo[].amount | number(38) | Y | Payment amount |
info.currency | string(3) | Y | Payment currency * reference : https://en.wikipedia.org/wiki/ISO_4217 |
info.productName | string( | Y | Product name |
info.payStatus | string(30) | Y | Payment status - AUTHORIZATION : การขออนุมัติจองวงเงิน - VOIDED_AUTHORIZATION : การขออนุมัติจองวงเงินถูกยกเลิก (สถานะสมบูรณ์ โดยการเรียก “void api”) - EXPIRED_AUTHORIZATION : การขออนุมัติจองวงเงินหมดอายุ (สถานะที่อนุญาตช่วงเวลาในการขออนุมัติจองวงเงินสำหรับร้านค้าหมดอายุ) |
info.authorizationExpireDate | string(20) | N | Authorization Expire Date(ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' * reference : https://en.wikipedia.org/wiki/ISO_8601 |
Request
GET https://sandbox-api-pay.line.me/v2/payments/authorizations?orderId=20160408003 HTTP/1.1
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {channel id}
X-LINE-ChannelSecret: {channel secret}
X-LINE-MerchantDeviceType: POS
X-LINE-MerchantDeviceProfileId: DUMMY
Response
{
"returnCode": "0000",
"returnMessage": "success",
"info": [
{
"transactionId": 2016049910005498410,
"transactionDate": "2016-04-08T07:02:38Z",
"transactionType": "PAYMENT",
"productName": "test product",
"currency": "THB",
"authorizationExpireDate": "2016-04-13T07:02:38Z",
"payInfo": [
{
"method": "BALANCE",
"amount": 100
}
],
"orderId": "20160408003",
"payStatus": "VOIDED_AUTHORIZATION"
}
]
}
Payment Details
API นี้เพื่อใช้ในการค้นหาข้อมูลรายการหลังจากทำการจัดเก็บเงิน
Specification
ตาราง 21 Payment Details API Endpoint
รายการ | รายละเอียด |
---|---|
Endpoint URL | Sandbox : https://sandbox-api-pay.line.me/v2/payments Product : https://api-pay.line.me/v2/payments |
Method | GET |
Request Header | Required - Content-Type: application/json; charset=UTF-8 - X-LINE-ChannelId: {ข้อมูลการเชื่อมต่อ - channelId} - X-LINE-ChannelSecret: {ข้อมูลการเชื่อมต่อ - channelSecretKey} ตั้งค่าว่ามันจำเป็นหรือไม่ในข้อมูลการตั้งค่าร้านค้า - X-LINE-MerchantDeviceType : device type - X-LINE-MerchantDeviceProfileId : device’s serial no |
Timeout | Read : 20 วินาที |
ตาราง 22 Payment Details API Query Parameters
Name | Type | Mandatory | description |
---|---|---|---|
orderId | string(100) | N | Order ID ถูกส่ง เมื่อร้านค้าขอเพื่อการชำระเงิน |
transactionId | number(19) | N | LINE Pay’s transaction id |
ตาราง 23 Payment Details API Response Body
Name | Type | Mandatory | description |
---|---|---|---|
returnCode | string(4) | Y | Result code generated by LINE Pay - 0000 : การขอ API สำเร็จ - รหัสการตอบสนองอื่น สามารถพบได้ที่ "ภาคผนวก - รหัสการตอบสนอง โดย API" ในเอกสารนี้ |
returnMessage | string(100) | Y | Result messages or reason for failure |
info.transactionId | number(19) | Y | LINE Pay's transaction id |
info.orderId | string(100) | Y | OrderId given by merchant device. - unique on merchant-side |
info.transactionDate | string(20) | Y | Transaction Date(ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' * reference : https://en.wikipedia.org/wiki/ISO_8601 |
info.transactionType | String(20) | Y | Transaction Type - PAYMENT : payment - PAYMENT_REFUND : refund - PARTIAL_REFUND : partial refund |
info.payInfo[].method | string(20) | Y | Payment method used - CREDIT_CARD - BALANCE - DISCOUNT |
info.payInfo[].amount | number(38) | Y | Payment amount |
info.currency | string(3) | Y | Payment currency * reference : https://en.wikipedia.org/wiki/ISO_4217 |
info.productName | string(4000) | Y | Product name |
Retrieving original transactions & When there is a refund | |||
info.refundList[].refundTransactionId | number(19) | Y | Refunded transaction id |
info.refundList[].transactionType | string(20) | Y | Transaction type - PAYMENT_REFUND : refund - PARTIAL_REFUND : partial refund |
info.refundList[].refundAmount | number(38) | Y | Refund amount |
info.refundList[].refundTransactionDate | String(20) | Y | Refunded transaction date (ISO8601 UTC). - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z' * reference : https://en.wikipedia.org/wiki/ISO_8601 |
When retrieving a refund | |||
info.originalTransactionId | number(19) | Y | Original payment transaction number |
Request
GET https://sandbox-api-pay.line.me/v2/payments/?orderId=20160408001 HTTP/1.1
Host: sandbox-api-pay.line.me
Content-Type: application/json
X-LINE-ChannelId: {channel id}
X-LINE-ChannelSecret: {channel secret}
X-LINE-MerchantDeviceType: POS
X-LINE-MerchantDeviceProfileId: DUMMY
Response
{
"returnCode": "0000",
"returnMessage": "success",
"info": [
{
"transactionId": 2016049910005496810,
"transactionDate": "2016-04-08T06:31:19Z",
"transactionType": "PAYMENT",
"productName": "test product",
"currency": "THB",
"payInfo": [
{
"method": "BALANCE",
"amount": 100
}
],
"refundList": [
{
"refundTransactionId": 2016049910005497012,
"transactionType": "PARTIAL_REFUND",
"refundAmount": -1,
"refundTransactionDate": "2016-04-08T06:33:17Z"
}
],
"orderId": "20160408001"
}
]
}
ภาคผนวก
รหัสการตอบสนอง
ส่วนนี้จะนิยามเกี่ยวกับรหัสแสดงข้อผิดพลาดที่เกิดขึ้นบน LINE Pay โดย returnMessage สำหรับรหัสแสดงข้อผิดพลาดจะแสดงเป็นภาษาอังกฤษ ถ้าไม่มีข้อความ เครื่องหมายขีด (-) จะแสดงขึ้น
ตาราง 24 LINE Pay รหัสการตอบสนอง
รหัส(returnCode) | รายละเอียด (300byte) |
---|---|
0000 | สำเร็จ |
1101 | ผู้ใช้งานที่ซื้อแล้วอยู่ในสถานะที่ไม่สามารถทำธุรกรรมได้ |
1102 | ผู้ใช้งานที่ซื้อแล้วอยู่ในสถานะที่ไม่สามารถทำธุรกรรมได้ |
1104 | ไม่มีข้อมูลร้านค้าดังกล่าวอยู่ |
1105 | ร้านค้านี้ไม่สามารถใช้ LINE Pay |
1106 | ข้อมูลเฮดเดอร์พบข้อผิดพลาด |
1110 | ไม่มีข้อมูลบัตรเครดิต |
1124 | จำนวนเงินไม่ถูกต้อง |
1133 | oneTimeKey ไม่ถูกต้อง |
1141 | สถานะบัญชีไม่ถูกต้อง |
1142 | เงินในบัญชีไม่เพียงพอ |
1145 | รายการชำระเงินอยู่ระหว่างประมวลผล |
1150 | ไม่พบรายการดังกล่าว |
1152 | รายการดังกล่าวได้ถูกชำระก่อนหน้าแล้ว |
1153 | ยอดเงินที่เรียกชำระต่างจากยอดเงินจริง |
1155 | ไอดีธุรกรรมที่ไม่สามารถชำระเงินคืนได้ |
1159 | การร้องขอรายละเอียดการชำระเงินถูกระงับ |
1163 | ระยะเวลาการทำรายการคืนเงินเกินกำหนด |
1164 | เกินยอดจำกัดของการคืนเงิน |
1165 | ธุรกรรมนี้ได้รับการคืนเงินแล้ว |
1169 | ความผิดพลาดของข้อมูลในการยืนยันการชำระเงิน |
1170 | ยอดเงินคงเหลือในบัญชีมีการเปลี่ยนแปลง |
1172 | orderId ซ้ำกับในระบบ |
1177 | เกินจำนวนธุรกรรมสูงสุด (100) ที่อนุญาตให้ดึงข้อมูล |
1178 | ไม่รองรับสกุลเงินดังกล่าว |
1179 | ไม่สามารถประมวลผลสถานะรายการได้ |
1183 | จำนวนเงินชำระต้องมากกว่า 0 |
1184 | ยอดเงินที่ชำระมากกว่ายอดเงินที่เรียกเก็บ |
1198 | มีการเรียก API ซ้ำซ้อน |
1199 | ข้อมูลภายในผิดพลาด |
1280 | มีการผิดพลาดบางส่วน ในขณะที่ชำระด้วยบัตรเครดิต |
1281 | มีการผิดพลาดบางส่วน ในขณะที่ชำระด้วยบัตรเครดิต |
1282 | ข้อผิดพลาดการอนุมัติบัตรเครดิต |
1283 | การชำระเงินถูกปฏิเสธเนื่องจากสงสัยว่ามีการโกง |
1284 | การชำระเงินด้วยบัตรเครดิตไม่สามารถใช้ได้ชั่วคราว |
1285 | ไม่มีข้อมูลบัตรเครดิต |
1286 | ข้อมูลการชำระเงินด้วยบัตรเครดิตไม่ถูกต้อง |
1287 | ผ่านวันที่ครบกำหนดอายุการใช้งานของบัตรเครดิตไปแล้ว |
1288 | บัตรเครดิตมีเงินไม่เพียงพอ |
1289 | เกินวงเงินสูงสุดของบัตรเครดิต |
1290 | เกินยอดเงินที่สามารถชำระได้ในหนึ่งครั้ง |
1291 | บัตรนี้ได้รับการรายงานว่าเป็นบัตรที่ถูกขโมย |
1292 | บัตรนี้ถูกระงับ |
1293 | หมายเลขยืนยันเจ้าของบัตร (CVN) ไม่ถูกต้อง |
1294 | บัตรนี้ติดบัญชีดำ |
1295 | หมายเลขบัตรเครดิตไม่ถูกต้อง |
1296 | จำนวนเงินไม่ถูกต้อง |
1298 | การชำระเงินด้วยบัตรเครดิตถูกปฏิเสธ |
1900 | ข้อผิดพลาดชั่วคราว, ลองอีกครั้ง |
1901 | ข้อผิดพลาดชั่วคราว, ลองอีกครั้ง |
1902 | ข้อผิดพลาดชั่วคราว, ลองอีกครั้ง |
1903 | ข้อผิดพลาดชั่วคราว, ลองอีกครั้ง |
1999 | ข้อมูลไม่ตรงกับการจองชำรำเงิน (เมื่อทำการจองการชำระเงินอีกครั้ง) |
2101 | พารามิเตอร์ไม่ถูกต้อง |
2102 | ข้อมูลรูปแบบ JSON ไม่ถูกต้อง |
2103 | การจองชำระเงินไม่ถูกต้อง, กรุณาตรวจสอบข้อมูลที่ตอบกลับ |
2104 | การจองชำระเงินไม่ถูกต้อง, กรุณาตรวจสอบข้อมูลที่ตอบกลับ |
9000 | ข้อมูลผิดพลาดภายใน |
รหัสการตอบสนอง โดย API
ตาราง 25 รหัสการตอบสนอง โดย API
Error Code | Payment | Payment status check | Capture | Void | Refund | Authorization Details | Payment Details |
---|---|---|---|---|---|---|---|
1101 | v | v | v | ||||
1102 | v | v | v | ||||
1104 | v | v | v | v | v | v | v |
1105 | v | v | v | v | v | v | v |
1106 | v | v | v | v | v | v | v |
1110 | v | ||||||
1124 | v | v | |||||
1133 | v | ||||||
1141 | v | ||||||
1142 | v | ||||||
1145 | v | ||||||
1150 | v | v | v | v | v | v | |
1152 | v | ||||||
1153 | v | ||||||
1154 | |||||||
1155 | v | v | v | ||||
1159 | v | ||||||
1163 | v | ||||||
1164 | v | ||||||
1165 | v | ||||||
1170 | v | v | v | ||||
1172 | v | v | |||||
1177 | v | v | |||||
1178 | v | ||||||
1179 | v | v | v | ||||
1183 | v | v | |||||
1184 | v | v | |||||
1194 | v | ||||||
1198 | v | v | v | v | |||
1199 | v | v | v | v | |||
1900 | v | v | v | ||||
1901 | v | ||||||
1902 | v | ||||||
1903 | v | ||||||
1999 | v | v | v | ||||
2101 | v | v | v | v | v | v | v |
2102 | v | v | v | v | v | v | v |
2103 | v | v | v | v | v | v | v |
2104 | v | v | v | v | v | v | v |
9000 | v | v | v | v | v | v | v |