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

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

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

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

כדי להגדיר את "הגנה על עסקאות":

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    מעבר אל reCAPTCHA

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

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

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

  4. בחלונית הגנה על עסקאות, לוחצים על להגדיר.

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

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

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

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

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

שילוב של ממשק קצה – התקנת reCAPTCHA באתר

שימוש ב"הגנה על עסקאות" עם שילוב של 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"></script>

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

<html>
  <head>
    <title>Protected Payment</title>
    <script src="https://www.google.com/recaptcha/enterprise.js"></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>

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

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

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

כדי לשפר את איכות הזיהוי, מומלץ להוסיף שדות אפשרויות כמו payment_method, 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": "US",
                "postal_code": "123456"
            }
        }
    }
}

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

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

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

כדי לקבל החלטות לגבי שימוש לרעה באמצעי תשלום, צריך ליצור הערכות עם נתוני עסקאות באמצעות השדות הנוספים ב-method‏ 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": "US",
                "postal_code": "123456"
            }
        }
    }
}

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

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

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

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

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

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

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

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

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

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