אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » כך סולקים באמצעות PHP

כך סולקים באמצעות PHP

רן בר-זיק יולי 17, 2011 7:52 am תגובה אחת

הסבר ודוגמאות לסליקת כרטיסי אשראי באמצעות PHP ו-Curl עם דוגמה של שירות הסליקה טרנזילה.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

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

ראשית, מהי סליקה? סליקה היא שם כולל לאימות ואילוץ עסקאות של כרטיסי אשראי ברשת האינטרנט. או הפעולות שמתרחשות מאחורי הקלעים בין השלב שבו הלקוח מכניס את פרטי כרטיס האשראי ועד לשלב שבו אתה מקבל את הכסף. על מנת לקחת מספר כרטיס אשראי של לקוח ולעשות איתו משהו אנחנו חייבים חשבון בחברת סליקה. יש לא מעט חברות סליקה בשוק וכל עוסק מורשה יכול ליצור איתן קשר ולאחר בדיקה והסברים ליצור שם חשבון. עם יצירת החשבון אתם מקבלים שם משתמש שמזהה אתכם במערכת וסיסמה.

אימות מול אילוץ

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

אילוץ הוא הפעולה שמעבירה כסף מבעל כרטיס האשראי אל הכיס שלנו. ניתן לבצע אילוץ ללא אימות וניתן לבצע אילוץ לאחר אימות.

הדרך המקובלת באתרים קטנים היא לבצע אימות באמצעות סליקה ולאחר משלוח המוצר, לבצע אילוץ ידני באמצעות המערכת.

ביצוע אימות

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

אני אדגים באמצעות טרנזילה. טרנזילה מבקשת לתהליך האימות את הפרמטרים הבאים:

supplier
sum
price
cname
amount
address
city
zipCode
email
cardNum
eYear
eMonth
cvv2
myid

כאשר כל פרמטר צריך שיכיל את המידע הרלוונטי. cvv2 צריך להכיל את ה-CVV של הכרטיס, myid צריך להכיל את מספר תעודת הזהות של בעל הכרטיס וכך הלאה – לפי מה שמערכת הסליקה רוצה.
במקרה של טרנזילה יש בקשה לעוד שני פרמטרים עם הערכים הבאים:
task=Doverify
tranmode=V

על מנת לשלוח את הפרמטרים באמצעות Curl, אנו צריכים להכין מחרוזת טקסט ארוכה שלהם – בדיוק כמו בטופס. משהו כמו:


supplier=SUPPNUMBER&sum=10.00&price=5.00&cname=מוצרכלשהו&amount=1&address=רחוב שקר כלשהו 100&city=פתח תקוה[email protected]&cardNum=XXXXXXXXXXX&eYear=2015&eMonth=12&first_name=רן&last_name=בר-זיק&cvv2=732&myid=33444447&task=Doverify&tranmode=V

את הפרמטרים האלו אנו יכולים לשלוח אל טרנזילה באמצעות Curl. אני הסברתי איך להשתמש ב-CURL וב-PHP באופן מאד מפורט במאמר על CURL וב-PHP. כך יראה הקוד למשל:


$host = 'https://secure5.tranzilla.com/31.cgi'

$params = 'supplier=SUPPNUMBER&sum=10.00&price=5.00&cname=מוצרכלשהו&amount=1&address=רחוב שקר כלשהו 100&city=פתח תקוה[email protected]&cardNum=XXXXXXXXXXX&eYear=2015&eMonth=12&first_name=רן&last_name=בר-זיק&cvv2=732&myid=33444447&task=Doverify&tranmode=V';

$curl_connection = curl_init();
curl_setopt($curl_connection, CURLOPT_URL, $host);
curl_setopt($curl_connection, CURLOPT_POST, 1);
curl_setopt($curl_connection, CURLOPT_FAILONERROR, true);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $params);
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, 0);

// actual curl execution perfom
$result = curl_exec($curl_connection);

// on error - exit with error message
$error = curl_error($curl_connection);
if(!empty($error)) {
	die($error);
}
curl_close($curl_connection);

במידה והכנסנו את כל הפרמטרים באופן תקין, אנו נקבל תשובה. התשובה שאנו מקבלים מטרנזילה היא קוד מסוים כאשר '000' נחשב לקוד תקין ושאר הקודים הם קודים של שגיאות. כאשר טרנזילה מפרטת את הקודים של השגיאות. ניתן לבנות מערכת קטנה של switch-case כדי שתציג בפני הלקוח באופן מובן את השגיאה. במידה והתשובה '000' אנחנו נדפיס אישור ונוכל לראות את האימות במערכת. לאחר אספקת המוצר ללקוח אנו נוכל ללחוץ על אילוץ ולסיים עם העסקה כשכולם מאושרים.

באופן עקרוני ההדגמה כאן נעשתה על פי טרנזילה, אבל עם קצת שינויים ניתן להתאים אותה לכל שירות סליקה אחר כגון 'paypal' ואחרים.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
פתרונות

תגובה אחת

  1. יניב הגב ספטמבר 18, 2016 בשעה 9:56 am

    יש לי שאלה, כאשר אני מציין אימייל באחד מהשדות, זה לצורך אימות בלבד?, או שערך זה נשמר בעסקאות בטרנזילה (בחלק התחתון של מסך עסקה בודדת בטרנזילה) כך שאחר כך יהיה ניתן לזהות או לחפש עסקה באמצעות חיפוש לפי אימייל?

    כנ"ל לגבי שם הלקוח (ומה שם השדה המוכר לצורך משלוח שם הלקוח לטרנזילה?)

    המון תודות

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד