ฉันกำลังตั้งค่าเว็บฮุค Stripe เป็นครั้งแรก ฉันทำคำขอทดสอบหลายร้อยรายการและมีอัตราข้อผิดพลาดประมาณ 90% ไม่สามารถคาดเดาได้ว่าทำไมความล้มเหลวจึงเกิดขึ้น
การตอบสนองความล้มเหลวบนแดชบอร์ด Stripe ได้แก่:
หมดเวลาเชื่อมต่อกับโฮสต์ระยะไกล
หรือ
ไม่สามารถเชื่อมต่อกับโฮสต์ระยะไกล
เว็บฮุคของฉัน (ฉันได้ทำให้ง่ายขึ้นสำหรับการทดสอบ) ประมาณ 10% ของเวลา ฉันได้รับการตอบกลับ 200 ครั้งด้วย {รับจริง}
:
expressRouter.route('/hooks').post( async (req, res) => {
เหตุการณ์ const = req.body;
console.log("เหตุการณ์:");
console.log (เหตุการณ์);
//จัดการเหตุการณ์
สวิตช์ (ประเภทเหตุการณ์) {
กรณี 'payment_intent.succeeded':
const paymentIntent = เหตุการณ์.data.object;
// จากนั้นกำหนดและเรียกใช้เมธอดเพื่อจัดการกับความตั้งใจในการชำระเงินที่สำเร็จ
// จัดการ PaymentIntentSucceeded (paymentIntent);
หยุดพัก;
กรณี 'payment_method.attached':
วิธีการชำระเงิน const = event.data.object;
// จากนั้นกำหนดและเรียกใช้เมธอดเพื่อจัดการกับสิ่งที่แนบมาของ PaymentMethod ที่สำเร็จ
// handlePaymentMethodAttached (วิธีการชำระเงิน);
หยุดพัก;
// ... จัดการเหตุการณ์ประเภทอื่น
ค่าเริ่มต้น:
console.log(`ประเภทเหตุการณ์ที่ไม่สามารถจัดการ ${event.type}`);
}
// ส่งคืนการตอบกลับเพื่อรับทราบการรับเหตุการณ์
res.json({รับ: จริง});
})
ฉันได้ลองใช้สองวิธีในการกำหนด hook และแบบมีและไม่มี async:
expressRouter.route('/hooks').post( async (req, res) => {
...
})
// และ
app.post("/hooks", async (req, res) => {
...
})
ฉันได้ติดต่อกับฝ่ายสนับสนุนของ Stripe และได้ลองใช้คำแนะนำทั้งหมดของพวกเขาแล้ว
พวกเขาทิ้งฉันไว้กับความเป็นไปได้ต่อไปนี้:
เป็นไปได้ว่าอาจมีเครือข่ายที่ช้าหรือปัญหาอื่นๆ เกี่ยวกับการกำหนดเส้นทาง
ผู้ให้บริการโฮสต์อาจต้องอนุญาตที่อยู่ IP สำหรับการนำส่งของ Stripe ด้วย FYI
พวกเขาอาจถูกบล็อกก่อนที่จะถึงเซิร์ฟเวอร์ของคุณ
ฉันได้เพิ่ม IP ของ Stripe ลงใน iptables เช่น:
iptables -I INPUT -p tcp -s 3.18.12.63 -j ยอมรับ
ฉันใช้เซิร์ฟเวอร์ Hostinger VPS กับ Caddy บน Ubuntu 18.04 นี่อาจเป็นปัญหากับการตั้งค่าเซิร์ฟเวอร์ของฉันหรือไม่ คำแนะนำใด ๆ ที่ชื่นชมอย่างมาก