【问题标题】:magento custom payment gateway notificationmagento 自定义支付网关通知
【发布时间】:2013-07-10 09:43:53
【问题描述】:

我正在开发一种自定义付款解决方案,但我一直不知道如何通知 magento 付款被接受或拒绝。

我有一个PaymentController.php 文件,需要输入代码来处理。

支付网关在下方提供HTTP GET 请求。

http://www.websitename.co.uk/mygateway/payment/response?SessionID=&Note=&Tariff=&Status=

  1. SessionID是支付网关分配的唯一ID

  2. 注意是magento生成的orderID

  3. 关税是以便士为单位的订单价格,即 100 便士

  4. Status是支付的状态,大概有10种不同的类型,Status=100是支付成功,Status=200是支付失败

所以可能是http://www.websitename.co.uk/mygateway/payment/response?SessionID=123456&Note=1000051&Tariff=300&Status=100

我不确定如何创建代码来处理此获取请求并计算状态

我需要将代码放在paymentcontroller的这个区域之间

public function responseAction() {
    if($this->getRequest()->isPost()) {

        /*
        /* Your gateway's code to make sure the reponse you
        /* just got is from the gatway and not from some weirdo.
        /* This generally has some checksum or other checks,
        /* and is provided by the gateway.
        /* For now, we assume that the gateway's response is valid
        */

        $validated = true;
        $orderId = '';

        if($validated) {

【问题讨论】:

    标签: php magento magento-1.7 payment-gateway


    【解决方案1】:

    使用Zend_Http_Client 类。

    你会在这个来自 zend 的小教程中找到你需要知道的一切:

    http://framework.zend.com/manual/1.12/de/zend.http.client.html

    一种快速而肮脏的方法是:

    $client = new Zend_Http_Client('http://www.websitename.co.uk/mygateway/payment/response?SessionID=123456&Note=1000051&Tariff=300&Status=100');
    $response = $client->request();
    

    然后检查响应和你的好去。祝你好运!

    【讨论】:

    • 感谢米莎莱斯的帮助。我已经浏览了教程,但对此很陌生,而且有点卡住了。想知道您是否可以根据我上面的代码给我更多指导。
    • 感谢Mischa Leiss,我仍然坚持这一点。那么上面的代码我会放在我的代码中的 if 语句之前吗?但是我如何检查响应并将其设置为动态的,因为 URL 每次都会有不同的注释(订单号)和状态。解决起来可能真的很明显,但我真的坚持这一点,所以如果你能提供更多帮助,我将不胜感激。
    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2017-08-05
    • 2014-06-06
    • 2013-12-07
    • 2016-10-06
    相关资源
    最近更新 更多