Skip to content

Domain, hosting, code and data — in your name, in writing

jagaweb.

E-Dagang Shopify

Memperbaiki Masalah Webhook FPX Terputus, Callback Timeout, dan Status Tidak Sepadan di Shopify Malaysia

Bacaan 6 minitOleh Pasukan Teknikal JagaWeb

Panduan penyelesaian masalah dan integrasi teknikal untuk menyelesaikan masalah webhook FPX terputus, timeout callback checkout, dan status transaksi tidak sepadan di Shopify Malaysia.

Memperbaiki Masalah Webhook FPX Terputus, Callback Timeout, dan Status Tidak Sepadan di Shopify Malaysia

Menguruskan kedai Shopify di Malaysia sering kali menghadapi cabaran integrasi teknikal gerbang pembayaran tempatan (payment gateway) seperti ToyyibPay, Billplz, Curlec, atau SenangPay. Masalah paling kritikal berlaku apabila pelanggan telah membuat pembayaran FPX melalui perbankan internet, tetapi status pesanan dalam Shopify kekal "Unpaid" atau "Pending".


Langkah 1: Kenal Pasti Punca Masalah (Root Cause)

Kegagalan penyegerakan status pembayaran biasanya berpunca daripada tiga faktor utama:

  1. Callback Timeout Pelayar (Browser Drop): Pelanggan menutup tetingkap pelayar (browser) sebaik sahaja selesai membayar di portal bank sebelum pelayar sempat dialihkan kembali (redirect) ke URL callback Shopify.
  2. Kegagalan Webhook Asinkronus (IPN Failure): Pelayan Shopify gagal menerima atau memproses webhook latar belakang (Instant Payment Notification) daripada gerbang pembayaran akibat had masa respons (timeout) atau penolakan tandatangan keselamatan (signature mismatch).
  3. Konflik Skema Mata Wang: Gerbang pembayaran menghantar amaun dalam unit sen (cth. RM100.00 dihantar sebagai 10000), tetapi webhook ditafsirkan secara salah oleh aplikasi pihak ketiga.

Semak log transaksi dalam papan pemuka gerbang pembayaran anda dan bandingkan dengan Order Timeline serta log HTTP dalam admin Shopify.


Langkah 2: Laksanakan Pembetulan dan Pengesahan Webhook

Pastikan pengendali webhook anda mengesahkan tandatangan SHA256 / X-Signature sebelum mengemas kini status pesanan:

// Contoh fungsi pengesahan webhook gerbang pembayaran FPX (Node.js/Edge)
import crypto from "crypto";

export async function verifyPaymentWebhook(payload, receivedSignature, secretKey) {
  const calculatedSignature = crypto
    .createHmac("sha256", secretKey)
    .update(payload)
    .digest("hex");

  if (calculatedSignature !== receivedSignature) {
    throw new Error("Tandatangan webhook tidak sah! Transaksi ditolak atas faktor keselamatan.");
  }

  return {
    verified: true,
    orderId: payload.order_id,
    transactionStatus: payload.status_id === "1" ? "PAID" : "FAILED",
    amountPaid: payload.amount,
  };
}

Pastikan URL Webhook/Callback dalam portal gerbang pembayaran anda disetkan kepada protokol HTTPS dengan sijil SSL yang sah dan tidak disekat oleh peraturan firewall Cloudflare.


Langkah 3: Uji Aliran Transaksi Secara Menyeluruh

  1. Jalankan mod ujian (sandbox) dan simulasi transaksi FPX dengan gangguan rangkaian sengaja untuk mengesahkan fallback webhook.
  2. Pastikan pemberitahuan pesanan automatik kepada pelanggan hanya dihantar selepas status paid disahkan oleh pelayan.
  3. Semak integrasi dengan sistem invois LHDN MyInvois agar resit dijana dengan data pembayaran yang tepat.

Hentikan Kerugian Jualan Akibat Integrasi E-Dagang yang Rosak

Adakah gerbang pembayaran anda kerap gagal mengemas kini pesanan? Jangan biarkan isu teknikal menjejaskan reputasi dan jualan perniagaan anda.

JagaWeb menyediakan sokongan dan penyelenggaraan e-dagang bertaraf perusahaan di Malaysia.

  • RM5,000 untuk Semakan Pemilikan & Akses penuh (kami mengaudit dan membaiki arkitektur teknikal anda).
  • RM450/bulan untuk Pelan Penjagaan (Care Plan) terurus sepenuhnya.

Kami membina dan menyelenggara portfolio perniagaan terverifikasi secara telus (Daralwahi, Agros Empire, UrusHQ, nCrypt, Trexon Energy, TechFix Malaysia).

Tempah Semakan Pemilikan & Akses RM5,000 anda hari ini dan lindungi aset digital anda.

WhatsApp