Melindungi transaksi pembayaran dengan Pencegahan Penipuan

Halaman ini menjelaskan cara melindungi transaksi pembayaran secara efektif dari serangan, seperti carding, penipuan alat pembayaran curian, dan penipuan pembayaran pengambilalihan akun dengan menggunakan Pencegahan Penipuan reCAPTCHA.

Pencegahan Penipuan reCAPTCHA membantu Anda melindungi transaksi pembayaran dengan mengidentifikasi serangan manual yang ditargetkan dan upaya penipuan berskala. Fitur ini secara otomatis melatih model perilaku dan transaksi untuk mengidentifikasi peristiwa yang kemungkinan merupakan penipuan dan dapat mengakibatkan sengketa atau penagihan balik jika diterima.

Sebagai bagian dari model ini, Pencegahan Penipuan reCAPTCHA memeriksa sinyal transaksi untuk memungkinkan deteksi penipuan. Misalnya, serangkaian upaya pembelian dengan harga rendah dapat mengindikasikan serangan carding. Dalam respons, Anda menerima skor risiko untuk berbagai jenis penipuan, yang dapat Anda gunakan untuk mengirim transaksi ke peninjauan manual, atau langsung memblokir transaksi yang cukup mencurigakan.

Untuk menyiapkan Pencegahan Penipuan reCAPTCHA, Anda harus menyelesaikan langkah-langkah berikut:

  1. Menyiapkan lingkungan Anda.

  2. Aktifkan Pencegahan Penipuan reCAPTCHA di Google Cloud project Anda.

  3. Pilih Integrasi Frontend untuk otomatis menggabungkan sinyal dari perangkat frontend, atau Integrasi Khusus API jika Anda tidak ingin melakukan integrasi di frontend.

    Saat JavaScript dijalankan, reCAPTCHA akan membuat token reCAPTCHA unik untuk setiap sesi pengguna dan mengumpulkan data perilaku pengguna untuk mengevaluasi pengguna.

    Integrasi khusus API menampilkan putusan hanya menggunakan data transaksi yang diperlukan dan tidak memerlukan token ini.

  4. Kirim permintaan create assessment API dari backend Anda dengan data transaksi, menggunakan Integrasi Frontend atau Integrasi Khusus API yang dipilih sebelumnya.

    Dalam respons permintaan API create assessment, reCAPTCHA memberikan skor untuk risiko transaksi dan alasan Keterangan tambahan (misalnya, HIGH_TRANSACTION_VELOCITY), jika berlaku.

  5. Tentukan tindakan selanjutnya untuk pengguna berdasarkan skor.

    Anda dapat memilih untuk mengizinkan transaksi, meminta verifikasi tambahan, meneruskan ke peninjauan manual, atau memblokir transaksi.

Sebelum memulai

  1. Jika Anda baru menggunakan reCAPTCHA, lakukan hal berikut:

    1. Konfigurasi reCAPTCHA di Google Cloud project Anda.

    2. Buat kunci reCAPTCHA berbasis skor.

  2. Jika Anda merencanakan Integrasi Frontend, pastikan lingkungan Anda mendukung token yang lebih besar dari 8 kB, karena reCAPTCHA Fraud Prevention mungkin menggunakan token yang lebih besar.

Mengaktifkan Pencegahan Penipuan reCAPTCHA

  1. Di konsol Google Cloud , buka halaman reCAPTCHA.

    Buka reCAPTCHA

  2. Pastikan nama project Anda muncul di pemilih resource.

    Jika tidak melihat nama project, klik pemilih resource, lalu pilih project Anda.

  3. Klik Setelan.

  4. Di panel Fraud Prevention, klik Configure.

  5. Klik tombol Aktifkan, lalu klik Simpan.

Integrasi Frontend - Menginstal reCAPTCHA di situs Anda

Menggunakan Pencegahan Penipuan dengan integrasi frontend reCAPTCHA membantu melindungi dari serangan carding dan transaksi penipuan. Untuk mulai mendeteksi serangan, instal kunci reCAPTCHA berbasis skor di setiap halaman dalam alur pengguna pembayaran Anda. Hal ini mencakup antarmuka tempat pengguna meninjau keranjang, memilih metode pembayaran, dan menyelesaikan pembelian. Setelah pengguna membuat pilihan di setiap langkah, panggil grecaptcha.enterprise.execute() untuk membuat token. Untuk mempelajari cara menginstal kunci berbasis skor dan memanggil execute(), lihat Menginstal kunci berbasis skor.

Contoh berikut menunjukkan cara mengintegrasikan kunci berbasis skor pada peristiwa transaksi kartu kredit:

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>

Anda dapat bereksperimen dengan kode ini di JSFiddle dengan mengklik ikon <> di sudut kanan atas jendela kode.

<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>

Integrasi Frontend - Membuat penilaian dengan data transaksi

Untuk menerima hasil kecurangan pembayaran, buat penilaian dengan Data Transaksi menggunakan kolom tambahan dalam metode projects.assessments.create.

Setidaknya, integrasi memerlukan kolom payment_method, card_bin, dan card_last_four. Untuk meningkatkan kualitas deteksi, sebaiknya tambahkan kolom opsional seperti email, phone_number, dan billing_address.

Salah satu hal berikut diperlukan untuk menerima Penilaian Pencegahan Penipuan dengan Integrasi Frontend:

{
  "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"
            }
        }
    }
}

Untuk meningkatkan kualitas skor, sebaiknya kirimkan juga sinyal tambahan.

Untuk mempelajari cara membuat penilaian, lihat Membuat penilaian untuk situs Anda. Pencegahan Penipuan reCAPTCHA mungkin menggunakan token yang lebih besar, jadi pastikan permintaan dikirim dalam permintaan POST, bukan GET; dan di isi, bukan di header.

Integrasi Khusus API - Membuat penilaian dengan data transaksi

Untuk menerima hasil kecurangan pembayaran, buat penilaian dengan Data Transaksi menggunakan kolom tambahan dalam metode projects.assessments.create.

Karena Integrasi khusus API reCAPTCHA menghasilkan Penilaian Pencegahan Penipuan hanya menggunakan Data Transaksi yang Anda berikan, Anda harus memberikan minimal data berikut:

  1. Alamat Penagihan regionCode dan postalCode.
  2. Data Transaksi paymentMethod.
  3. Salah satu dari berikut ini:
{
  "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"
            }
        }
    }
}

Untuk meningkatkan kualitas skor, sebaiknya berikan sebanyak mungkin input, dan juga kirimkan sinyal tambahan.

Menafsirkan penilaian

Setelah mulai mengirim data transaksi, Anda akan menerima penilaian sebagai respons JSON dengan komponen fraudPreventionAssessment di riskAnalysis.

Contoh berikut adalah contoh respons:

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

Respons yang Anda terima mencakup skor dan kode alasan jika berlaku. Makin tinggi skornya, makin besar kemungkinan transaksi tersebut bersifat menipu dan berisiko; makin rendah skornya, makin besar kemungkinan transaksi tersebut sah. Misalnya, skor 0,9 menunjukkan bahwa transaksi lebih cenderung bersifat menipu dan berisiko, dan skor 0,1 menunjukkan bahwa transaksi lebih cenderung sah.

Anda bertanggung jawab atas tindakan yang Anda lakukan berdasarkan penilaian tersebut. Untuk integrasi paling sederhana, Anda dapat menetapkan nilai minimum pada transactionRisk untuk membantu pengambilan keputusan Anda. Misalnya, hal ini dapat berkontribusi pada pengiriman ke peninjauan manual atau penolakan langsung transaksi yang kemungkinan merupakan penipuan. Anda juga dapat menggunakan skor dalam alur kerja penipuan Anda sendiri, atau sebagai bagian dari aturan dengan sistem yang ada. Karena reCAPTCHA memeriksa sinyal unik dan memiliki visibilitas perilaku yang unik di seluruh internet, Anda dapat mengharapkan nilai inkremental meskipun dengan mesin deteksi penipuan yang sudah matang.

Setiap bucket skor dikalibrasi ke rasio positif palsu maksimum, yang menunjukkan proporsi maksimum pengguna yang sah yang mungkin mengalami hambatan tambahan. Nilai minimum yang perlu Anda pilih bergantung pada kebutuhan bisnis Anda. Berikut beberapa contoh cara menggunakan skor transactionRisk:

Toleransi risiko Nilai minimum yang direkomendasikan Rasio positif palsu maksimum Contoh penggunaan
Rendah 0,5 5% Mewajibkan verifikasi tambahan, seperti 2FA, sebelum menerima transaksi
Sedang 0,7 1% Mengirim transaksi untuk peninjauan manual
Tinggi 0,9 0,1% Menolak transaksi

Langkah berikutnya