IPN กับ PDT ใน Paypal


99

ฉันมีปัญหาในการเลือกระหว่างการแจ้งเตือนการชำระเงินทันที (IPN) ของ PayPal และการโอนข้อมูลการชำระเงิน (PDT)

โดยทั่วไปผู้ใช้ซื้อผลิตภัณฑ์แบบครั้งเดียวบนไซต์ของฉันชำระเงินด้วย PayPal และกลับไปที่ไซต์ของฉัน ฉันเข้าใจวิธีการทำงานของ IPN แต่ตอนนี้ฉันเห็นว่าฉันสามารถเรียกใช้การดำเนินการต่าง ๆ ที่เกิดขึ้นหลังจากการซื้อสำเร็จได้ง่ายขึ้นด้วย PDT เนื่องจากข้อมูลจะถูกส่งกลับไปที่นั่น (ซึ่งต่างจากการต้องการฟังแยกต่างหาก) .

อย่างไรก็ตามเอกสาร PDT ของ PayPal มีบรรทัดที่เป็นความลับ: "PDT ไม่ได้มีไว้สำหรับใช้กับบัตรเครดิตหรือธุรกรรมการชำระเงินด่วน" ... แต่ฉันไม่พบอะไรเพิ่มเติมในหัวข้อนี้

  1. บัตรเครดิตไม่ควรใช้กับ PDT จริงหรือ? ฉันต้องการมากกว่าหนึ่งประโยค

  2. นั่นหมายความว่าผู้ใช้ต้องมี / สร้างบัญชี PayPal เพื่อชำระเงินใช่หรือไม่?

  3. หมายความว่าหากฉันต้องการอนุญาตให้ผู้ใช้ชำระเงินด้วยบัญชี PayPal และ / หรือด้วยบัตรเครดิตโดยตรงฉันต้องติดตั้ง IPN หรือไม่

ใครที่เคยผ่านเรื่องนี้มาแล้วช่วยให้แสงสว่างได้บ้าง


ฉันพบหน้าเว็บที่อธิบายเรื่องนี้ได้ดีกว่า [PayPal PDT และ IPN: มันทำงานอย่างไร] [1] [1]: webmasters.stackexchange.com/questions/21634/…
Ananize Scott

สำหรับคำถามที่ 2 มีการPayPal Account Optionalตั้งค่าMy selling preferences > Website preferencesที่คุณสามารถเปิดใช้เพื่อไม่บังคับให้ลูกค้าสร้าง / มีบัญชี PayPal ได้เช่น ชำระด้วยบัตรเครดิต / เดบิต
kaiyaq

คำตอบ:


112

API สำหรับ PDT และ IPN นั้นคล้ายคลึงกัน ความแตกต่างหลักคือเมื่อคุณได้รับการแจ้งเตือน ด้วยเหตุนี้ฉันจึงขอแนะนำให้ใช้ทั้งสองอย่าง

  • ด้วย PDT คุณจะได้รับการแจ้งเตือนทันทีและสามารถดำเนินการเพิ่มเติมใด ๆ ที่จำเป็นและแสดงหน้ายืนยันให้ผู้ใช้เห็น
  • ด้วย IPN คุณรับประกันได้ว่าจะได้รับแจ้งว่าได้รับการชำระเงินแม้ว่าคอมพิวเตอร์ของผู้ใช้จะระเบิดก่อนที่จะสามารถส่ง PDT ให้คุณได้

ใช้ทั้งสองอย่างและได้รับสิ่งที่ดีที่สุดจากทั้งสองโลก แต่ถ้าคุณทำเพียงอย่างเดียว IPN ก็น่าเชื่อถือ

การจับครั้งเดียว: หากคุณใช้ทั้งสองอย่างก็มีโอกาสที่การชำระเงินของคุณจะได้รับการประมวลผลสองครั้ง ดูแลเพื่อให้แน่ใจว่าจะไม่เกิดขึ้น แอปพลิเคชันที่ฉันเขียนจัดการ PDT และ IPN เกือบจะเหมือนกัน (ส่วนแบ็กเอนด์เหมือนกัน) และรหัสนั้นจะได้รับการล็อกผู้ใช้แต่ละเว็บในฐานข้อมูลดังนั้นหากผู้ใช้รายเดียวกันพยายามส่งการชำระเงินเดียวกันหลายครั้ง สามารถดำเนินการได้เพียงครั้งเดียว เมื่อประมวลผลแล้วผลลัพธ์ของกระบวนการนั้นจะถูกนำมาใช้ใหม่สำหรับความพยายามในการประมวลผลในภายหลัง

แก้ไข อีกอย่างหนึ่ง: IPN มีข้อมูลมากกว่า PDT มีข้อความต่างๆมากมายที่คุณสามารถรับได้จาก IPN เช่นการแจ้งเตือนการปฏิเสธการชำระเงินเป็นต้นดังนั้นคุณควรนำไปใช้จริงๆ


ระบบ PDT ของ PayPal จะส่งการยืนยันคำสั่งซื้อไปยังไซต์ร้านค้าที่ใช้ PayPal Payments Standard และอนุญาตให้ตรวจสอบสิทธิ์ข้อมูลนี้ จากนั้นไซต์ดังกล่าวสามารถแสดงข้อมูลนี้ในเครื่องในหน้า "ยืนยันคำสั่งซื้อ"

ควรใช้ PDT เมื่อใด

IPN มีความสามารถเช่นเดียวกับที่อธิบายข้างต้น คุณควรเลือก PDT แทน IPN เมื่อใด

ด้วย PDT ไซต์ของคุณจะได้รับแจ้งทันทีเมื่อลูกค้าชำระเงินเสร็จสมบูรณ์ อย่างไรก็ตามด้วย IPN มีความล่าช้ามากระหว่างเวลาที่ลูกค้าชำระเงินและเวลาที่ไซต์ของคุณได้รับการแจ้งเตือนเกี่ยวกับเหตุการณ์นี้

ดังนั้นให้ใช้ PDT หากไซต์ของคุณมีคุณลักษณะที่ต้องแจ้งการชำระเงินทันที

ตัวอย่างเช่นพิจารณาร้านขายเพลงดิจิทัล ด้วย PDT ร้านค้านี้สามารถให้ลูกค้าดาวน์โหลดสินค้าได้ทันทีเนื่องจาก PDT ส่งการยืนยันคำสั่งซื้อทันที ด้วย IPN การดำเนินการตามคำสั่งซื้อทันทีดังกล่าวเป็นไปไม่ได้

ข้อดีของ IPN

PDT มีจุดอ่อนที่สำคัญคือส่งการยืนยันคำสั่งซื้อเพียงครั้งเดียวและครั้งเดียว ดังนั้นเมื่อ PDT ส่งการยืนยันไซต์ของคุณจะต้องทำงานอยู่ มิฉะนั้นจะไม่ได้รับข้อความ

ในทางตรงกันข้าม IPN จะรับประกันการส่งการยืนยันคำสั่งซื้อเนื่องจาก IPN จะส่งการยืนยันอีกครั้งจนกว่าไซต์ของคุณจะยอมรับใบเสร็จ ด้วยเหตุนี้ PayPal จึงแนะนำให้คุณใช้ IPN แทน PDT

ข้อดีอีกอย่างของ IPN คือส่งการแจ้งเตือนหลายประเภทในขณะที่ PDT ส่งเพียงการยืนยันคำสั่งซื้อ ดังนั้นเมื่อใช้ IPN ไซต์ของคุณจึงสามารถรับการแจ้งเตือนการปฏิเสธการชำระเงินรวมทั้งการยืนยันคำสั่งซื้อ หมายเหตุ: หากไซต์ของคุณต้องได้รับแจ้งการชำระเงินทันทีคุณสามารถใช้ทั้ง IPN และ PDT ได้ อย่างไรก็ตามหากคุณทำเช่นนั้นไซต์ของคุณจะได้รับการยืนยันคำสั่งซื้อสองครั้งสำหรับการขายแต่ละครั้ง ด้วยเหตุนี้คุณต้องระมัดระวังในการดำเนินการ (เช่นจัดส่งผลิตภัณฑ์) กับสำเนาข้อความยืนยันที่ระบุเพียงชุดเดียว

เอกสารที่นี่


2
ขอบคุณฉันเข้าใจ โดยพื้นฐานแล้วให้เชื่อมโยงการอัปเดตฐานข้อมูลกับ IPN (เนื่องจากจะได้รับการประมวลผลเสมอ) และเชื่อมโยงการยืนยันผู้ใช้กับ PDT เท่านั้น (เช่นตรวจสอบว่าการชำระเงินได้รับการดำเนินการโดย IPN ในหน้าที่รอดำเนินการหรือไม่เป็นต้น) .... ?
ทอม

1
+1 สำหรับการใช้งานทั้ง IPN และ PDT เราได้ทำสิ่งนี้แล้วและได้ผลดี
Mark Redman

3
@ ทอม: การใช้งานของฉันคือ: เมื่อมี PDT หรือ IPN เข้ามาให้อ่านพารามิเตอร์และพยายามประมวลผลการชำระเงิน โปรเซสเซอร์ A) บล็อกการประมวลผลพร้อมกันอื่น ๆ (สำหรับผู้ใช้รายนั้น) และ B) ตรวจสอบเพื่อดูว่าได้รับการประมวลผลแล้วหรือไม่ หลังจากดำเนินการเสร็จสิ้นด้วย IPN คุณจะดำเนินการเสร็จสิ้นด้วย PDT คุณจะแสดงหน้ายืนยันหรือหน้าใบเสร็จให้ผู้ใช้เห็นหรืออะไรก็ได้ ทั้งฝั่ง PDT และฝั่ง IPN สามารถทำงานได้อย่างถูกต้องหากอีกด้านล่ม แต่คุณจะได้รับความน่าเชื่อถือที่ดีจากการมีทั้งสองอย่าง ผู้ใช้ค่อนข้างสูงไม่ได้คลิกผ่านก่อนที่ IPN จะมาถึง
Mr. Shiny and New 安宇

8
คำตอบนี้ไม่ได้ตอบคำถาม # 1, # 2 หรือ # 3 ของ OP แต่ได้รับการยอมรับหรือไม่?
Clint Pachl

2
IPN ใช้เวลาถึง 4 วันในการตอบ ... มันแย่มาก
Toskan

1

Re 1. PDT มีไว้เพื่อใช้กับคุณลักษณะการคืนสินค้าอัตโนมัติสำหรับการชำระเงินผ่านเว็บไซต์ Auto Return เปลี่ยนเส้นทางไปยังไซต์ PDT หลังจากจ่ายเงินให้กับผู้ขาย น่าเสียดายที่ไม่สามารถใช้คุณสมบัตินั้นร่วมกับบัญชี PayPal ทางเลือกได้ - ใช้เพื่อเปิดใช้งานการชำระเงินด้วยบัตรเครดิต นี่คือหมายเหตุจาก PayPal: 'หากคุณเปิดใช้งานการคืนสินค้าอัตโนมัติและเลือกที่จะเปิดใช้บัญชี PayPal ทางเลือกสำหรับผู้ใช้ใหม่ผู้ใช้ใหม่จะไม่ถูกนำกลับไปที่เว็บไซต์ของคุณโดยอัตโนมัติ แต่จะได้รับตัวเลือกในการส่งคืน' . ผู้ใช้จะมีตัวเลือกในการกลับไปที่ไซต์ของคุณ (ขั้นตอน PDT) หรืออยู่บนไซต์ PayPal สรุปผลเมื่อชำระเงินด้วยบัตรเครดิตผู้ใช้สามารถข้ามขั้นตอน PDT ได้หากผู้ใช้ไม่คลิก 'กลับไปที่ลิงค์ร้านค้า'

Re 2. ขึ้นอยู่กับคุณว่าคุณต้องการอนุญาตตัวเลือกการชำระเงินใด หากคุณต้องการอนุญาตให้ชำระเงินโดยไม่มีบัญชี PayPal คุณสามารถเปิดใช้งานบัญชีเสริมได้ หากคุณต้องการอนุญาตเฉพาะผู้ใช้ที่มีบัญชี PayPal ให้ปิดใช้งานคุณสมบัตินั้น อาจมีตัวเลือกเพิ่มเติม

Re 3. ในกรณีของคุณคุณต้องกระตุ้นให้ดำเนินการหลังจากซื้อสำเร็จ วิธีที่แนะนำคือใช้ IPN PDT ใช้ไม่ได้กับทุกกรณีและไม่รับประกันการส่งข้อความ นี่คือการเชื่อมโยงเพื่อ doc ครอบคลุมหัวข้อที่PDT VS IPN


0

นี่เป็นคำถามเก่า แต่คำตอบง่ายๆของฉันคือ - ทำไมไม่ใช้ทั้ง PDT และ IPN พวกเขาจะทำงานได้ดีสำหรับการทำธุรกรรมบัตร

PDT สามารถระบุสถานะธุรกรรมในเว็บไซต์ของคุณได้ทันทีซึ่งคุณสามารถตรวจสอบสถานะความสำเร็จหรือความล้มเหลวของการชำระเงินได้อย่างรวดเร็วและแจ้งข้อความที่เหมาะสมให้กับผู้ใช้

ในขณะเดียวกันคุณสามารถรอการยืนยันแบบเต็มจาก IPN ในเบื้องหลัง เมื่อได้รับแล้วคุณสามารถใช้ข้อมูลนี้เพื่ออัปเดตฐานข้อมูลเพิ่มเติมและดำเนินการตามคำสั่งซื้อ

คุณสามารถทำตามคำแนะนำทีละขั้นตอนซึ่งฉันพบว่าชัดเจนและเป็นประโยชน์มาก - และยังใช้ได้ในปี 2018

https://www.codexworld.com/paypal-standard-payment-gateway-integration-php/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.