Halaman ini menjelaskan cara melindungi transaksi pembayaran secara efektif dari serangan, seperti carding, penipuan instrumen yang dicuri, dan penipuan pembayaran pengambilalihan akun dengan menggunakan Transaction Defense.
Transaction Defense membantu Anda melindungi transaksi pembayaran dengan mengidentifikasi serangan manual yang ditargetkan dan upaya penipuan berskala besar. Alat ini secara otomatis melatih model perilaku dan transaksi untuk mengidentifikasi peristiwa yang kemungkinan bersifat menipu dan dapat mengakibatkan sengketa atau penagihan balik jika diterima.
Sebagai bagian dari model ini, Transaction Defense memeriksa sinyal transaksi untuk mendeteksi serangan carding dan penagihan balik. Misalnya, serangkaian upaya pembelian dengan harga rendah mungkin mengindikasikan serangan carding. Dalam respons, Anda akan menerima skor penilaian risiko untuk berbagai jenis penipuan, yang dapat digunakan untuk mengirim transaksi ke peninjauan manual, atau langsung memblokir transaksi yang cukup mencurigakan.
Untuk menyiapkan Transaction Defense, Anda harus menyelesaikan langkah-langkah berikut:
Kirim permintaan
create assessmentAPI 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 Penjelasan tambahan (misalnya,HIGH_TRANSACTION_VELOCITY), jika berlaku.Tentukan tindakan berikutnya untuk pengguna Anda berdasarkan skor.
Anda dapat memilih untuk mengizinkan transaksi, meminta verifikasi tambahan, meneruskan ke peninjauan manual, atau memblokir transaksi.
Sebelum memulai
Jika Anda baru menggunakan reCAPTCHA, lakukan hal berikut:
Jika Anda merencanakan Integrasi Frontend, pastikan lingkungan Anda mendukung token yang lebih besar dari 8 kB, karena Transaction Defense mungkin menggunakan token yang lebih besar.
Mengaktifkan Transaction Defense
Di konsol Google Cloud , buka halaman reCAPTCHA.
Pastikan nama project Anda muncul di pemilih resource.
Jika tidak melihat nama project, klik pemilih resource, lalu pilih project Anda.
Klik Setelan.
Di panel Transaction defense, klik Configure.
Klik tombol Aktifkan, lalu klik Simpan.
Memilih metode integrasi
Pilih Integrasi Frontend untuk otomatis menggabungkan sinyal dari perangkat frontend, atau Integrasi Khusus API jika Anda memilih untuk tidak 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 keputusan hanya menggunakan data transaksi yang diperlukan dan tidak memerlukan token ini.
Integrasi Frontend - Menginstal reCAPTCHA di situs Anda
Menggunakan Transaction Defense 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"></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"></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 penilaian penipuan pembayaran, buat penilaian dengan Data Transaksi menggunakan kolom tambahan dalam metode projects.assessments.create.
Untuk menerima penilaian Transaction Defense dengan integrasi frontend, berikan setidaknya salah satu kolom ID wajib berikut:
- Data Transaksi
cardBindancardLastFour. - Pengguna
accountId - Pengguna
email - Pengguna
phoneNumber
Untuk meningkatkan kualitas deteksi, sebaiknya tambahkan kolom opsional seperti payment_method, email, phone_number, dan 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" } } } }
Untuk meningkatkan kualitas skor, sebaiknya kirimkan juga sinyal tambahan.
Untuk mempelajari cara membuat penilaian, lihat Membuat penilaian untuk situs Anda. Transaction Defense mungkin menggunakan token yang lebih besar, jadi pastikan permintaan dikirim dalam permintaan POST, bukan GET; dan dalam isi, bukan di header.
Integrasi Khusus API - Membuat penilaian dengan data transaksi
Untuk menerima keputusan terkait penipuan pembayaran, buat penilaian dengan Data Transaksi menggunakan kolom tambahan dalam metode projects.assessments.create.
Karena Integrasi reCAPTCHA API-only menghasilkan Penilaian Transaction Defense hanya menggunakan Data Transaksi yang Anda berikan, Anda harus setidaknya memberikan hal berikut:
- Alamat Penagihan
regionCodedanpostalCode. - Data Transaksi
paymentMethod. - Salah satu dari berikut ini:
- Data Transaksi
cardBindancardLastFour. - Pengguna
accountId - Pengguna
email - Pengguna
phoneNumber
- Data Transaksi
{ "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" } } } }
Untuk meningkatkan kualitas skor, sebaiknya berikan input sebanyak mungkin, dan kirimkan juga sinyal tambahan.
Menafsirkan penilaian
Setelah mulai mengirim data transaksi, Anda akan menerima penilaian sebagai
respons JSON dengan komponen fraudPreventionAssessment dalam
respons
Assessment.
Contoh berikut adalah contoh respons:
{ "event": {.... .... } ..... .... .... "fraudPreventionAssessment": { "transactionRisk": 0.9, "riskReasons": [ { "reason": "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 tersebut lebih cenderung bersifat menipu dan berisiko, dan skor 0,1 menunjukkan bahwa transaksi tersebut lebih cenderung sah.
Anda bertanggung jawab atas tindakan yang Anda lakukan berdasarkan penilaian.
Untuk integrasi yang paling sederhana, Anda dapat menetapkan nilai minimum pada transactionRisk
untuk berkontribusi pada keputusan Anda. Misalnya, skor ini dapat berkontribusi dalam mengirimkan transaksi yang kemungkinan bersifat menipu ke peninjauan manual atau langsung menolaknya.
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 bahkan dengan mesin deteksi penipuan yang sudah matang.
Setiap bucket skor dikalibrasi ke rasio positif palsu maksimum, yang mewakili proporsi maksimum pengguna sah yang mungkin mengalami hambatan tambahan. Nilai minimum yang perlu Anda pilih bergantung pada kebutuhan bisnis Anda. Berikut adalah beberapa contoh cara menggunakan
skor transactionRisk:
| Toleransi risiko | Nilai minimum yang direkomendasikan | Rasio positif palsu maksimum | Contoh penggunaan |
|---|---|---|---|
| Rendah | 0,5 | 5% | Memerlukan verifikasi tambahan, seperti 2FA, sebelum menerima transaksi |
| Sedang | 0,7 | 1% | Mengirim transaksi ke peninjauan manual |
| Tinggi | 0,9 | 0,1% | Tolak transaksi |
Langkah berikutnya
- Untuk meningkatkan kualitas deteksi penipuan, pelajari sinyal tambahan.
- Untuk memberi anotasi pada penilaian, lihat Memberi anotasi pada penilaian dengan peristiwa transaksi.