כשעובדים עם
IPN, בהעברת הלקוח לתשלום ב- paypal בעל האתר צריך לספק 3 קישורים שונים -
1. כתובת לחזרה במקרה שבו העסקה נכשלה (cancel).
2. כתובת לחזרה לאחר שהעסקה בוצעה (return).
3. כתובת לפנייה כאשר העסקה בוצעה בפועל, כאן גם נשלחים כל הפרטים אודות העסקה (notify_url).
שני הדפים הראשונים צריכים להיות דפי תצוגה בלבד - הם לא אמורים להגדיר שום דבר בקשר לטרנזקציה, לקוח שפותח את דף ה- return הוא לא בהכרח לקוח ששילם.
הדף היחיד שמגדיר עבור הלקוח שהוא שילם (ובו יש לבדוק גם את הסכום שהוא שילם כנגד השירותים שהוא רכש) זה ה- notify_url - הפנייה לדף הזה מתבצעת ישירות מ- paypal.
בהתאם לתהליך הזה -
הבעיה שאתה מתאר מתקיימת אך ורק כאשר לא עובדים כמו שצריך מול השירות.
אתר שמגדיר שהעסקה בוצעה ברגע שהמשתמש ניגש לעמוד שהוגדר כ- return לא עובד נכון, כל אחד יכול להיכנס לעמוד הזה מתי שבא לו וזה לא בהכרח מעיד שהוא שילם.
אם הבנתי נכון את כל שאר הבעיות/טענות שהצגת - עושה רושם שגם הן מתקיימות כתוצאה ממימוש לקוי, כך שגם במקרים האלו אני לא חושב שיש בעיה כלשהי מצד Paypal עצמה.
הפתרון הוא פשוט - כמו בהמון מקרים אחרים, כדאי לעבוד עם מפתחים שיודעים מה הם עושים.