【问题标题】:WooCommerce custom payment gateway integration not doing POSTWooCommerce 自定义支付网关集成不执行 POST
【发布时间】:2014-10-08 01:46:25
【问题描述】:

我想知道你是否可以帮助我。我正在开发与 WooCommerce 的自定义支付网关集成,但我现在陷入困境。当我点击付款时,我在 Chrome 控制台中收到 500 Internal Server 错误,并且卡在收据页面中。

你可以在这里查看我目前得到的代码

https://github.com/tora-soft/visanet-uy-payment-gateway/blob/master/visanet-uy-payment-gateway.php

它应该生成一个 html 表单并向支付网关发送 POST,用户将在其中输入他/她的 CC 详细信息,然后返回。 现在可以使用了

8 月 15 日更新

现在帖子正在运行,但是当从支付网关返回时,它会登陆默认结帐页面并且没有处理结果。

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 错误日志说明了什么?
  • @Anand 我使用 godaddy 共享主机,php 错误日志中没有任何内容。我已经设置了插件以在运行每个函数时保存一些日志,并且由于某种原因没有执行receipt_page,这是生成表单并发布帖子的那个,即使我已经添加到操作中。
  • @Anand 抱歉,我不小心删除了这个问题。现在 POST 正在工作,但回来时没有处理付款。错误日志中没有任何内容。
  • 您能否确认您的服务器上是否启用了 OpenSSL 扩展?我下载了您的代码并进行了自动重定向,但由于我没有私钥,我无法进一步测试它。
  • @Anand 它已启用,但不使用 443 进行交易。我使用的是标准端口 80。如果我在 Google Chrome 上检查网络并查看标头,我会在返回商店时从服务器正确收到 POST 响应,但商店没有处理结果。

标签: php wordpress woocommerce payment-gateway


【解决方案1】:

@Federico 您不应依赖用户按“返回网站”来接收付款响应负载。您应该依靠从他们的后端到您的后端的 IPN 响应谈话。您的支付提供商告诉用户支付成功并且用户关闭浏览器。

第 1 步。将用户重定向到 VisaNetUY 时,使其返回到感谢 URL。

$return_url = $this->get_return_url($order);

第 2 步。将此 URL 提供给您的支付网关,以便在交易获得批准时通知您的网站。 (有时称为 webhook 或 ipn 响应)

http://myurl.com/?wc-api=WC_VisaNetUY

第 3 步。您需要删除此行。

add_action('woocommerce_thankyou_' . $this->id, array( $this, 'check_response'  ));

第 4 步,改用这一行:

add_action('woocommerce_api_wc_visanetuy', array($this, 'check_response') ); 
//the WC_VisaNetUY from step2 url gets converted to lowercase by wordpress and appended to woocommerce_api_, and if it matches then it calls your function name, in this case it calls your 'check_response', but you could have put any function name here instead of check_reponse in fact some people call it handle_callback or check_ipn_response. 

第 5 步。不要调用 $order->reduce_order_stock(),因为 $order->payment_complete() 已经为您减少库存和更改状态。

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 2017-08-05
    • 2014-06-06
    • 2017-07-23
    • 2013-07-18
    • 2023-03-03
    • 2016-08-20
    • 2017-04-04
    • 2016-11-18
    相关资源
    最近更新 更多