הגנה על עסקאות תשלום באמצעות התכונה 'הגנה על עסקאות'

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

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

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

כדי להגדיר את התכונה 'הגנה על עסקאות', צריך לבצע את השלבים הבאים:

  1. הכנת הסביבה

  2. מפעילים את התכונה 'הגנה על עסקאות' ב Google Cloud פרויקט.

  3. בוחרים שיטת שילוב.

  4. שולחים בקשת create assessment API מהקצה האחורי עם נתוני העסקה, באמצעות שילוב הקצה הקדמי או שילוב רק של API שנבחרו קודם.

    בתגובה לבקשת create assessment API, ‏ reCAPTCHA מספק ציון לסיכון העסקה וסיבות נוספות להסבר (לדוגמה, HIGH_TRANSACTION_VELOCITY), אם רלוונטי.

  5. קובעים את הפעולה הבאה שהמשתמשים צריכים לבצע על סמך הניקוד.

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

לפני שמתחילים

  1. אם אתם חדשים ב-reCAPTCHA, אתם צריכים לבצע את הפעולות הבאות:

    1. הגדרת reCAPTCHA ב Google Cloud פרויקט

    2. יצירת מפתח reCAPTCHA מבוסס-ניקוד.

  2. אם אתם מתכננים שילוב של קצה קדמי, ודאו שהסביבה שלכם תומכת בטוקנים בגודל של יותר מ-8KB, כי יכול להיות שהגנה על עסקאות תשתמש בטוקנים גדולים יותר.

הפעלת הגנה על עסקאות

  1. נכנסים לדף reCAPTCHA במסוף Google Cloud .

    מעבר אל reCAPTCHA

  2. מוודאים ששם הפרויקט מופיע בבורר המשאבים.

    אם שם הפרויקט לא מופיע, לוחצים על בורר המשאבים ובוחרים את הפרויקט.

  3. לוחצים על הגדרות.

  4. בחלונית Transaction defense (הגנה על טרנזקציות), לוחצים על Configure (הגדרה).

  5. לוחצים על המתג הפעלה ואז על שמירה.

בחירת שיטת שילוב

בוחרים באפשרות Frontend Integration (שילוב חזיתי) כדי לשלב באופן אוטומטי אותות ממכשיר חזיתי, או באפשרות API-only Integration (שילוב באמצעות API בלבד) אם אתם מעדיפים לא לשלב בחזית.

כשמריצים את ה-JavaScript,‏ reCAPTCHA יוצר טוקן ייחודי של reCAPTCHA לכל סשן של משתמש, ואוסף נתונים התנהגותיים של המשתמש כדי להעריך אותו.

השילוב שמבוסס על API בלבד מחזיר פסיקה על סמך נתוני העסקה הנדרשים בלבד, ולא דורש את האסימון הזה.

שילוב בחלק הקדמי של האתר – הטמעה של reCAPTCHA באתר

שימוש ב-Transaction defense עם שילוב של reCAPTCHA בחלק הקדמי של האתר עוזר להגן מפני התקפות של כרטיסי אשראי ועסקאות תרמיתיות. כדי להתחיל לזהות מתקפות, צריך להתקין מפתח reCAPTCHA מבוסס-ניקוד בכל דף בזרימת המשתמשים בתשלום. הכוונה היא לממשק שבו המשתמש בודק את עגלת הקניות, בוחר את אמצעי התשלום ומשלים את הרכישה. אחרי שהמשתמש בוחר אפשרות בכל שלב, שולחים קריאה ל-grecaptcha.enterprise.execute() כדי ליצור אסימון. במאמר התקנת מפתחות מבוססי-ניקוד מוסבר איך להתקין מפתחות מבוססי-ניקוד ואיך להתקשר אל execute().

בדוגמה הבאה מוצג אופן השילוב של מפתח מבוסס-ניקוד באירוע של עסקת כרטיס אשראי:

function submitForm() {
  grecaptcha.enterprise.ready(function() {
    grecaptcha.enterprise.execute(
      'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) {
       document.getElementById("token").value = token;
       document.getElementByID("paymentForm").submit();
    });
  });
}
<form id="paymentForm" action="?" method="POST">
  Total: $1.99
  Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/>
  <input type="hidden" id="token" name="recaptcha_token"/>
  <button onclick="submitForm()">Purchase</button>
</form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>

אפשר להתנסות עם הקוד הזה ב-JSFiddle בלחיצה על הסמל <> בפינה השמאלית העליונה של חלון הקוד.

<html>
  <head>
    <title>Protected Payment</title>
    <script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
    <script>
    function submitForm() {
      grecaptcha.enterprise.ready(function() {
        grecaptcha.enterprise.execute(
          'reCAPTCHA_site_key', {action: 'purchase'}).then(function(token) {
           document.getElementById("token").value = token;
           document.getElementByID("paymentForm").submit();
        });
      });
    }
    </script>
  </head>
  <body>
    <form id="paymentForm" action="?" method="POST">
      Total: $1.99
      Credit Card Number: <input name="cc-number" id="cc-number" autocomplete="cc-number"><br/>
      <input type="hidden" id="token" name="recaptcha_token"/>
      <button onclick="submitForm()">Purchase</button>
    </form>
  </body>
</html>

שילוב בחלק הקדמי של האתר – יצירת הערכות עם נתוני עסקאות

כדי לקבל פסקי דין לגבי הונאות בתשלומים, צריך ליצור הערכות עם נתוני עסקאות באמצעות השדות הנוספים בשיטה projects.assessments.create.

השדות שחובה להוסיף לשילוב הם payment_method,‏ card_bin ו-card_last_four. כדי לשפר את איכות הזיהוי, מומלץ להוסיף שדות אופציונליים כמו email,‏ phone_number ו-billing_address.

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

{
  "event": {
    "token": "YOUR_TOKEN",
    "site_key": "KEY_ID",
    "expected_action": "YOUR_CHECKOUT_ACTION_NAME",
    "transaction_data": {
            "transaction_id": "txid-1234567890",
            "payment_method": "credit-card",
            "card_bin": "411111",
            "card_last_four": "1234",
            "currency_code": "USD",
            "value": 39.98,
            "user": {
                "email": "someEmailAddress@example.com"
            },
            "billing_address": {
                "recipient": "name1 name2",
                "address": [
                    "123 Street Name",
                    "Apt 1"
                ],
                "locality": "Sunnyvale",
                "administrative_area": "CA",
                "region_code": "USA",
                "postal_code": "123456"
            }
        }
    }
}

כדי לשפר את איכות הניקוד, מומלץ לשלוח גם אותות נוספים.

במאמר יצירת הערכה לאתר מוסבר איך ליצור הערכות. יכול להיות שהגנה על עסקאות תשתמש בטוקנים גדולים יותר, לכן חשוב לוודא שהבקשה נשלחת בבקשת POST ולא בבקשת GET, ושהיא נשלחת בגוף הבקשה ולא בכותרת.

שילוב רק של API – יצירת הערכות עם נתוני עסקאות

כדי לקבל פסקי דין לגבי הונאות בתשלומים, צריך ליצור הערכות עם נתוני עסקאות באמצעות השדות הנוספים בשיטה projects.assessments.create.

שילוב של reCAPTCHA API בלבד יוצר הערכת הגנה על עסקאות באמצעות נתוני העסקאות שאתם מספקים בלבד, ולכן חובה לספק לפחות את הנתונים הבאים:

  1. כתובת לחיוב regionCode וpostalCode.
  2. נתוני עסקאות paymentMethod.
  3. אחת מהאפשרויות הבאות:
{
  "event": {
    "site_key": "KEY_ID",
    "expected_action": "YOUR_CHECKOUT_ACTION_NAME",
    "transaction_data": {
            "transaction_id": "txid-1234567890",
            "payment_method": "credit-card",
            "card_bin": "411111",
            "card_last_four": "1234",
            "currency_code": "USD",
            "value": 39.98,
            "user": {
                "account_id": "abcde12345",
                "email": "someEmailAddress@example.com",
                "phone_number": "+18005550175",
            },
            "billing_address": {
                "recipient": "name1 name2",
                "address": [
                    "123 Street Name",
                    "Apt 1"
                ],
                "locality": "Sunnyvale",
                "administrative_area": "CA",
                "region_code": "USA",
                "postal_code": "123456"
            }
        }
    }
}

כדי לשפר את איכות הניקוד, מומלץ לספק כמה שיותר נתונים, וגם לשלוח אותות נוספים.

פירוש ההערכות

אחרי שתתחילו לשלוח את נתוני העסקאות, תקבלו הערכות כתגובת JSON עם הרכיב fraudPreventionAssessment ב-riskAnalysis.

הדוגמה הבאה היא תשובה לדוגמה:

{
  "event": {....
  ....
  }
  .....
  ....
  ....
"fraudPreventionAssessment": {
    "transactionRisk": 0.9,
    "riskReasons": HIGH_TRANSACTION_VELOCITY
}
}

התשובה שתקבלו כוללת ניקוד וקודי סיבה, בכל מקום שרלוונטי. ככל שהציון גבוה יותר, כך גדל הסיכוי שהעסקה היא הונאה ומסוכנת. ככל שהציון נמוך יותר, כך גדל הסיכוי שהעסקה לגיטימית. לדוגמה, ציון של 0.9 מצביע על כך שהעסקה כנראה שמקורה בתרמית ומסוכנת, וציון של 0.1 מצביע על כך שהעסקה כנראה לגיטימית.

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

כל קטגוריית ניקוד מכוילת לשיעור מקסימלי של תוצאות חיוביות שגויות, שמייצג את החלק המקסימלי של משתמשים לגיטימיים שעשויים להיתקל בחיכוך נוסף. הסף שתצטרכו לבחור תלוי בצרכים העסקיים שלכם. הנה כמה דוגמאות לשימוש בציון transactionRisk:

סובלנות לסיכון ערך סף מומלץ שיעור מקסימלי של תוצאות חיוביות שגויות דוגמה לשימוש
נמוכה ‫0.5 ‫5% דרישה לאימות נוסף, כמו אימות דו-שלבי, לפני אישור העסקה
בינוני 0.7 ‫1% שליחת העסקה לבדיקה ידנית
גבוהה 0.9 0.1% דחיית העסקה

המאמרים הבאים