【问题标题】:multiple http POST in magento extensionmagento 扩展中的多个 http POST
【发布时间】:2012-09-10 12:41:11
【问题描述】:

我正在为 magento 创建一个支付扩展程序,并且我有一个使用 3 个通信步骤的 API。即我发送一个HTTP Post,从网关接收信息,插入客户信息,实现另一个HTTP POST,最后在生成客户端后选择包裹数量,实现一个最终的HTTP POST,确认交易。

我已经创建了我的付款扩展程序,但是如果付款方式允许我提交一个,那么这三个 HTTP 如何发布。由于上述原因,我不能创建一个包含所有详细信息的单个 http 帖子,具体取决于网关。

为了规避这一点,我正在执行 HTTP POST Js 并且只运行 php 扩展中的最后一个 HTTP POST。但这似乎非常不安全且非常非传统的 magento 开发,是一个不合适的解决方案。

有更好的想法吗?

【问题讨论】:

    标签: php ajax magento http-post payment-gateway


    【解决方案1】:

    连续请求可以使用phpcURL解决方案。

    Magento 有它自己的 curl 适配器 - Varien_Http_Adapter_Curl,如果你想使用它。

    这是一个使用它的例子:

    $curlAdapter = new Varien_Http_Adapter_Curl();
    $curlAdapter->connect(your_host[, opt_port, opt_secure]);
    $curlAdapter->write(Zend_Http_Client::POST, Zend_Uri_Http $url, [opt_http_ver, opt_headers, opt_body]);
    $result = $curlAdapter->read();
    

    opt_body 是您的帖子字段

    【讨论】:

    • 感谢您的回复。但是我应该如何更新表格?根据我的扩展中 HTTP Post 的响应,我看不到如何在我的模块前面使用 Ajax 更改块。至关重要的是,用户可以看到结果,选择一些作为 HTTP 响应 Post 一部分的选项。有没有办法做到这一点?
    • 为了确保您的请求安全,您应该只使用 AJAX 请求来触发模块的某些控制器操作。整个网关请求逻辑应该由 cURL 管理。例如 - 您将带有付款表格的 AJAX 发送到您的控制器(your_payment_method/process)。然后在控制器内部,您使用 cURL 向您的支付网关发出所有 3 个请求,之后您将所需的交易信息存储在 DB 中,并仅将前端数据返回给 AJAX 请求:如 result=1(或 error_message)。
    猜你喜欢
    • 1970-01-01
    • 2014-11-24
    • 2012-03-23
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多