ใหม่ PayNext Extra Installment App Redirection
หัวข้อทั้งหมดในหน้านี้
PayNext Extra Installment App Redirection
รับชำระเงินแบบผ่อนชำระจากผู้ใช้ TrueMoney Wallet ผ่านเว็บไซต์หรือแอปพลิเคชันของคุณ ด้วยวิธีการชำระเงิน PayNext Extra Installment
📋 ภาพรวม
| คุณสมบัติ | รายละเอียด |
|---|---|
| วิธีการชำระเงิน | PayNext Extra Installment App Redirection |
| ประเภท source | installment_paynext_extra_jumpapp |
| รูปแบบการชำระเงิน | app_redirect |
| ประเทศที่รองรับ | ไทย |
| สกุลเงิน | THB |
| จำนวนเงินขั้นต่ำ | ไม่มีขั้นต่ำ |
| จำนวนเงินสูงสุด | ฿5,000.00 (500000) |
| API version ขั้นต่ำ | 2017-11-02 |
✅ วิธีเปิดใช้งาน PayNext Extra Installment
หากต้องการเปิดใช้งาน PayNext Extra Installment App Redirection สำหรับบัญชีของคุณ ให้ส่งอีเมลขอใช้งานไปที่ support@omise.co คุณจะต้องอ่านและยอมรับข้อกำหนดและเงื่อนไขที่อัปเดตก่อนที่วิธีการชำระเงินนี้จะถูกเปิดใช้งาน
🔄 ขั้นตอนการชำระเงิน
PayNext Extra Installment ใช้รูปแบบ app_redirect หลังจากที่ลูกค้ายืนยันวิธีการชำระเงินแล้ว ลูกค้าจะถูกเปลี่ยนเส้นทางจากเว็บไซต์หรือแอปของคุณไปยังแอป TrueMoney Wallet หรือหน้าชำระเงินที่ปลอดภัยของ TrueMoney เพื่ออนุมัติและยืนยันการชำระเงิน
สำคัญ: มีช่วงเวลาหมดอายุสองช่วงที่ต้องคำนึงถึง: - หมดอายุของ source: หากลูกค้าไม่ดำเนินการในแอป TrueMoney ภายใน 3 นาที หลังจากสร้าง source, source จะหมดอายุและสถานะ charge จะเปลี่ยนเป็น
expired- หมดอายุของ charge: หาก charge ไม่ถูกดำเนินการให้เสร็จสิ้นภายใน 7 วัน หลังจากสร้าง (ดูexpires_atใน charge response) charge จะหมดอายุโดยอัตโนมัติทั้งสองช่วงเวลานี้เป็นอิสระจากกัน ควรสร้าง logic การลองใหม่ให้รองรับทั้งสองกรณี: สร้าง source และ charge ใหม่สำหรับ timeout 3 นาที และถือว่าเป็นคำสั่งที่ถูกยกเลิกสำหรับการหมดอายุ 7 วัน
📱 ขั้นตอนการชำระเงินบนมือถือ

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

- ลูกค้าเลือก PayNext Extra Installment เป็นวิธีการชำระเงินบนเว็บไซต์ของผู้ค้า
- คิวอาร์โค้ดถูกสร้างและแสดงบนเว็บไซต์ของผู้ค้า
- ลูกค้าเปิดแอป TrueMoney Wallet บนอุปกรณ์มือถือ
- ลูกค้าไปที่ฟังก์ชันสแกนในแอปและสแกนคิวอาร์โค้ดที่แสดงบนเบราว์เซอร์
- ลูกค้าเลือกระยะเวลาผ่อนชำระและอัตราดอกเบี้ยที่ต้องการ
- รายละเอียดการชำระเงินแสดงขึ้นเพื่อตรวจสอบ
- ลูกค้ายืนยันการชำระเงินบนหน้ายืนยัน
- หน้าจอแสดงผลการชำระเงินสำเร็จ
⚙️ การติดตั้ง
หากต้องการรับชำระเงินด้วย PayNext Extra Installment ให้ดำเนินการตามขั้นตอนดังนี้:
- สร้าง source — สร้าง payment source ใหม่ โดยกำหนด
type: installment_paynext_extra_jumpappผ่าน Omise.js หรือ mobile SDK (iOS / Android) - สร้าง charge — สร้าง charge ใหม่โดยใช้ source identifier ที่ได้รับจากขั้นตอนที่ 1
- ตรวจสอบ charge — หลังจากได้รับ webhook event
charge.completeให้ดึงข้อมูล charge เพื่อยืนยันสถานะ (ไม่บังคับแต่แนะนำ)
ใช้ public key ในการสร้าง source (ฝั่งไคลเอนต์ ในเบราว์เซอร์หรืออุปกรณ์มือถือของลูกค้า) ใช้ secret key ในการสร้าง charge (ฝั่งเซิร์ฟเวอร์)
หากต้องการสร้าง source และ charge บนเซิร์ฟเวอร์ทั้งคู่ สามารถรวมทั้งสองขั้นตอนเป็นคำขอ API เดียวโดยใช้ secret key ของคุณ
ขั้นตอนที่ 1 — สร้าง source
เมื่อลูกค้ายืนยันว่าต้องการชำระเงินด้วย PayNext Extra Installment ให้สร้าง source ใหม่พร้อม parameter ดังต่อไปนี้
| Parameter | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
amount |
integer | ใช่ | จำนวนเงินในหน่วยย่อย สูงสุด 500000 (฿5,000.00) ไม่มีขั้นต่ำ ดูวงเงิน |
currency |
string | ใช่ | ต้องเป็น THB |
type |
string | ใช่ | ต้องเป็น installment_paynext_extra_jumpapp |
promotion_code |
string | ไม่ | รหัสส่งเสริมการขายที่ออกโดย TrueMoney |
ตัวอย่างต่อไปนี้แสดงการสร้าง PayNext Extra Installment source สำหรับ ฿500.00 (50000) แทนที่ omise_public_key / $OMISE_PUBLIC_KEY ด้วย public key สำหรับทดสอบที่พบในแดชบอร์ดของคุณ
ใน Omise.js,
typeจะถูกส่งเป็น argument แรกของcreateSource
Omise.js
Omise.setPublicKey(omise_public_key);
Omise.createSource('installment_paynext_extra_jumpapp', {
"amount": 50000,
"currency": "THB"
}, function(statusCode, response) {
console.log(response);
});
cURL
curl https://api.omise.co/sources \
-u $OMISE_PUBLIC_KEY: \
-d "amount=50000" \
-d "currency=THB" \
-d "type=installment_paynext_extra_jumpapp"
ตัวอย่าง response
{
"object": "source",
"id": "src_test_601oytj0iy7dtjgnme4",
"livemode": false,
"location": "/sources/src_test_601oytj0iy7dtjgnme4",
"amount": 50000,
"currency": "THB",
"flow": "app_redirect",
"type": "installment_paynext_extra_jumpapp",
"charge_status": "unknown",
"created_at": "2024-06-11T01:54:41Z",
"barcode": null,
"bank": null,
"email": null,
"installment_term": null,
"ip": "35.198.236.178",
"absorption_type": null,
"name": null,
"mobile_number": null,
"phone_number": null,
"platform_type": null,
"scannable_code": null,
"billing": null,
"shipping": null,
"items": [],
"references": null,
"provider_references": null,
"store_id": null,
"store_name": null,
"terminal_id": null,
"zero_interest_installments": null,
"receipt_amount": null,
"discounts": [],
"promotion_code": null
}
ฟิลด์ id (ขึ้นต้นด้วย src_) คือ source identifier ที่ใช้ในขั้นตอนถัดไป
ฟิลด์ response ที่สำคัญ
| ฟิลด์ | คำอธิบาย |
|---|---|
installment_term |
null เมื่อสร้าง source ลูกค้าจะเลือกระยะเวลาผ่อนชำระภายในแอป TrueMoney Wallet ในขั้นตอนการอนุมัติ ไม่ควรคาดหวังหรือตรวจสอบค่านี้ในขั้นตอนนี้ |
absorption_type |
ควบคุมว่าผู้ค้าหรือลูกค้าเป็นผู้รับภาระดอกเบี้ยการผ่อนชำระ null หมายความว่าใช้ค่าเริ่มต้นที่กำหนดในบัญชีของคุณ ติดต่อ support@omise.co หากต้องการเปลี่ยนแปลง |
charge_status |
แสดงสถานะของ charge ที่เชื่อมโยงกับ source นี้ unknown เมื่อสร้าง source; เปลี่ยนเป็น pending เมื่อสร้าง charge แล้ว |
ขั้นตอนที่ 2 — สร้าง charge
สร้าง charge โดยใช้ source identifier จากขั้นตอนที่ 1
| Parameter | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
amount |
integer | ใช่ | ต้องตรงกับ amount ของ source |
currency |
string | ใช่ | ต้องตรงกับ currency ของ source |
source |
string | ใช่ | id ของ source ที่ได้รับจากขั้นตอนที่ 1 |
return_uri |
string | ใช่ | URL บนเว็บไซต์ของคุณที่ลูกค้าจะถูกเปลี่ยนเส้นทางไปหลังจากอนุมัติการชำระเงินเสร็จสิ้น |
แทนที่ $OMISE_SECRET_KEY ด้วย secret key สำหรับทดสอบจากแดชบอร์ดของคุณ และแทนที่ $SOURCE_ID ด้วย id ของ source
cURL
curl https://api.omise.co/charges \
-u $OMISE_SECRET_KEY: \
-d "amount=50000" \
-d "currency=THB" \
-d "return_uri=http://example.com/orders/345678/complete" \
-d "source=$SOURCE_ID"
ตัวอย่าง response
{
"object": "charge",
"id": "chrg_test_601oytlxd07w48h4paq",
"location": "/charges/chrg_test_601oytlxd07w48h4paq",
"amount": 50000,
"currency": "THB",
"funding_currency": "THB",
"funding_amount": 50000,
"net": 48047,
"fee": 1825,
"fee_vat": 128,
"interest": 0,
"interest_vat": 0,
"refunded_amount": 0,
"transaction_fees": {
"fee_flat": "0.0",
"fee_rate": "3.65",
"vat_rate": "7.0"
},
"status": "pending",
"authorize_uri": "https://pay.omise.co/payments/pay2_test_601oytlz0xfm33yubdb/authorize",
"return_uri": "http://example.com/orders/345678/complete",
"source": {
"object": "source",
"id": "src_test_601oyt8hdkdx8qoy4n9",
"livemode": false,
"amount": 50000,
"currency": "THB",
"flow": "app_redirect",
"type": "installment_paynext_extra_jumpapp",
"charge_status": "pending",
"provider_references": {
"reference_number_1": "4Nv0Qf0VJZ89KueL",
"reference_number_2": null
}
},
"authorized": false,
"capturable": false,
"capture": true,
"paid": false,
"expired": false,
"reversed": false,
"reversible": false,
"refundable": false,
"partially_refundable": false,
"disputable": false,
"voided": false,
"can_perform_void": false,
"livemode": false,
"created_at": "2024-06-11T01:54:41Z",
"paid_at": null,
"expires_at": "2024-06-18T01:54:41Z"
}
ฟิลด์ response ที่สำคัญ
| ฟิลด์ | คำอธิบาย |
|---|---|
authorize_uri |
เปลี่ยนเส้นทางลูกค้าไปยัง URL นี้เพื่อเริ่มขั้นตอนการอนุมัติใน TrueMoney Wallet บนมือถือจะเปิดแอปโดยตรง บนเดสก์ท็อปจะแสดงคิวอาร์โค้ด |
expires_at |
วันและเวลาที่ charge จะหมดอายุโดยอัตโนมัติหากยังไม่ดำเนินการ สำหรับ PayNext Extra Installment คือ 7 วัน หลังจากสร้าง |
source.provider_references.reference_number_1 |
หมายเลขอ้างอิงธุรกรรมที่ออกโดย TrueMoney ซึ่งจะปรากฏเมื่อสร้าง charge แล้ว ควรเก็บค่านี้ไว้เนื่องจากจำเป็นต้องใช้เมื่อแจ้งปัญหาหรือกระทบยอดกับ TrueMoney ส่วน reference_number_2 ไม่ได้ใช้สำหรับวิธีการชำระเงินนี้และจะเป็น null เสมอ |
net |
จำนวนเงินที่จะโอนเข้าบัญชีของคุณหลังหักค่าธรรมเนียมและภาษีมูลค่าเพิ่มแล้ว |
การสร้าง source และ charge ในคำขอเดียว
หากต้องการสร้าง source และ charge บนเซิร์ฟเวอร์ทั้งคู่ สามารถรวมเป็นคำขอ API เดียวโดยใช้ secret key ของคุณ
curl https://api.omise.co/charges \
-u $OMISE_SECRET_KEY: \
-d "amount=50000" \
-d "currency=THB" \
-d "return_uri=http://example.com/orders/345678/complete" \
-d "source[type]=installment_paynext_extra_jumpapp"
ขั้นตอนที่ 3 — ดำเนินการ charge ให้เสร็จสิ้น
charge จะถูกสร้างโดยมีสถานะ status เป็น pending ส่วนต่อไปนี้อธิบายวิธีอนุมัติ charge รับ webhook event และยืนยันสถานะสุดท้าย
ลำดับขั้นตอนการชำระเงิน
การอนุมัติ charge
เปลี่ยนเส้นทางลูกค้าไปยัง URL ในฟิลด์ authorize_uri ของ charge response เพื่อให้ลูกค้าอนุมัติการชำระเงินใน TrueMoney Wallet
หลังจากอนุมัติเสร็จสิ้น ลูกค้าจะถูกเปลี่ยนเส้นทางไปยัง return_uri ที่คุณกำหนดไว้
การทดสอบ: ในโหมดทดสอบ ให้เข้าถึง
authorize_uriผ่านเบราว์เซอร์เพื่อจำลองขั้นตอนการอนุมัติ คุณจะเห็นปุ่มให้กำหนดสถานะ charge เป็น สำเร็จ หรือ ล้มเหลว ด้วยตนเอง ใช้วิธีนี้เพื่อตรวจสอบ webhook handler และ logic ของreturn_uriก่อนนำขึ้น production โปรดทราบว่า timeout 3 นาทีของ source ยังคงมีผลในโหมดทดสอบ ดังนั้นควรดำเนินการนี้ทันทีหลังสร้าง charge
การรับ webhook เมื่อ charge เสร็จสิ้น
ตั้งค่า endpoint บนเซิร์ฟเวอร์ของคุณเพื่อรับ webhook events และลงทะเบียน endpoint นั้นในแดชบอร์ด Omise Omise จะส่ง event charge.complete เมื่อ charge ถึงสถานะสุดท้าย
การตรวจสอบสถานะ charge
หลังจากได้รับ webhook charge.complete ให้ดึงข้อมูล charge โดยใช้ id และยืนยันว่า status ใน charge ที่ดึงมาตรงกับ status ใน webhook event
| สถานะ | ความหมาย |
|---|---|
successful |
ได้รับการชำระเงินแล้ว |
failed |
การชำระเงินล้มเหลว ตรวจสอบ failure_code และ failure_message เพื่อดูรายละเอียด |
expired |
ลูกค้าไม่ได้ดำเนินการอนุมัติภายในเวลาที่กำหนด |
รหัสความล้มเหลวที่เป็นไปได้
| รหัสความล้มเหลว | คำอธิบาย |
|---|---|
failed_processing |
ความล้มเหลวในการประมวลผลการชำระเงินทั่วไป |
↩️ การยกเลิกและการคืนเงิน
- การยกเลิก (Void): charge ของ PayNext Extra Installment สามารถยกเลิกได้เฉพาะในวันเดียวกับที่อนุมัติธุรกรรมเท่านั้น
- การคืนเงิน (Refund): สามารถคืนเงินได้ภายใน 30 วัน หลังจากการชำระเงินสำเร็จ
ดูคำแนะนำการคืนเงินได้ที่เอกสาร Refunds API
📊 วงเงิน
| จำนวนเงิน (หน่วยย่อย) | จำนวนเงิน (บาท) | |
|---|---|---|
| ขั้นต่ำ | ไม่มี | ไม่มีขั้นต่ำ |
| สูงสุด | 500000 |
฿5,000.00 |
🔧 การแก้ไขปัญหา
สถานะ charge เป็น expired
มีสาเหตุสองประการ:
- timeout 3 นาทีของ source: ลูกค้าไม่ได้ดำเนินการอนุมัติใน TrueMoney Wallet ภายใน 3 นาทีหลังสร้าง source ให้สร้าง source และ charge ใหม่ แล้วเปลี่ยนเส้นทางลูกค้าอีกครั้ง
- timeout 7 วันของ charge: charge ไม่ถูกดำเนินการให้เสร็จสิ้นภายใน 7 วันหลังสร้าง (ดู
expires_atใน charge response) โดยทั่วไปหมายความว่าเป็นคำสั่งที่ถูกยกเลิก ไม่จำเป็นต้องลองใหม่เว้นแต่ลูกค้าจะกลับมา
สถานะ charge เป็น failed พร้อม failure_code: failed_processing
เกิดความล้มเหลวในการประมวลผลทั่วไปจากฝั่ง TrueMoney ให้แจ้งลูกค้าลองชำระเงินใหม่อีกครั้ง หากปัญหายังคงอยู่ ติดต่อ support@omise.co
ลูกค้าถูกเปลี่ยนเส้นทางไปยัง return_uri แต่ charge ยังคงเป็น pending
อย่าพึ่งพาเฉพาะการเปลี่ยนเส้นทาง return_uri ในการตรวจสอบสถานะ charge เสมอรอ webhook event charge.complete และตรวจสอบสถานะ charge โดยดึงข้อมูลจาก API
คิวอาร์โค้ดไม่แสดงบนเดสก์ท็อป
คิวอาร์โค้ดจะแสดงบนหน้าที่ authorize_uri ตรวจสอบให้แน่ใจว่าลูกค้าถูกเปลี่ยนเส้นทางไปยัง authorize_uri ทันทีหลังสร้าง charge หากการเปลี่ยนเส้นทางล่าช้าหรือถูกบล็อก คิวอาร์โค้ดจะไม่แสดง
จำนวนเงินถูกปฏิเสธพร้อม validation error
ตรวจสอบว่าจำนวนเงินไม่เกินสูงสุด 500000 (฿5,000.00) ไม่มีขั้นต่ำ นอกจากนี้ตรวจสอบว่าค่า amount และ currency ในคำขอ charge ตรงกับค่าใน source
ฟิลด์ promotion_code ไม่มีผล
รหัสส่งเสริมการขายออกโดย TrueMoney และต้องมีผลบังคับใช้อยู่ในขณะสร้าง source ติดต่อ TrueMoney โดยตรงเพื่อตรวจสอบว่ารหัสมีผลและสามารถใช้กับธุรกรรมของคุณได้
❓ คำถามที่พบบ่อย
PayNext Extra Installment รองรับประเทศและสกุลเงินใดบ้าง? PayNext Extra Installment รองรับเฉพาะประเทศไทยและประมวลผลการชำระเงินในสกุลเงินบาทไทย (THB) เท่านั้น
ลูกค้าต้องมีบัญชี TrueMoney Wallet หรือไม่? ใช่ ลูกค้าต้องมีบัญชี TrueMoney Wallet ที่ใช้งานอยู่เพื่ออนุมัติการชำระเงิน ไม่ว่าจะเป็นบนมือถือหรือเดสก์ท็อป (ผ่านการสแกนคิวอาร์โค้ด)
จะเกิดอะไรขึ้นหากลูกค้าปิดแอปก่อนยืนยัน?
หากลูกค้าไม่ดำเนินการอนุมัติภายใน 3 นาที source จะหมดอายุและสถานะ charge จะเปลี่ยนเป็น expired คุณจะต้องสร้าง source และ charge ใหม่
สามารถใช้วิธีการชำระเงินนี้โดยไม่ใช้ Omise.js ได้หรือไม่? ได้ หากการสร้าง source และ charge เกิดขึ้นบนเซิร์ฟเวอร์ทั้งคู่ สามารถใช้วิธีการสร้างในคำขอเดียวด้วย secret key ได้ — ไม่จำเป็นต้องใช้ client-side SDK ดูการสร้าง source และ charge ในคำขอเดียว
สามารถเสนอการผ่อนชำระแบบไม่มีดอกเบี้ยได้หรือไม่?
ฟิลด์ zero_interest_installments ปรากฏในออบเจ็กต์ source และ charge แต่จะมีค่าเป็น null หรือ false สำหรับ PayNext Extra Installment อัตราดอกเบี้ยกำหนดโดย TrueMoney และแสดงให้ลูกค้าเห็นในขั้นตอนการอนุมัติ
สามารถคืนเงิน PayNext Extra Installment charge ได้หรือไม่? ได้ สามารถคืนเงินได้ภายใน 30 วันหลังการชำระเงินสำเร็จ การยกเลิก (void) ทำได้เฉพาะในวันเดียวกับที่ทำธุรกรรม ดูเอกสาร Refunds API
จะทดสอบการเชื่อมต่อนี้ได้อย่างไร?
ใช้ public key และ secret key สำหรับทดสอบจากแดชบอร์ด Omise หลังสร้าง charge ให้เข้าถึง authorize_uri ในเบราว์เซอร์เพื่อจำลองการชำระเงินสำเร็จหรือล้มเหลว
จะหา API key ได้ที่ไหน? ดูที่วิธีเข้าถึง Omise API keys
🔑 API keys
สำหรับข้อมูลเกี่ยวกับวิธีรับ public key และ secret key ดูที่วิธีเข้าถึง Omise API keys