ข้ามไปยังเนื้อหาหลัก

ปลั๊กอิน PrestaShop

ยอมรับการชำระเงินบน PrestaShop store ของคุณด้วย Omise รองรับวิธีการชำระเงินหลักทั้งหมดพร้อมการติดตั้งที่ง่ายจาก PrestaShop marketplace

ภาพรวม

  • รองรับ PrestaShop 1.7.x
  • การติดตั้ง Marketplace หรือด้วยตนเอง
  • วิธีการชำระเงิน Omise ทั้งหมด
  • รองรับสกุลเงินหลายชนิด
  • การคืนเงินอัตโนมัติ
  • เหมาะสำหรับมือถือ

การติดตั้ง

จาก PrestaShop Marketplace

  1. เข้าสู่ระบบแอดมิน PrestaShop
  2. นำทางไปที่ โมดูลตัวจัดการโมดูล

การนำทาง PrestaShop admin ไปยังโมดูล

  1. ค้นหา "Omise"

ผลการค้นหาแสดง Omise

  1. คลิก ติดตั้ง
  2. คลิก กำหนดค่า

ปุ่มการกำหนดค่าสำหรับโมดูล Omise

การติดตั้งด้วยตนเอง

# ดาวน์โหลดจาก GitHub
wget https://github.com/omise/omise-prestashop/releases/latest/download/omise.zip

# อัปโหลดผ่านแอดมิน PrestaShop
โมดูล → ตัวจัดการโมดูล → อัปโหลดโมดูล → เลือก omise.zip
  1. นำทางไปที่ โมดูลโมดูล และบริการ

การนำทางไป�ยังโมดูลและบริการ

  1. คลิก อัปโหลดโมดูล ปุ่ม

ตำแหน่งปุ่มอัปโหลดโมดูล

  1. เลือกไฟล์ ZIP ที่ดาวน์โหลดแล้ว

กล่องโต้ตอบการเลือกไฟล์สำหรับการอัปโหลด

การกำหนดค่า

การตั้งค่าคีย์ API

การกำหนดค่าโมดูล:
- สภาพแวดล้อม: Sandbox (ทดสอบ) / Production (ใช้งาน)
- Public Key: pkey_test_xxxxx
- Secret Key: skey_test_xxxxx

หน้าการกำหนดค่าโมดูล

เปิดใช้งานวิธีการชำระเงิน

บัตรเครดิต:

✓ เปิดใช้งานการชำระเงินด้วยบัตร
✓ 3D Secure: เปิดใช้งาน
✓ บันทึกบัตร: ไม่บังคับ

วิธีการอื่น:

✓ บริการธนาคารออนไลน์
✓ TrueMoney Wallet
✓ Rabbit LINE Pay
✓ ShopeePay
✓ การชำระเงินแบบผ่อนชำระ (ขั้นต่ำ: 3,000 บาท)

การกำหนดค่า Webhook

Webhook URL:
https://yourstore.com/module/omise/webhook

กำหนดค่าใน Omise Dashboard:
การตั้งค่า → Webhooks → เพิ่ม webhook URL

การทดสอบ

บัตรทดสอบ:
บัตร: 4242 4242 4242 4242
วันหมดอายุ: 12/28
CVV: 123

ขั้นตอนการทดสอบ:
1. เพิ่มผลิตภัณฑ์ลงในตะกร้า
2. ดำเนินการชำระเงิน
3. เลือกการชำระเงิน Omise
4. ทำการชำระเงินทดสอบให้สมบูรณ์
5. ตรวจสอบสถานะคำสั่งซื้อ

จัดการคำสั่งซื้อ

ดูรายละเอียดการชำระเงิน:

  • คำสั่งซื้อ → เลือกคำสั่งซื้อ → แท็บการชำระเงิน
  • รหัส Omise charge ที่แสดง
  • รายละเอียดธุรกรรมที่มองเห็นได้

ประมวลผลการคืนเงิน:

  1. เปิดคำสั่งซื้อ
  2. คลิก "คืนเงินบางส่วน" หรือ "คืนเงินมาตรฐาน"
  3. ป้อนจำนวนเงิน
  4. เลือก "คืนเงินผ่าน Omise"
  5. ยืนยันการคืนเงิน

การกำหนดค่าขั้นสูง

การตั้งค่าแบบหลายสาขา

หากคุณเรียกใช้ร้านค้า PrestaShop หลายแห่ง:

  1. เปิดใช้งานโหมดแบบหลายสาขา

    พารามิเตอร์ขั้นสูง → Multistore → เปิดใช้งาน Multistore
  2. กำหนดค่าต่อสาขา

    - เลือกสาขาจากเมนูแบบเลื่อนลงด้านบน
    - กำหนดค่าคีย์ API ต่อสาขา
    - เปิดใช้งานวิธีการชำระเงินต่างกันต่อภูมิภาค
  3. การกำหนดค่าที่แชร์

    - ใช้ webhook URL เดียวกันสำหรับร้านค้าทั้งหมด
    - ตัวจัดการ webhook จะกำหนดเส้นทางไปยังร้านค้าที่ถูกต้องโดยอัตโนมัติ

การกำหนดค่า Webhook (รายละเอียด)

ขั้นตอนที่ 1: รับ Webhook URL ของคุณ

รูปแบบ webhook URL ของคุณ:
https://yourstore.com/module/omise/webhook

สำหรับแบบหลายสาขา:
https://yourstore.com/en/module/omise/webhook (ร้านค้าภาษาอังกฤษ)
https://yourstore.com/th/module/omise/webhook (ร้านค้าไทย)

ขั้นตอนที่ 2: กำหนดค่าใน Omise Dashboard

1. เข้าสู่ระบบ dashboard.omise.co
2. นำทางไปที่ การตั้งค่า → Webhooks
3. คลิก "เพิ่มจุดสิ้นสุด Webhook"
4. ป้อน webhook URL
5. เลือกเหตุการณ์:
✓ charge.complete
✓ charge.update
✓ refund.create
✓ transfer.update
6. บันทึกจุดสิ้นสุด

ขั้นตอนที่ 3: ตรวจสอบ Webhook

1. ทำการชำระเงินทดสอบใน PrestaShop
2. ตรวจสอบ Omise Dashboard → Webhooks → Deliveries
3. ตรวจสอบสถานะเป็น "200 OK"
4. หากล้มเหลวให้ตรวจสอบบันทึกข้อผิดพลาด PrestaShop

การกำหนดค่าวิธีการชำระเงิน

การตั้งค่าบัตรเครดิต

การกำหนดค่าโมดูล → บัตรเครดิต:

✓ เปิดใช้งานการชำระเงินด้วยบัตรเครดิต: ใช่
✓ 3D Secure: เปิดใช้งาน (แนะนำ)
✓ จับภาพอัตโนมัติ: ใช่ (ชำระเงินทันที)
✓ บันทึกบัตร: ใช่ (สำหรับลูกค้าที่กลับมา)
✓ แบรนด์บัตรที่ยอมรับ:
- Visa
- Mastercard
- JCB
- American Express

การตั้งค่าการชำระเงินแบบผ่อนชำระ

การกำหนดค่าโมดูล → การชำระเงินแบบผ่อนชำระ:

✓ เปิดใช้งานการชำระเงินแบบผ่อนชำระ: ใช่
✓ จำนวนเงินขั้นต่ำ: 3,000 บาท
✓ ระยะเวลาที่มี:
- 3 เดือน
- 4 เดือน
- 6 เดือน
- 10 เดือน
✓ แสดงในหน้าผลิตภัณฑ์: ใช่
✓ แสดงจำนวนเงินชำระรายเดือน: ใช่

การตั้งค่าผู้ถือกระเป๋าเงินดิจิทัล

การกำหนดค่าโมดูล → ผู้ถือกระเป๋าเงินดิจิทัล:

✓ TrueMoney Wallet: ใช่
✓ Rabbit LINE Pay: ใช่
✓ ShopeePay: ใช่
✓ Touch 'n Go (มาเลเซีย): ใช่
✓ GrabPay: ใช่

การปรับแต่ง

การแสดงวิธีการชำระเงิน

กำหนดค่าลำดับการแสดง:

โมดูล → ตัวจัดการโมดูล → Omise → กำหนดค่า

ลำดับการจัดเรียงวิธีการชำระเงิน:
1. บัตรเครดิต (ตำแหน่ง: 1)
2. TrueMoney Wallet (ตำแหน่ง: 2)
3. การโอนธนาคาร (ตำแหน่ง: 3)
4. การชำระเงินแบบผ่อนชำระ (ตำแหน่ง: 4)

ปรับแต่งชื่อวิธีการชำระเงิน:

// แทนที่ในไฟล์การแปลของธีม
// themes/yourtheme/modules/omise/translations/en.php

<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{omise}prestashop>omise_credit_card'] = 'Pay with Credit Card';
$_MODULE['<{omise}prestashop>omise_truemoney'] = 'Pay with TrueMoney Wallet';
$_MODULE['<{omise}prestashop>omise_installment'] = 'Pay in Installments';

ไอคอนการชำระเงินแบบกำหนดเอง

อัปโหลดไอคอนแบบกำหนดเอง:
1. ไปที่: modules/omise/views/img/
2. แทนที่ไฟล์ไอคอน:
- visa.png
- mastercard.png
- jcb.png
- truemoney.png
3. ขนาดแนะนำ: 60x40px (รูปแบบ PNG)
4. ลบแคชหลังการอัปโหลด

สไตลิ่ง CSS แบบกำหนดเอง

/* themes/yourtheme/assets/css/custom.css */

/* ตัวเลือกการชำระเงินแบบกำหนดเอง */
.omise-payment-option {
border: 2px solid #FF5722;
border-radius: 8px;
padding: 15px;
margin: 10px 0;
transition: all 0.3s;
}

.omise-payment-option:hover {
border-color: #E64A19;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* ไอคอนวิธีการชำระเงิน */
.omise-payment-icons {
display: flex;
gap: 10px;
margin-top: 10px;
}

.omise-payment-icons img {
height: 30px;
width: auto;
}

/* แบบฟอร์มบัตรเครดิต */
.omise-card-form {
background: #f5f5f5;
padding: 20px;
border-radius: 6px;
margin-top: 15px;
}

.omise-card-form input {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
margin-bottom: 10px;
}

/* เครื่องคำนวณการชำระเงินแบบผ่อนชำระ */
.omise-installment-info {
background: #E3F2FD;
padding: 15px;
border-radius: 6px;
margin-top: 10px;
}

.omise-installment-amount {
font-size: 18px;
font-weight: bold;
color: #1976D2;
}

ฟิลด์แบบกำหนดเอง

เพิ่มข้อมูลแบบกำหนดเองเพื่อเรียกใช้ PrestaShop hooks:

// modules/omise/override/controllers/front/payment.php

public function postProcess()
{
$cart = $this->context->cart;
$customer = new Customer($cart->id_customer);

// เพิ่มข้อมูลเมตา
$metadata = array(
'store_name' => Configuration::get('PS_SHOP_NAME'),
'customer_id' => $customer->id,
'customer_email' => $customer->email,
'cart_id' => $cart->id,
'language' => $this->context->language->iso_code,
'currency' => $this->context->currency->iso_code
);

// ข้อมูลเมตาจะรวมอยู่ในค่าใช้งาน
$charge = $this->createCharge($token, $amount, $metadata);
}

การเพิ่มประสิทธิภาพการทำงาน

เปิดใช้งาน OpCache

// การกำหนดค่า php.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

CDN สำหรับไอคอนการชำระเงิน

// modules/omise/omise.php
public function getIconsPath()
{
// ใช้ CDN เพื่อการโหลดที่เร็วขึ้น
return 'https://cdn.omise.co/assets/payment-methods/';
}

การทำดัชนีฐานข้อมูล

-- เพิ่มดัชนีสำหรับการค้นหาคำสั่งซื้อที่เร็วขึ้น
ALTER TABLE `PREFIX_omise_charge`
ADD INDEX `idx_charge_id` (`charge_id`),
ADD INDEX `idx_order_id` (`order_id`),
ADD INDEX `idx_created_at` (`created_at`);

การแก้ไขปัญหา

โมดูลไม่ปรากฏ

ปัญหา: โมดูล Omise ไม่มองเห็นในตัวจัดการโมดูล

วิธีแก้ไข:

# 1. ตรวจสอบสิทธิ์ไฟล์
chmod 755 modules/omise
chmod 644 modules/omise/*.php

# 2. ลบแคช
rm -rf var/cache/*

# 3. สร้างรายการโมดูลใหม่
php bin/console prestashop:module:reset omise

# 4. ยกเลิกการติดตั้งใหม่หากจำเป็น
php bin/console prestashop:module:uninstall omise
php bin/console prestashop:module:install omise

# 5. ตรวจสอบบันทึกข้อผิดพลาด
tail -f var/logs/$(date +%Y%m%d)_*.log

การชำระเงินล้มเหลว

ปัญหา: การชำระเงินไม่เสร็จสมบูรณ์

ขั้นตอนการวินิจฉัย:

  1. ตรวจสอบคีย์ API
// ทดสอบการเชื่อมต่อ
curl https://api.omise.co/account \
-u skey_test_YOUR_KEY:

// ควรส่งกลับรายละเอียดบัญชี
  1. ตรวจสอบการตั้งค่าสภาพแวดล้อม
การกำหนดค่าโมดูล:
- สภาพแวดล้อม: ควรตรงกับคีย์ API ของคุณ
- Sandbox = pkey_test_* / skey_test_*
- Production = pkey_live_* / skey_live_*
  1. ตรวจสอบสถานะวิธีการชำระเงิน
แดชบอร์ด → การตั้งค่า → วิธีการชำระเงิน
- ตรวจสอบวิธีการชำระเงินเปิดใช้งาน
- ตรวจสอบหากมีข้อ จำกัด เขต/สกุลเงิน
  1. ตรวจสอบบันทึก
# บันทึกข้อผิดพลาด PrestaShop
tail -f var/logs/$(date +%Y%m%d)_*.log | grep omise

# บันทึกข้อผิดพลาด PHP
tail -f /var/log/php_errors.log

# บันทึกข้อผิดพลาด Apache/Nginx
tail -f /var/log/apache2/error.log # หรือ
tail -f /var/log/nginx/error.log

ปัญหา Webhook

ปัญหา: ไม่ได้รับ Webhooks

วิธีแก้ไข:

  1. ตรวจสอบ Webhook URL ที่สามารถเข้าถึงได้
# ทดสอบจุดสิ้นสุด webhook
curl -X POST https://yourstore.com/module/omise/webhook \
-H "Content-Type: application/json" \
-d '{"test": true}'

# ควรส่งกลับ 200 OK
  1. ตรวจสอบกฎไฟร์วอลล์/WAF
- เพิ่มไอพี webhook Omise ในรายการที่อนุญาต
- ปิดใช้งานการจำกัดอัตราสำหรับ /module/omise/webhook
- อนุญาตคำขอ POST ไปยัง webhook URL
  1. ตรวจสอบใบรับรอง SSL
# ตรวจสอบการกำหนดค่า SSL
openssl s_client -connect yourstore.com:443

# ตรวจสอบใบรับรองถูกต้อง (ไม่ได้ลงนาม)
  1. ตรวจสอบบันทึก Webhook
Omise Dashboard → Webhooks → Deliveries
- ตรวจสอบสถานะการจัดส่ง
- ดูคำขอ/ตอบสนอง
- ตรวจสอบข้อผิดพลาด 4xx/5xx

ความล้มเหลวในการตรวจสอบสิทธิ์ 3D Secure

ปัญหา: หน้าการตรวจสอบสิทธิ์ 3DS ไม่ปรากฏหรือล้มเหลว

วิธีแก้ไข:

  1. ตรวจสอบ return_uri
// ต้องเป็น URL HTTPS ที่สามารถเข้าถึงได้สาธารณะ
$return_uri = 'https://yourstore.com/module/omise/return';
  1. ตรวจสอบคอนโซลเบราว์เซอร์
F12 → แท็บคอนโซล
- มองหาข้อผิดพลาด JavaScript
- ตรวจสอบการละเมิด CSP
- ตรวจสอบการโหลด iframe
  1. ทดสอบในโหมดไม่ระบุตัวตน
- ปิดใช้งานส่วนขยายเบราว์เซอร์
- ลบคุกกี้/แคช
- ทดสอบกับเบราว์เซอร์อื่น

การคืนเงินไม่ประมวลผล

ปัญหา: การคืนเงินที่เริ่มต้นใน PrestaShop ไม่สะท้อนใน Omise

วิธีแก้ไข:

  1. ตรวจสอบการสนับสนุนการคืนเงิน
ตรวจสอบการสนับสนุนการคืนเงินวิธีการชำระเงิน:
- บัตรเครดิต: ใช่
- TrueMoney: ใช่ (เต็มทั้งหมดเท่านั้นภายในวันที่ 30 วัน)
- การธนาคารมือถือ: ไม่
- PromptPay: ไม่
  1. ตรวจสอบสิทธิ์ API การคืนเงิน
# ทดสอบการเข้าถึง API การคืนเงิน
curl https://api.omise.co/charges/chrg_test_123/refunds \
-u skey_test_YOUR_KEY: \
-d "amount=10000"
  1. ตรวจสอบบันทึกการคืนเงิน
// ตรวจสอบการประมวลผลการคืนเงิน
var/logs/omise_refund_*.log

ปัญหาการแปลงสกุลเงิน

ปัญหา: จำนวนเงินหรือ mismatch สกุลเงินที่ไม่ถูกต้อง

วิธีแก้ไข:

// ตรวจสอบการกำหนดค่าสกุลเงิน
การกำหนดค่า → สกุลเงิน → เปิดใช้งาน/ปิดใช้งานสกุลเงิน

// ตรวจสอบการสนับสนุนสกุลเงิน Omise
สนับสนุน: บาท, ดอลลาร์สหรัฐ, ยูโร, ปอนด์, ซิงการ์ ดอลลาร์, เยน, ringgit มาเลเซีย

// ตรวจสอบว่าสกุลเงินตะกร้าตรงกับสกุลเงินการชำระเงิน
$cart_currency = new Currency($this->context->cart->id_currency);
$charge_currency = strtolower($cart_currency->iso_code);

สถานะคำสั่งซื้อไม่อัปเดต

ปัญหา: คำสั่งซื้อติดอยู่ใน "ชำระเงินที่รอดำเนินการ" หลังจากการชำระเงินสำเร็จ

วิธีแก้ไข:

  1. ตรวจสอบ Webhook ใช้งานได้
# ตรวจสอบการจัดส่ง webhook ล่าสุด
แดชบอร์ด → Webhooks → Deliveries (24 ชั่วโมงที่ผ่านมา)
  1. อัปเดตคำสั่งซื้อด้วยตนเอง
-- ค้นหาคำสั่งซื้อตามรหัสตะกร้า
SELECT * FROM PREFIX_orders WHERE id_cart = CART_ID;

-- อัปเดตสถานะคำสั่งซื้อ
UPDATE PREFIX_orders
SET current_state = PAID_STATUS_ID
WHERE id_order = ORDER_ID;
  1. ตรวจสอบการแมปสถานะคำสั่งซื้อ
// modules/omise/config/statuses.php
return array(
'successful' => _PS_OS_PAYMENT,
'pending' => _PS_OS_PREPARATION,
'failed' => _PS_OS_ERROR
);

คำถามที่พบบ่อย

คำถาม: เวอร์ชัน PrestaShop ใดบ้างที่สนับสนุน คำตอบ: PrestaShop 1.7.x สนับสนุนเต็มที่ สำหรับ 1.6.x ให้ใช้เวอร์ชันดั้งเดิม

คำถาม: ฉันสามารถใช้สกุลเงินหลายชนิดได้หรือไม่ คำตอบ: ใช่กำหนดค่าสกุลเงินในการตั้งค่า PrestaShop Omise รองรับ บาท, ดอลลาร์สหรัฐ, ยูโร, ปอนด์, ซิงการ์ ดอลลาร์, เยน

คำถาม: การคืนเงินอัตโนมัติหรือไม่ คำตอบ: ใช่การคืนเงินที่ประมวลผลผ่านแอดมิน PrestaShop จะถูกส่งไปยัง Omise โดยอัตโนมัติ

คำถาม: ลูกค้าสามารถบันทึกบัตรได้หรือไม่ คำตอบ: ใช่เปิดใช้งานบัตรที่บันทึกไว้ในการกำหนดค่าโมดูลสำหรับลูกค้าที่กลับมา

คำถาม: ใช้ได้กับ PrestaShop Cloud หรือไม่ คำตอบ: ใช่โมดูลใช้ได้กับโฮสติ้ง PrestaShop Cloud

คำถาม: ฉันจะอัปเดตโมดูลได้อย่างไร คำตอบ: ดาวน์โหลดเวอร์ชันล่าสุดและ re-upload หรืออัปเดตผ่านตัวจัดการโมดูลหากมี

ขั้นตอนถัดไป

ทรัพยากร


ต้องการความช่วยเหลือ? ติดต่อ support@omise.co