Php 如果在您的URL中手动更改订单密钥,则显示错误
我已经开发了一个网页,并集成了Cc Avenue gateway用于支付,目前运行良好 我的问题是,银行客户成功付款后,会被重定向到“谢谢”页面,该页面将包含订单号、日期、客户详细信息等详细信息。URL类似于:Php 如果在您的URL中手动更改订单密钥,则显示错误,php,wordpress,woocommerce,key,orders,Php,Wordpress,Woocommerce,Key,Orders,我已经开发了一个网页,并集成了Cc Avenue gateway用于支付,目前运行良好 我的问题是,银行客户成功付款后,会被重定向到“谢谢”页面,该页面将包含订单号、日期、客户详细信息等详细信息。URL类似于:https://mysite/checkout/order-received/785/?key=wc_order_5b909f1966e92 如果我手动将key=wc\u order\u 5b909f1966e92更改为key=wc\u order\u 5b909f1966e81则“谢谢”
https://mysite/checkout/order-received/785/?key=wc_order_5b909f1966e92
如果我手动将key=wc\u order\u 5b909f1966e92
更改为key=wc\u order\u 5b909f1966e81
则“谢谢”页面上会显示错误,如“无效订单”。相反,它显示“谢谢。您的订单已收到。”页面上没有任何订单详细信息
更换钥匙前:
更换钥匙后:
以下功能将检查订单密钥的有效性。如果订单键不匹配,它将显示一个自定义错误通知(如果需要,还可以选择重定向到shop页面): 代码进入活动子主题(或活动主题)的function.php文件。测试和工作 使用可选的重定向到商店页面:
你能在什么地方加上相关的代码吗。这可能会让你更容易得到帮助?我正在使用woocommerce的功能和CC avenue payment gate way,我还没有为此编写任何代码。我的银行网关在对我的we站点进行审计时提出了一个问题(安全威胁)。请查看以下银行反馈“测试发现一个高风险漏洞(即篡改量)根据测试用例打开非常感谢。正是我需要的,它解决了我的问题
add_action( 'template_redirect', 'check_thankyou_order_key' );
function check_thankyou_order_key() {
if( is_wc_endpoint_url('order-received') && isset($_GET['key']) ) {
global $wp;
$order_id = absint( $wp->query_vars['order-received'] );
$order = wc_get_order( $order_id );
if( $order->get_order_key() != wc_clean($_GET['key']) ){
// Display a custom error notice
wc_add_notice( __('Oups! The order key is invalid…', 'woocommerce'), 'error');
// Optionally redirect to shop page (uncomment code below)
// wp_redirect( get_permalink( wc_get_page_id( 'shop' ) ) );
// exit();
}
}
}