跳到主要内容

随机数 (Nonce)

随机数是用于验证请求来源和意图的数字,以实现安全目的。 您可以阅读更多关于 WordPress 代码库中的随机数 的信息。

需要使用随机数的 API 接口

/cart 接口的 POST 请求以及对所有 /checkout 接口的请求都需要使用随机数才能正常工作。 如果未提供有效的随机数,将返回错误响应,除非您正在使用 购物车令牌 代替。

通过请求发送随机数

随机数包含在请求头中。 创建一个名为 Nonce 的请求头。 API 将会验证此头。

示例:

curl --header "Nonce: 12345" --request GET https://example-store.com/wp-json/wc/store/v1/checkout

在成功发送请求后,将发送一个更新后的 Nonce 头,客户端需要将其存储并更新,以便进行后续请求。

从 WordPress 生成安全随机数

必须使用 wp_create_nonce 函数,并使用键 wc_store_api 来创建随机数。

wp_create_nonce( 'wc_store_api' )

没有其他机制可以用于创建随机数。

开发阶段禁用随机数验证

如果您想在不提供随机数的情况下测试 REST 接口,可以使用以下过滤器:

add_filter( 'woocommerce_store_api_disable_nonce_check', '__return_true' );

如果 woocommerce_store_api_disable_nonce_check 的值为 true,则会绕过随机数验证。

注意:这只应在不重要的安全性的开发环境中进行。 请勿在生产环境启用此功能。