לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 28-06-2008, 22:22
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
עזרה במערכת הסליקה של paypal

שבוע טוב וערב טוב.
אני משתמש במערכת הסליקה שpaypal נותנת.
הצלחתי לחבר אותה לאתר, והכל עובד כמו שצריך.
אבל יש לי בעיה קטנה:
אני שולח את המשתמשים שלי למערכת הסליקה של פייפל כדי שיחייבו אותם, אבל לפני שאני שולח אני מאשר במסד נתונים שלי שהם שילמו.
אחרי הקניה פייפל מחזירה אותם אוטומטית לאתר שלי.
הבעיה שלי שיש איזה באג די צפוי.
אם הם מועברים לאתר של פייפל, אחרי שאני הפנתי אותם וכביכול אישרתי שהם שילמו, הם חוזרים בחזרה לאתר שלי, בלי לשלם לפייפל, והכל עובד להם כמו שצריך כאילו הם שילמו.
היה ברור לי שאני לא הראשון שחושב על החור הזה, ובגלל זה התחלתי לחפש קצת באתר שלהם.
הגעתי למה שנקרא IPN(Instant Payment Notification) שזה בעצם עדכון בזמן אמת על העסקות שאני שולח אליהם.
אני יכול לדעת אם המשתמש שילם או לא..
חפרתי כבר ארבעה ימים את הנושא הזה, והגעתי למסקנה שרק בן אדם עם ניסיון בנושא הזה יוכל לעזור לי.
לכן החלטתי לפנות אליכם.
אחת האפשרויות שראיתי שהIPN הזה מאפשר, זה עדכון שדה במסד נתונים שלי.
זה משהו שבעצם יכול לסדר לי הכל, אם פייפל יעדכנו שדה של סטאטוס שיקבע לי אם המשתמש סיים לשלם או לא.
למרות שאפילו משתנה POST שישלח לאתר שלי, כשהם מחזירים לי את המשתמשים יכול לסדר לי את הבעיה.
רציתי לדעת איך אני משתמש בשירות הזה, ובאיזה דרך אתם הכי ממליצים להשתמש בו.
סליחה על ההודעה הארוכה והחפירה.
תודה רבה שקראת עד כאן.
המשך לילה מהנה ושוב תודה רבה!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 29-06-2008, 23:39
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
בתגובה להודעה מספר 2 שנכתבה על ידי שימי שמתחילה ב "חבר, יש להם דוגמאות קוד באתר..."

לפני שאני בכלל מגיב, אני חייב להודות לך מקרב לב. לרגע חשבתי שאני כבר לא אקבל תשובה, ואתקע עם השאלה הזאת ולא אצליח לפתור אותה.
מעבר לתגובה, רציתי להודות גם על הלינק הישיר לתשובה.
נכנסתי לקישור שהפנת אותי, הגעתי לקוד בphp, ופה קצת הסתבכתי.
אני מקווה שזה לא מפריע לך שאני מעלה את הבעיה שנתקלתי בה.
זה קוד הPHP שהם נתנו לי:
קוד PHP:
<?
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
// assign posted variables to local variables
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}
?>

את כל הקטע בהתחלה הבנתי.
לא היה יותר מידי מה להבין, אבל הוא איתחל את משתני הPOSTלתוך משתנים רגילים בphp.
אני מקווה שבאמת הבנתי נכון, ולא הייתי צריך לשנות כלום בחלק הראשון.
בחלק השני, עם הftp והhttp למניהם, לא ממש הבנתי.
יש שם הערות שאומרות "לבדוק את מצב המשתמש וכו'" לא הבנתי אם אניא מור לבדוק, אם החקל הזה בודק את מצב המשתמש.
לא הבנתי איפה המשתנה שאומר לי באיזה מצב הקניה.
מצטער שאולי זה חופר מידי, אני פשוט תקוע עם זה.
האמן לי שלא שלחתי את ההודעה הזאת לפני שעברתי על הקוד 4 פעמים.
המשך לילה מהנה ותודה רבה!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 01-07-2008, 10:50
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 3 שנכתבה על ידי dardevil שמתחילה ב "לפני שאני בכלל מגיב, אני חייב..."

כפי שכתוב ב technical overview ממש באותו מקום - אתה מגדיר בפרופיל שלך את המקום שבו אתה שם בשרת שלך את הקובץ הנ"ל. כשמסתיימת עסקה ב PayPal, השרת שלהם (!) יוצר קשר עם הסקריפט שלך, ושולח לו את הפרמטרים של העיסקה שהושלמה (בבקשת POST). כתוצאה מכך, הסקריפט אצלך, יוצר קשר בחזרה עם PayPal, ומעביר אליהם את הפרטים שהם בעצמם העבירו לך, כדי לאמת שהבקשה אכן הגיעה מהם - ואז השרת של PayPal מאשר אם הפרמטרים תואמים למה שכתוב אצלם. אם אכן הפרטים תואמים, מתחת לקוד שבודק את VERIFIED, אתה מבצע אצלך פעולות. מוודא למשל שכתובת האימייל של המקבל זה אתה (ולכן חשבון ה paypal הוא שלך). מוודא את כתובת המשלם מול המאגר שלך ובכך את הסכום שהוא היה אמור לשלם, ואם כל הנתונים מתאימים למה שבמערכת שלך, אתה בעצם יודע שהבחור שילם ב PayPal את הסכום ששלחת אותו לשלם באתר של PayPal.

לא שעשיתי את זה אי פעם, אבל ככה אני מבין מה שכתוב שם... (אנגלית קשה שפה?)
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 01-07-2008, 11:44
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
בתגובה להודעה מספר 5 שנכתבה על ידי שימי שמתחילה ב "כפי שכתוב ב technical..."

יואב, אני חושב שהבנתי מה הקוד אומר אחרי ההסבר שלך.
אבל אני יותר דיברתי על המהלך הכולל של המערכת.
איך אני אמור לזהות את המשתמש שהגיע אליי, איך אני בודק כמה הוא שילם וכו'..

ופה הגיעה התגובה של שימי
שאגב, מדהים לראות שאתה admin האתר, ועדיין עונה ועוזר למשתמשים פשוטים.

אני הגדרתי בפרופיל את הקישור לקובץ הנ"ל - יש להם אפילו מערכת נסיונית בשביל אנשים כמוני שקיבלו חום מסיבוכיות הסליקה שלהם.
אני חושב שהבנתי מה בעצם עושה הקוד שלהם, והאמת מבחינתי זה נראה כמו רעיון גאוני.
אבל יש עוד איזה משהו שאולי תוכל לעזור לי בו.
אם למשל בבדיקה שלי המשתמש הכניס אימייל מסויים, וכשהוא ביצע את הקניה הוא הכניס אימייל אחר.
איך אני אוכל לבדוק תאימות בין השניים? הרי זה לא אותו אימייל.
יש לי איזה אפשרות שכשאני שולח את המשתמשים לpaypal לשתול להם איזה משנה POST שיחזור אליי בסוף התהליך?
לדוג', לשלוח עם המשתמש את הid שלו במסד נתונים שלי, ואז אני אדע בוודאות שזה באמת הוא.
אני כרגע משתמש בsession כדי לזהות את המשתמש, אבל אני קצת מפחד מזה, לא יודע למה.
אתה חושב שזה בסדר אם אני אשתמש בsession כדי לזהות באיזה משתמש מדובר?
או שאולי למצוא את הדרך בpaypal להחזיר אליי משתנה POST שאני שולח להם בתחילת התהליך?

אני מצטער שאלי גרמתי לך לקרוא עד לפה.
ובכלל, כמו שאמרת, למרות שאף פעם לא עשית את זה אתה קורא ועונה על השאלות שלי..(וכן, לפעמים אנגלית קשה שפה)
תודה גם לך יואב על העזרה.
שניכם עוזרים לי מאוד!
המשך יום שקט ורגוע.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 03:20

הדף נוצר ב 0.05 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר