วิธีแก้ไขข้อผิดพลาด Stripe webhook (TLS และเหตุการณ์การจัดส่ง)
เผยแพร่แล้ว: 2021-05-13เราใช้ Stripe ร่วมกับ PayPal เพื่อรับการชำระเงินสำหรับธุรกิจปลั๊กอิน WordPress ของเรา เรารักลาย; ใช้งานง่ายและมีทุกสิ่งที่คุณต้องการในฐานะนักพัฒนา แม้ว่าเราจะมีปัญหามากมายกับ PayPal แต่ Stripe ก็ค่อนข้างไร้ที่ติ อย่างไรก็ตาม เช่นเดียวกับบริการอื่นๆ บางครั้งปัญหาก็เกิดขึ้น

วันนี้ผมจะมาแนะนำวิธีการแก้ไขข้อผิดพลาดเว็บฮุค Stripe ทั้ง TLS และเหตุการณ์การนำส่ง
- อีเมลแจ้งปัญหาการจัดส่ง Stripe Webhook
- กำลังตรวจสอบเหตุการณ์ปลายทางของเว็บฮุค
- วิธีแก้ไขข้อผิดพลาด TLS ของเว็บฮุค
- วิธีแก้ไขเว็บฮุคถูกบล็อก
อีเมลแจ้งปัญหาการจัดส่ง Stripe Webhook
พวกคุณส่วนใหญ่อาจไม่ได้ตรวจสอบบันทึกเหตุการณ์ใน Stripe เกี่ยวกับเว็บฮุคเป็นประจำ ฉันรู้ว่าฉันไม่ทำ ดังนั้น เช่นเดียวกับฉัน คุณอาจได้ยินเกี่ยวกับข้อผิดพลาดของเว็บฮุก Stripe ในอีเมลจาก Stripe ก่อน ถึงเวลาทิ้งสิ่งที่คุณทำและแก้ปัญหาว่าทำไมเว็บฮุคถึงมีปัญหา ของผมเข้ามาตอนบ่ายวันศุกร์
อีเมลจาก Stripe มักจะอ่านข้อความด้านล่างนี้ ฉันกำลังใช้ข้อผิดพลาด TLS สรุปเป็นตัวอย่าง:
เราประสบปัญหาในการส่งคำขอในโหมดใช้งานจริงไปยังปลายทางเว็บฮุคที่เชื่อมโยงกับบัญชีของคุณ...
URL ของจุดสิ้นสุด webhook ที่ล้มเหลวคือ: https://domain.com/index.php?edd-listener=stripe
เราได้พยายามส่งการแจ้งเตือนกิจกรรมไปยังปลายทางนี้ x ครั้งนับตั้งแต่ความล้มเหลวครั้งแรกในวันที่/เวลา หากปลายทางนี้สำคัญต่อแอปพลิเคชันของคุณ โปรดลองแก้ไขปัญหา เราจะหยุดส่งการแจ้งเตือนกิจกรรมไปยังจุดสิ้นสุดของเว็บฮุคตามวันที่/เวลา”
คำขอ x มีข้อผิดพลาด TLS ซึ่งบ่งชี้ว่า Stripe ไม่สามารถสร้างการเชื่อมต่อที่ปลอดภัยกับเซิร์ฟเวอร์ของคุณ คุณสร้างการวิเคราะห์โดยละเอียดเกี่ยวกับการกำหนดค่า TLS ของโฮสต์ได้ (https://ssllabs.com/ssltest/) เพื่อระบุข้อผิดพลาดทั่วไป
คุณต้องส่งคืนรหัสสถานะใดๆ ระหว่าง HTTP 200 ถึง 299 เพื่อให้ Stripe เพื่อพิจารณาส่งเหตุการณ์ webhook สำเร็จ
คุณสามารถค้นหาชุดเหตุการณ์ทั้งหมดและขอบันทึกบนแดชบอร์ด
ขอแสดงความนับถือ
ทีมงาน The Stripe
สิ่งสำคัญคือไม่ต้องตื่นตระหนก ด้านล่างนี้ ฉันจะแนะนำวิธีง่ายๆ สองสามวิธีในการแก้ไขปัญหาและบางสิ่งที่เราต้องแก้ไขด้วยการนำ Stripe ไปใช้
กำลังตรวจสอบเหตุการณ์ปลายทางของเว็บฮุค
สิ่งแรกที่ต้องทำคือตรวจสอบเหตุการณ์ที่บันทึกไว้สำหรับปลายทางเว็บฮุค Stripe ของคุณ ไปที่แดชบอร์ด Stripe ของคุณและทางด้านซ้ายให้คลิกที่ "Webhooks" ใต้เมนู Developer
ในหน้าจอนี้ คุณจะสามารถดูตำแหน่งข้อมูล Stripe ทั้งหมดของคุณและส่วนที่สำคัญที่สุดคืออัตราข้อผิดพลาดในช่วง 7 วันที่ผ่านมา หากคุณเพิ่งได้รับอีเมลจาก Stripe ที่แจ้งว่าพวกเขาพยายามแล้ว x จำนวนครั้งเพื่อไปยังปลายทางของคุณ คุณอาจเห็นอัตราข้อผิดพลาดค่อนข้างสูง

หากคุณจัดเรียงความพยายามของเว็บฮุคตาม "ล้มเหลว" คุณสามารถดูความพยายามทั้งหมดและสาเหตุของความล้มเหลวได้อย่างง่ายดาย ข้อผิดพลาดทั่วไปของ Stripe Webhook ได้แก่ ข้อผิดพลาด TLS การหมดเวลา และ 500 (ข้อผิดพลาดเซิร์ฟเวอร์ภายใน)

วิธีแก้ไขข้อผิดพลาด TLS ของเว็บฮุค
เราพบข้อผิดพลาด Stripe webhook TLS เป็นการส่วนตัว นี่คือสิ่งที่คุณควรทำ
- ตรวจสอบใบรับรอง SSL ของคุณโดยการสแกนไซต์ของคุณด้วยเครื่องมือทดสอบเซิร์ฟเวอร์ SSL จาก Qualys สิ่งแรกที่ต้องยืนยันคือใบรับรองของคุณถูกต้อง และคุณไม่ได้ขาดใบรับรองระดับกลางใดๆ หากเป็นเช่นนั้น ให้ลองเพิ่มใบรับรอง SSL กับผู้ให้บริการโฮสติ้งของคุณอีกครั้ง นี่อาจเป็นหนึ่งในสาเหตุที่พบบ่อยที่สุดสำหรับข้อผิดพลาด TLS ที่เกิดขึ้น
- ยืนยันเวอร์ชันของ TLS ที่ผู้ให้บริการโฮสต์ของคุณรองรับ Stripe รองรับ TLS 1.2 สูงสุดเมื่อเขียนสิ่งนี้
- หากคุณมีพร็อกซีหรือ WAF อยู่หน้าเว็บไซต์ของคุณ คุณจะต้องดำเนินการตามขั้นตอนที่ 1 และ 2 อีกครั้ง เนื่องจากเว็บฮุคของ Stripe จะเข้าไปที่ proxy/WAF ก่อน
เมื่อเราพบข้อผิดพลาด TLS ปัญหาเกิดขึ้นจริงเนื่องจากเราย้ายไปยัง Cloudflare โดเมน Cloudflare ของเรามีเวอร์ชัน TLS ขั้นต่ำที่ตั้งค่าเป็น TLS 1.3 (1.0 เป็นค่าเริ่มต้น) เนื่องจากขณะนี้ Stripe รองรับเฉพาะเวอร์ชัน 1.2 เราจึงเริ่มพบข้อผิดพลาดของเว็บฮุค เราใช้เวลาสักครู่ในการติดตามสิ่งนี้


วิธีแก้ไขเว็บฮุคถูกบล็อก
Stripe ต้องสามารถสื่อสารกับเซิร์ฟเวอร์ของคุณเพื่อให้ทุกอย่างทำงานได้อย่างถูกต้อง ดังนั้น หากคุณได้รับระยะหมดเวลาหรือแม้กระทั่งข้อผิดพลาด 500 อาจเป็นไปได้ว่าคุณกำลังบล็อกเว็บฮุคของ Stripe โดยไม่ได้ตั้งใจ นี่คือสิ่งที่คุณควรทำ
- หากคุณกำลังใช้งาน WordPress และปลั๊กอินความปลอดภัย ตรวจสอบให้แน่ใจว่าไม่ได้บล็อกการเชื่อมต่อใดๆ จาก Stripe
- ตรวจสอบกับผู้ให้บริการโฮสต์ของคุณเพื่อให้แน่ใจว่าพวกเขาอนุญาต Stripe และไม่ได้บล็อก IP ของพวกเขา
- หากคุณใช้งาน WAF เช่น Cloudflare คุณอาจต้องเพิ่ม กฎการอนุญาตให้ กับไฟร์วอลล์ด้วย IP ของ Stripe ไฟร์วอลล์ของ Cloudflare ไม่ได้ใช้ชื่อโฮสต์ ดังนั้น คุณจะต้องใช้ IP ของพวกเขา ฉันแนะนำให้เพิ่มทั้ง IP สำหรับ api.stripe.com และการแจ้งเตือนเว็บฮุค คุณสามารถตรวจสอบบันทึกกิจกรรมและเปรียบเทียบกับรายการ IP ของ Stripe เพื่อยืนยันว่าเป็นปัญหา Cloudflare

นี่คือนิพจน์แบบเต็มสำหรับกฎไฟร์วอลล์ Cloudflare ที่มี IP ของพวกเขาในปี 2021:
(ip.src ใน 13.112.224.240 13.115.13.148 13.210.129.177 13.210.176.167 13.228.126.182 13.228.224.121 13.230.11.13 13.230.90.110 13.55.153.188 13.55.5.15 13.56.126.253 13.56.173.200 13.56.173.232 13.57.108.134 13.57.155.157 13.57.156.206 13.57.157.116 13.57.90.254 13.57.98.27 18.194.147.12 18.195.120.229 18.195.125.165 34.200.27.109 34.200.47.89 34.202.153.183 34.204.109.15 34.213.149.138 34.214.229.69 34.223.201.215 34.237.4.238 187.115 34.239.14.72 34.240.123.193 34.241.202.139 34.241.54.72 34.241.59.225 34.250.29.31 34.250.89.120 35.156.131.6 35.156.194.238 35.157.227.67 35.158.254.198 35.163.82.19 35.164.105.206 35.16.182.231157 50 .212.223 50.18.219.232 52.1.23.197 52.196.53.105 52.196.95.231 52.204.6.233 52.205.132.193 52.211.198.11 52.212.99.37 52.213.35.125 52.22.83.139 52.220.44.249 52.25.214.31 52.26.11.205 52.26.132.102 52.2167.2.11 52.53.133.6 52.54.150.82 52.57.221.37 52.59.173.230 52.62.14.35 52.62.203.73 52.63.1 06.9 52.63.119.77 52.65.161.237 52.73.161.98 52.74.114.251 52.74.98.83 52.76.14.176 52.76.156.251 52.76.174.156 52.77.80.43 52.8.19.58 52.8.8.189 54.149.153.72 54.152.36.104 54.183.95.195 54.187.182.230 54.187.199 .208.163 54.238.140.239 54.65.115.204 54.65.97.98 54.67.48.128 54.67.52.245 54.68.165.206 54.68.183.151 107.23.48.182 107.23.48.232 3.18.12.63 3.130.192.231 13.235.14.237 13.235.122.149 35.154.171.200 52.15.1.83.38 54.187.174 54.187.205.235 54.187.216.72 54.241.31.99 54.241.31.102 54.241.34.107)
สรุป
หวังว่าเคล็ดลับเหล่านี้จะช่วยแก้ไขข้อผิดพลาด Stripe webhook ของคุณได้ หากคุณมีคำถามหรือขั้นตอนอื่นๆ ที่ได้ผลสำหรับคุณ เรายินดีที่จะรับฟัง วางความคิดเห็นด้านล่าง
