如何使用变量修复Woocommerce Payfast错误?

时间:2018-12-11 11:40:00

标签: php woocommerce

The supplied variables are not according to specification:

cancel_url : cancel_url must be a valid URL 
notify_url : notify_url must be a valid URL 
return_url : return_url must be a valid URL

在网上商店中按下“下订单”时,会弹出上述错误,并将其重定向到payfast。我不确定在哪里设置这些变量。

是的,payfast沙箱已禁用。

该站点以前可以正常工作,并且已经进行了交易。由于WooCommerce和WordPress更新,它正在传递这些错误。有人可以帮助我吗?与WooCommerce的联系失败。我是前端开发人员,因此为什么我要使用WordPress。我没有编码PHP的能力,所以如果有人有一些方便的php技巧可以解决此问题,那就太好了!

1 个答案:

答案 0 :(得分:2)

如果提供的URL无效,或者对于本地URL,PayFast会在付款页面上引发此错误。

这些变量在class-wc-gateway-payfast.php函数的generate_payfast_form文件中进行如下设置(我当前的woocommerce-payfast-gateway是 v1.4.9 ):

'return_url' => $this->get_return_url( $order ),
'cancel_url' => $order->get_cancel_order_url(),
'notify_url' => $this->response_url,

如果希望查看哪些URL被发布到https://www.payfast.co.za/eng/process,则可以打开浏览器的“网络”选项卡(开发工具)。通过查看通过其发送的URL的结构,可以帮助您识别问题所在。

如果情况严峻,并且无法从相关支持渠道获得帮助,则可以按如下所示对URL进行硬编码:注意:这是万不得已的方法,不建议使用!

'return_url' => 'https://www.yoursite.com/',
'cancel_url' => 'https://www.yoursite.com/',
'notify_url' => 'https://www.yoursite.com/?wc-api=WC_Gateway_PayFast',

如果您打算对URL进行硬编码,直到问题解决,请记住首先执行PayFast沙盒测试交易,以确保您的重定向URL正常运行,并且订单更新为预期(正确的notify_url)。