Score:-1

อัตราข้อผิดพลาดประมาณ 90% ด้วย Stripe webhooks การตอบสนองที่คาดเดาไม่ได้ ปัญหาเซิร์ฟเวอร์?

ธง dz

ฉันกำลังตั้งค่าเว็บฮุค 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 นี่อาจเป็นปัญหากับการตั้งค่าเซิร์ฟเวอร์ของฉันหรือไม่ คำแนะนำใด ๆ ที่ชื่นชมอย่างมาก

paladin avatar
id flag
100 คำขอทดสอบ? กรอบเวลาไหน? การเชื่อมต่อ TCP มีเวลาแฝง คุณต้องระวังเรื่องนั้น
Joseph avatar
dz flag
@paladin ฉันส่งคำขอเป็น 100 รายการใน 24 ชั่วโมงที่ผ่านมา ปกติฉันส่ง 10 ติดต่อกันอย่างรวดเร็ว บางครั้ง 5 อาจสำเร็จ บางครั้ง 0 สำเร็จ ขณะนี้อยู่ที่อัตราข้อผิดพลาด 84%
paladin avatar
id flag
ด่วนหมายถึงอะไร? หากคุณเขียนลูปซึ่งเริ่มทำงาน 10 คำขอโดยไม่ชักช้า ก็ไม่น่าแปลกใจว่าทำไมคุณถึงได้รับอัตราข้อผิดพลาดสูงเช่นนี้
Joseph avatar
dz flag
ฉันเรียกใช้คำขอด้วยตนเองเป็นส่วนใหญ่ด้วย curl ห่างกันไม่กี่วินาที แต่ฉันยังได้เรียกใช้คำขอด้วยการทดสอบการขายที่เหมาะสมผ่านการชำระเงินด้วย Stripe และได้รับข้อผิดพลาดเดียวกัน ฉันได้ลองสิ่งนี้ด้วยการส่งคำขอเพียงครั้งเดียว แต่ได้รับอัตราข้อผิดพลาดทั้งหมดเท่าเดิม ดังนั้น ฉันไม่คิดว่านั่นคือปัญหาของคุณ แต่คุณช่วยอธิบายได้ไหมว่าเหตุใดการส่งคำขอหลายรายการจึงทำให้เกิดข้อผิดพลาด
paladin avatar
id flag
ตัวอย่างเช่น คุณมีไคลเอ็นต์และเซิร์ฟเวอร์ เซิร์ฟเวอร์สามารถจัดการคำขอไคลเอ็นต์ได้ 2 รายการต่อวินาทีในเวลาเดียวกัน ไม่เกินนี้ ตอนนี้คุณมีไคลเอนต์ที่ทำ 2 คำขอภายใน 1 วินาที เซิร์ฟเวอร์ก็ไม่มีปัญหากับมัน ขณะนี้ไคลเอ็นต์รายเดียวกันพยายามทำ 3 คำขอภายใน 1 วินาที เซิร์ฟเวอร์สามารถตอบคำขอ 2 ใน 3 รายการได้ทันเวลา คำขอที่ 3 หมดเวลา
paladin avatar
id flag
เช่นเดียวกับแพ็คเกจ IP ไม่สามารถมีแพ็คเกจ IP ไม่จำกัดในบรรทัด แพ็คเกจ IP 1 (หนึ่ง) แพ็คเกจสามารถอยู่ในบรรทัดได้ หากมีแพ็คเกจ IP อื่นเข้ามาด้วย หนึ่งในแพ็คเกจเหล่านั้น "ตาย" ซึ่งเป็นแบบสุ่ม
Joseph avatar
dz flag
อา เข้าใจแล้ว ขอบคุณที่อธิบาย ฉันคิดว่าฉันเพิ่งแก้ไขมันได้ หลังจากลองทำสิ่งต่างๆ มาทั้งวัน+! ฉันพบสิ่งนี้: https://www.youtube.com/watch?v=S1uExj7mMgM&ab_channel=Twilio และตั้งค่า ngrok เพื่อส่งต่อไปยัง localhost:4000 ฉันเพิ่งส่งคำขอจำนวนมากและพวกเขาก็ประสบความสำเร็จทั้งหมด ฉันไม่แน่ใจว่ามันทำงานอย่างไร / ทำไมฉันถึงต้องการ แต่ฉันมีความสุขมากที่ได้ทำงาน ฉันจะตอบคำถามตอนนี้เช่นกัน
Score:-1
ธง dz

ฉันดูเหมือนจะใช้งานได้

ฉันติดตั้ง ngrok ผ่าน apt (https://ngrok.com/download)

จากนั้นตามนี้: youtube.com/watch?v=S1uExj7mMgM&ab_channel=Twilio และตั้งค่า ngrok เพื่อส่งต่อไปยัง localhost:4000:

เงา http 4000

ฉันเพิ่งส่งคำขอจำนวนมากและพวกเขาก็ประสบความสำเร็จทั้งหมด ฉันไม่แน่ใจว่ามันทำงานอย่างไร / ทำไมฉันถึงต้องการ แต่ฉันมีความสุขมากที่ได้ทำงาน ถ้าใครสามารถอธิบายได้ว่าทำไมมันถึงใช้งานไม่ได้หากไม่มีสิ่งนี้ โปรดแจ้งให้เราทราบ!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา