Halaman ini menjelaskan cara melindungi transaksi pembayaran secara efektif dari serangan, seperti carding, penipuan instrumen curian, dan penipuan pembayaran pengambilalihan akun dengan menggunakan Pencegahan Penipuan reCAPTCHA Enterprise.
Pencegahan Penipuan reCAPTCHA Enterprise membantu Anda melindungi transaksi pembayaran dengan mengidentifikasi serangan manual yang ditargetkan dan upaya penipuan berskala besar. Solusi ini otomatis melatih model perilaku dan transaksi untuk mengidentifikasi peristiwa yang kemungkinan besar menipu dan dapat menyebabkan sengketa atau penagihan balik jika diterima.
Sebagai bagian dari model ini, reCAPTCHA Enterprise Fraud Prevention memeriksa sinyal transaksi untuk mengaktifkan deteksi penipuan. Misalnya, serangkaian upaya pembelian dengan harga rendah mungkin mengindikasikan serangan carding. Sebagai respons, Anda akan 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 Enterprise, selesaikan langkah-langkah berikut:
Instal reCAPTCHA Enterprise di frontend pembayaran Anda.
Buat penilaian dengan data transaksi.
Menganotasi penilaian dengan peristiwa transaksi.
Menafsirkan respons untuk mengambil tindakan terhadap kemungkinan penipuan.
Sebelum memulai
Tinjau informasi harga untuk reCAPTCHA Enterprise Fraud Prevention.
Pastikan integrasi Anda mendukung token yang lebih besar dari 8 KB. reCAPTCHA Enterprise Fraud Prevention mungkin menggunakan token yang lebih besar, jadi pastikan token tersebut dikirim dalam permintaan POST, bukan GET, dan dalam isinya, bukan di header.
Instal reCAPTCHA Enterprise di frontend pembayaran Anda
Untuk mulai mendeteksi serangan, instal kunci berbasis skor di setiap halaman dalam alur penggunaan pembayaran Anda. Hal ini mencakup antarmuka tempat pengguna meninjau keranjang,
memilih metode pembayaran, dan menyelesaikan pembelian. Setelah pengguna
menentukan 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>
Membuat penilaian dengan data transaksi
Untuk mengaktifkan keputusan penipuan pembayaran, buat penilaian dengan data transaksi menggunakan kolom tambahan dalam metode projects.assessments.create. Agar dapat menggunakan fitur ini, Google harus mengaktifkannya untuk organisasi Anda. Untuk meminta akses ke fitur ini, hubungi kami.
Integrasi yang paling sederhana mencakup ID transaksi, metode pembayaran, mata uang, dan nilai transaksi.
{ "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, } } }
Kolom berikut bersifat opsional, tetapi sebaiknya berikan kolom ini untuk meningkatkan kualitas deteksi penipuan.
{ "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, "shipping_value": 7.99, "shipping_address": { "recipient": "name1 name2", "address": "123 Street Name", "address": "Apt 1", "locality": "Sunnyvale", "administrative_area": "CA", "region_code": "USA", "postal_code": "123456" }, "billing_address": { "recipient": "name1 name2", "address": "123 Street Name", "address": "Apt 1", "locality": "Sunnyvale", "administrative_area": "CA", "region_code": "USA", "postal_code": "123456" }, "user": { "account_id": "abcde12345", "creation_ms": 1650000000000, "email": "user@example.com", "email_verified": true, "phone_number": "+16502530000", "phone_verified" false }, "merchant": { "account_id": "abcde12345", "creation_ms": 1650000000000, "email": "user@example.com", "email_verified": true, "phone_number": "+16502530000", "phone_verified": false }, "items": { "name": "first item", "value": 19.99, "quantity": 1, "merchant_account_id": "abcde12345", }, "items": { "name": "second item", "value": 19.99, "quantity": 1, "merchant_account_id": "abcde12345", }, "gateway_info": { "name": "google", "gateway_response_code": "SUCCESS", "avs_response_code": "Y", "cvv_response_code": "Y", } } } }
Untuk mempelajari cara membuat penilaian, lihat Membuat penilaian untuk situs Anda.
Menganotasi penilaian dengan peristiwa transaksi
Untuk mendapatkan performa terbaik, Pencegahan Penipuan reCAPTCHA Enterprise memerlukan visibilitas ke dalam peristiwa siklus proses pembayaran untuk transaksi. Oleh karena itu, Anda harus mengirim anotasi untuk penilaian yang dibuat dengan data transaksi. Misalnya, Anda harus memberikan informasi transaksi ke reCAPTCHA Enterprise Fraud Prevention sebagai peristiwa transaksi dalam skenario berikut:
Penyedia jasa pembayaran menerima atau menolak transaksi
Penjual memberikan pengembalian dana
Penerbit pembayaran mengajukan pengembalian dana
Untuk mempelajari lebih lanjut cara mengirim anotasi, lihat Menganotasi penilaian.
Sebaiknya Anda membuat permintaan ini secara otomatis sebagai bagian dari logika yang sesuai di sistem Anda saat data tersedia, seperti saat status transaksi berubah.
Setelah Anda membuat penilaian dengan data transaksi yang disertakan,
reCAPTCHA Enterprise Fraud Prevention akan menampilkan hasil dan
assessment_id
. Anotasikan penilaian dengan peristiwa transaksi pada
tahap penting berikut dalam siklus proses pembayaran saat peristiwa tersebut terjadi:
Jenis peristiwa | Deskripsi | Contoh alasan | Contoh nilai |
---|---|---|---|
MERCHANT_APPROVE | MERCHANT_DENY |
Saat Anda memutuskan apakah transaksi akan diizinkan untuk dilanjutkan. | IN_HOUSE |
T/A |
AUTHORIZATION | AUTHORIZATION_DECLINE |
Saat Anda mengirimkan transaksi untuk diproses, dan penerbit kartu memutuskan apakah akan mengizinkan transaksi dilanjutkan atau tidak. | 82 (kode alasan yang berarti bahwa CVV salah) |
T/A |
CHARGEBACK |
Saat transaksi ditagih balik. | Card Reported Stolen |
20 (mewakili penagihan balik sebagian sebesar 20 unit mata uang) |
Bersama dengan jenis peristiwa CHARGEBACK
, sertakan kode alasan penagihan balik yang diberikan oleh penerbit kartu menggunakan kolom reason
. Selain itu, sertakan jumlah uang yang ditagih kembali di kolom value
jika transaksi ditagih balik sebagian.
Dalam kolom reason
peristiwa transaksi, sertakan klarifikasi persyaratan untuk memberikan konteks lebih lanjut tentang alasan peristiwa tersebut, atau berikan kode alasan yang diperoleh langsung dari jaringan pembayaran atau penerbit kartu. Istilah dan kode ini berbeda-beda bergantung pada jenis peristiwanya.
Tabel berikut menentukan daftar lengkap jenis peristiwa transaksi:
Alasan anotasi | Deskripsi |
---|---|
MERCHANT_APPROVE |
Menunjukkan bahwa transaksi disetujui oleh penjual. Alasan
yang menyertainya dapat mencakup istilah seperti IN_HOUSE , ACCERTIFY ,
CYBERSOURCE , atau MANUAL_REVIEW .
|
MERCHANT_DENY |
Menunjukkan bahwa transaksi ditolak dan diselesaikan karena risiko
yang terdeteksi oleh penjual. Alasan yang menyertainya dapat mencakup istilah seperti
IN_HOUSE , ACCERTIFY ,
CYBERSOURCE , atau MANUAL_REVIEW .
|
MANUAL_REVIEW |
Menunjukkan bahwa transaksi sedang dievaluasi oleh manusia, karena adanya kecurigaan atau risiko. |
AUTHORIZATION |
Menunjukkan bahwa upaya otorisasi dengan penerbit kartu berhasil. |
AUTHORIZATION_DECLINE |
Menunjukkan bahwa upaya otorisasi dengan penerbit kartu gagal. Alasan
yang menyertainya dapat mencakup 54 Visa yang menunjukkan bahwa kartu sudah
habis masa berlakunya atau 82 yang menunjukkan bahwa CVV salah.
|
PAYMENT_CAPTURE |
Menunjukkan bahwa transaksi selesai karena dana telah dilunasi. |
PAYMENT_CAPTURE_DECLINE |
Menunjukkan bahwa transaksi tidak dapat diselesaikan karena dana belum dilunasi. |
CANCEL |
Menunjukkan bahwa transaksi dibatalkan. Tentukan alasan pembatalan. Misalnya, INSUFFICIENT_INVENTORY .
|
CHARGEBACK_INQUIRY |
Menunjukkan bahwa penjual telah menerima permintaan penagihan balik karena penipuan untuk transaksi tersebut, yang meminta informasi tambahan sebelum penagihan balik karena penipuan dikeluarkan secara resmi, dan notifikasi penagihan balik resmi dikirimkan. |
CHARGEBACK_ALERT |
Menunjukkan bahwa penjual telah menerima pemberitahuan penagihan balik akibat penipuan untuk transaksi. Proses penyelesaian sengketa tanpa melibatkan jaringan pembayaran dimulai. |
FRAUD_NOTIFICATION |
Menunjukkan bahwa notifikasi penipuan dikeluarkan untuk transaksi tersebut, yang dikirim oleh bank penerbit instrumen pembayaran karena transaksi tersebut tampaknya menipu. Sebaiknya sertakan data TC40 atau SAFE di kolom reason
untuk jenis peristiwa ini. Untuk penagihan balik sebagian, sebaiknya sertakan jumlah dalam kolom value .
|
CHARGEBACK |
Menunjukkan bahwa penjual diberi tahu oleh jaringan pembayaran bahwa
transaksi telah memasuki proses penagihan balik karena penipuan. Contoh kode alasan
mencakup 6005 dan 6041 Discover. Untuk penagihan balik sebagian, sebaiknya sertakan jumlah dalam kolom value .
|
CHARGEBACK_REPRESENTMENT |
Menunjukkan bahwa transaksi telah memasuki proses penagihan balik karena penipuan, dan bahwa penjual telah memilih untuk memasukkan perwakilan. Contoh
alasan mencakup 6005 dan 6041 Discover. Untuk penagihan balik sebagian, sebaiknya sertakan jumlah dalam kolom value .
|
CHARGEBACK_REVERSE |
Menunjukkan bahwa transaksi memiliki penagihan balik penipuan yang
tidak sah dan dibatalkan sebagai akibatnya. Untuk penagihan balik sebagian, sebaiknya sertakan jumlah dalam kolom value .
|
REFUND_REQUEST |
Menunjukkan bahwa penjual telah menerima pengembalian dana untuk transaksi yang
telah selesai. Untuk pengembalian dana sebagian, sebaiknya sertakan jumlah
di kolom value . Contoh alasan: FRAUD .
|
REFUND_DECLINE |
Menunjukkan bahwa penjual telah menerima permintaan pengembalian dana untuk
transaksi ini, tetapi penjual tersebut telah menolaknya. Untuk pengembalian dana sebagian, sebaiknya Anda menyertakan jumlah dalam kolom value . Contoh alasan:
FRAUD .
|
REFUND |
Menunjukkan bahwa transaksi yang telah selesai dikembalikan dananya oleh penjual. Untuk
pengembalian dana sebagian, sebaiknya sertakan jumlah dalam kolom
value . Contoh alasan: PROACTIVE_FRAUD .
|
REFUND_REVERSE |
Menunjukkan bahwa transaksi yang telah selesai dikembalikan dananya oleh penjual, dan
pengembalian dana ini telah dibatalkan. Untuk pengembalian dana sebagian, sebaiknya sertakan
jumlah dalam kolom value .
|
Contoh berikut menunjukkan contoh payload anotasi yang berisi peristiwa transaksi. Untuk mengetahui detail selengkapnya, lihat Menganotasi penilaian.
POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate { "transaction_event": { "event_type": "CHARGEBACK", "reason": "Card Reported Stolen", "value": 20 } }
Menafsirkan penilaian
Setelah mulai mengirim data transaksi, Anda akan melihat
komponen fraudPreventionAssessment
dalam respons riskAnalysis
.
Komponen fraudPreventionAssessment
mencakup skor risiko transaksi, dan
beberapa skor penipuan yang mengidentifikasi berbagai jenis serangan.
Skor transactionRisk
Pencegahan Penipuan reCAPTCHA Enterprise berkisar dari 0,0 hingga 1,0, yang meringkas risiko yang terkait dengan transaksi ini dari komponen di bawah. Skor risiko 0,0 menunjukkan bahwa risikonya rendah dan
transaksi kemungkinan sah, dan 1,0 menunjukkan bahwa risikonya tinggi dan
interaksi kemungkinan bersifat menipu.
Dengan menginstal reCAPTCHA Enterprise Fraud Prevention dan menambahkan
komponen TransactionData
, Anda mendapatkan akses ke nilai cardTestingVerdict
, yang mendeteksi adanya ancaman menggunakan situs Anda untuk menguji daftar instrumen curian
atau informasi brute force. Ketika mereka berhasil, ini mengakibatkan
kerugian bagi bisnis Anda.
Anda juga mendapatkan akses ke nilai behavioralTrustVerdict
, yang menunjukkan
kepercayaan sesi berdasarkan sinyal perilaku di situs Anda dan di seluruh
internet. Skor ini sangat membantu jika Anda menggunakan mesin penipuan yang sudah ada dan ingin mengurangi positif palsu (PP). Karena skor ini mencakup informasi unik dan ortogonal ke deteksi konvensional berdasarkan data transaksi, skor ini efektif untuk menambah keyakinan pada transaksi tertentu yang berisiko atau netral.
Setelah mengirim peristiwa siklus proses termasuk informasi penagihan balik, Anda akan mendapatkan akses ke nilai stolenInstrumentVerdict
. Cara ini mendeteksi serangan bahkan dalam skala yang sangat rendah yang kemungkinan merupakan penipuan berdasarkan sinyal yang dianalisis reCAPTCHA Enterprise pada transaksi dan perilaku pengguna di seluruh jaringan jutaan situs.
Akses ke skor tambahan (risiko instrumen curian, risiko pengujian kartu) diaktifkan setelah peninjauan keamanan. Hubungi tim penjualan kami untuk memulai peninjauan keamanan.
Blok berikut menunjukkan contoh respons dengan nilai transactionRisk
, cardTestingVerdict
, stolenInstrumentVerdict
, dan behavioralTrustVerdict
.
"riskAnalysis": { "score": "BOT_SCORE" } "fraudPreventionAssessment": { "transactionRisk": 0.9, "stolenInstrumentVerdict": { "risk": 0.7 }, "cardTestingVerdict": { "risk": 1.0 } "behavioralTrustVerdict": { "trust": 0.0 } }
Anda bertanggung jawab atas tindakan yang Anda lakukan berdasarkan penilaian.
Untuk integrasi yang paling sederhana, Anda dapat menetapkan nilai minimum pada transactionRisk
level teratas untuk berkontribusi pada keputusan Anda. Misalnya, opsi ini dapat berkontribusi pada pengiriman ke peninjauan manual atau menolak secara langsung kemungkinan transaksi penipuan. Anda juga dapat menggunakan skor ini dalam alur kerja penipuan Anda sendiri, atau sebagai bagian dari aturan dengan sistem yang sudah ada. Karena reCAPTCHA Enterprise memeriksa berbagai sinyal dan memiliki visibilitas perilaku yang berbeda, Anda dapat mengharapkan nilai inkremental bahkan dengan mesin deteksi yang sudah matang.
Langkah selanjutnya
- Untuk mempelajari fitur perlindungan akun pengguna, lihat Fitur perlindungan akun pengguna.