Perubahan pada evaluasi aturan Radar custom

Pada akhir Mei 2024, Stripe akan menerapkan perbaikan pada aturan Radar agar lebih mudah dalam memahami dan menangani perilaku ketika nilai atribut tidak ada.

Saat ini, jika Anda menulis aturan seperti Block if :email_domain: != 'notfraud.com' dan :email_domain: was missing, aturan ini tidak akan cocok. Ini terjadi karena Stripe menafsirkan != 'notfraud.com' sebagai atribut yang memiliki nilai eksplisit selain 'notfraud.com', yang tidak dapat dipenuhi jika atribut tidak ada . Sebaliknya, jika Anda menulis aturan serupa seperti Block if NOT(:email_domain: = 'notfraud.com') dan :email_domain: was missing, aturan ini akan cocok. Ini terjadi karena pernyataan bertingkat :email_domain: = 'notfraud.com' akan bernilai salah, yang jika dinegasikan dengan operasi NOT akan bernilai benar.

Namun dengan penafsir baru, kedua aturan tersebut akan menghasilkan aturan yang tidak cocok. Ini terjadi karena setiap perbandingan (misalnya, =, !=, >, <, IN) antara atribut yang tidak ada dan nilai atau atribut statis lainnya (tidak ada atau ada) akan menunjukkan bahwa data tidak ada. Operasi logika (seperti AND, OR, NOT) dengan nilai yang tidak ada juga akan menunjukkan bahwa atribut tidak ada kecuali jika didefinisikan secara eksplisit. Jika aturan menunjukkan nilai tidak ada di seluruh evaluasi, aturan tersebut tidak akan cocok.

Anda dapat mengidentifikasi aturan yang akan terdampak oleh perubahan ini dengan meninjau predikat yang menggunakan negasi NOT dengan atribut bertingkat yang berpotensi tidak ada. Jika Anda ingin mempertahankan perilaku pencocokan yang sama dengan Block if NOT(:email_domain: = 'notfraud.com'), cara melakukannya adalah dengan secara eksplisit mengubah predikat aturan Anda untuk menangani nilai yang tidak ada: Block if is_missing(:email_domain:)OR NOT(:email_domain: = 'notfraud.com'). Jika tidak, aturan Anda akan secara otomatis mengadopsi perilaku yang diperbarui setelah Stripe meluncurkan perubahan pada bulan Mei 2024.

Apakah ini menjawab pertanyaan Anda?