Mengapakah saya mendapat ralat nonce tidak sah?

Terakhir dikemas kini: 31 Mac 2025

Ralat EAPI:Invalid nonce menunjukkan bahawa permintaan API diterima dengan nilai nonce yang berulang atau lebih rendah daripada yang dijangkakan.

Memandangkan nilai nonce mestilah unik dan mesti meningkat dengan setiap permintaan, anda mungkin menghadapi ralat apabila cuba membuat permintaan serentak, atau permintaan berturut-turut dengan pantas, atau apabila cuba menggunakan satu kunci API untuk berbilang peranti/aplikasi/bot.

Sebagai contoh, dua permintaan API serentak mungkin tidak tiba dalam susunan yang dimaksudkan, dan jika permintaan kedua (dengan nonce yang lebih tinggi) tiba sebelum permintaan pertama (dengan nonce yang lebih rendah), permintaan pertama akan ditolak apabila ia akhirnya tiba.

Memandangkan ralat nonce tidak sah akan menyebabkan permintaan API anda gagal (contohnya, pesanan anda tidak ditempatkan), ralat nonce tidak sah tidak seharusnya diabaikan begitu sahaja, tetapi harus diperbetulkan dengan menambah baik algoritma penciptaan nonce (lihat beberapa penyelesaian di bawah).

Penyelesaian

Beberapa penyelesaian yang berpotensi untuk ralat nonce tidak sah adalah seperti berikut:

  1. 1

    Cipta berbilang kunci API dan gunakan kunci yang berbeza untuk setiap permintaan serentak, setiap peranti/aplikasi, setiap bot dagangan, dsb. Setiap kunci API mempunyai nilai nonce berasingan sendiri, jadi susunan permintaan API tiba tidak lagi menjadi masalah.

  2. 2

    Tingkatkan resolusi nonce bagi membenarkan permintaan tambahan dalam tempoh masa yang sama (contohnya, meningkatkan resolusi nonce daripada milisaat kepada persepuluh milisaat).

  3. 3

    Tingkatkan/luaskan tetingkap nonce untuk kunci API anda bagi menyediakan tempoh masa yang singkat di mana nilai nonce tidak sah tidak akan menyebabkan ralat. Ambil perhatian bahawa penyelesaian ini hanya boleh digunakan untuk mengatasi isu rangkaian, bukan sebagai cara untuk mengabaikan ralat nonce tidak sah sepenuhnya.

Perlu bantuan lebih lanjut?