【问题标题】:Postback and Return URL in OpencartOpencart 中的回发和返回 URL
【发布时间】:2014-06-10 11:07:16
【问题描述】:

我需要有关在 Opencart 上查找/配置回发和返回 URL 的帮助。我已经成功集成了 Dragonpay Payment Gateway API。

但是,我需要知道回发和返回 URL,以便他们可以在他们的系统上进行配置。我如何知道回发和返回 URL?

    public function callback() {
    if (isset($this->request->get['txnid'])) {
        $order_id = $this->request->get['txnid'];
    } else {
        $order_id = 0;
    }
    $this->load->model('checkout/order');
    $merchantid = $this->config->get('dragonpay_email');
    $ref_no = (isset($this->request->get['refno']))?$this->request->get['refno']:'';
    $status = (isset($this->request->get['status']))?$this->request->get['status']:'';
    $result = (isset($this->request->get['message']))?$this->request->get['message']:'';
    $passwd = $this->config->get('dragonpay_pwd');
    $rdigest_str = "$order_id:$ref_no:$status:$result:$passwd";
    $chk_rdigest = sha1($rdigest_str);      
    $order_info = $this->model_checkout_order->getOrder($order_id);

    if ($order_info && isset($this->request->get['digest']) && $chk_rdigest==$this->request->get['digest']) {

        if (isset($this->request->get['status'])&&strtoupper($this->request->get['status'])=="S") {
            $order_status_id = $this->config->get('config_order_status_id');
            switch(strtoupper($result)) {
                case 'SUCESS':
                    $order_status_id = $this->config->get('dragonpay_completed_status_id');
                    break;
                case 'FAILURE':
                    $order_status_id = $this->config->get('dragonpay_failed_status_id');
                    break;
                case 'PENDING':
                    $order_status_id = $this->config->get('dragonpay_pending_status_id');
                    break;

            }
            if (!$order_info['order_status_id']) {
                $this->model_checkout_order->confirm($order_id, $order_status_id);
            } else {
                $this->model_checkout_order->update($order_id, $order_status_id);
            }
        } else {
            $this->model_checkout_order->confirm($order_id, $this->config->get('config_order_status_id'));
        }
    }
    $this->redirect($this->url->link('checkout/success', '', 'SSL'));
}

提前致谢!

【问题讨论】:

    标签: php api opencart payment-gateway


    【解决方案1】:

    回发和返回 URL 是您的控制器和操作等待被访问并对在那里发布或查询的数据执行某些操作的地方。通常是这样的:

    1. 您开始支付交易,这意味着您准备好要发送的数据、加密它们并将它们发布/查询到支付网关 URL
    2. 在用户完成支付(甚至取消支付或出现其他错误)后,支付网关将用户重定向回特定 URL
      • 通常是 成功 URL 和 错误 URL
    3. 在成功的情况下,URL 可能是 http://www.yourdomain.com/index.php?route=payment/yourpaygate/success - 付款门在这里发送数据,以便在您的商店中您可以将订单设置为已付款
    4. 如果出现错误,URL 可能是http://www.yourdomain.com/index.php?route=payment/yourpaygate/fail - 在这里您知道付款尚未完成,可以将订单设置为待处理、已取消等。

    因此,您创建/定义这些 URL,然后将它们提供给支付网关提供商。

    【讨论】:

    • 嗨 shadyyx,感谢您的回复。我实际上想通了,我只是意识到他们需要在支付网关提供商的后端设置回发网址,以使回发/回发网址起作用。谢谢回复!我非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 2012-03-26
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 2018-05-26
    相关资源
    最近更新 更多