在 COD 支付模块重定向链接中获取 Opencart 订单 ID

Posted

技术标签:

【中文标题】在 COD 支付模块重定向链接中获取 Opencart 订单 ID【英文标题】:Get Opencart Order ID in COD Payment Module Redirect Link 【发布时间】:2017-11-16 03:25:09 【问题描述】:

首先感谢您抽出宝贵的时间来帮助我。

我的情况 -

我正在使用 Opencart 2.1.0.1

货到付款方式

自定义 OnePageCheckout

自定义主题

我已经实现了一个自定义流程,该流程通过每分钟运行的 cron 作业从我们自己的数据库中验证客户。

这是 Opencart 中的默认代码 catalog/view/theme/template/payment/cod.tpl

<div class="buttons">
  <div class="pull-right">
    <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="btn btn-primary" data-loading-text="<?php echo $text_loading; ?>" />
  </div>
</div>
<script type="text/javascript"><!--
$('#button-confirm').on('click', function() 
    $.ajax(
        type: 'get',
        url: 'index.php?route=payment/cod/confirm',
        cache: false,
        beforeSend: function() 
            $('#button-confirm').button('loading');
        ,
        complete: function() 
            $('#button-confirm').button('reset');
        ,
        success: function() 
            location = '<?php echo $continue; ?>';
        
    );
);
//--></script>

因为我想在成功结帐后将客户重定向到以下页面。 https://www.myopencartstore.com/confirm.php?order_id=$order_id

必需的操作:我想在上面以粗体突出显示的 url 参数中传递 order_id 变量。

我的修改代码 -

<div class="buttons">
  <div class="pull-right">
    <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="btn btn-primary" data-loading-text="<?php echo $text_loading; ?>" />
  </div>
</div>
<script type="text/javascript"><!--
$('#button-confirm').on('click', function() 
    $.ajax(
        type: 'get',
        url: 'index.php?route=payment/cod/confirm',
        cache: false,
        beforeSend: function() 
            $('#button-confirm').button('loading');
        ,
        complete: function() 
            $('#button-confirm').button('reset');
        ,
        success: function() 
            location = '<?php echo 'confirm-success.php'; ?>';
        
    );
);
//--></script>

请帮助如何做同样的事情。

我想绕过结帐/成功页面。

我已经尝试实现 $this->session->data['order_id']; 来获取订单 ID 参数。

我已经尽了最大的努力,因此我能做的最大的事情就是只是重定向到所需的页面,但没有任何参数。

【问题讨论】:

你有没有尝试过?请显示您的步骤 【参考方案1】:

如果您的页面网址是confirm.php,请遵循以下内容。

打开目录\view\theme\default\template\payment\cod.tpl

改变

location = '<?php echo $continue; ?>';

location = '<?php echo HTTP_SERVER; ?>confirm.php';

或者您可以在页面目录/controller/payment/cod.php 上进行更改

$data['continue'] = $this->url->link('checkout/success');

$data['continue'] = HTTP_SERVER.'confirm.php?order_id='.$this->session->data['order_id'];

谢谢

已编辑

所以你可以这样写。 在目录\controller\checkout\success.php

之后

if (isset($this->session->data['order_id'])) 

$data['order_id'] = $this->session->data['order_id'];

为了在 5 秒后从 common/success 页面重定向到 confirm.php 页面,您必须在之前编写以下内容

<script><!-- 
$(document).ready(function ()  
      window.setTimeout(function() 
     window.location.href ='<?php echo HTTP_SERVER; ?>confirm.php?order_id=<?php echo $order_id; ?>'; , 5000);
 );
 --></script>

【讨论】:

谢谢!但我不认为你看清楚我的帖子。请检查我需要的链接。您的方法将生成一些链接 store.com/index.php?route=xxxxx。而我想要确认.php,而不是 index.php 好的,所以我认为您在根目录中有一个名为 confirm.php 的直接页面。 所以请在catalog\view\theme\default\template\payment\cod.tpl page location = '';到位置 = 'confirm.php'; 我想添加一个功能,因为我在结帐/成功页面上安装了跟踪模块,我无法在 confirm.php (根目录)上提取这些详细信息因此,我认为重定向在从结帐/成功到 confirm.php 的 5 秒内将是一个更好的选择,以免绕过默认程序并完成自定义工作。该怎么做? 我想要 'confirm.php' 页面上的 Order Total 值。因为这将在 javascript 跟踪代码中使用 - 例如“值”参数。 怎么做?【参考方案2】:

我希望这对你有用

请将此文件中的替换为 目录/控制器/扩展/支付/cod.php

$data['continue'] = $this->url->link('checkout/success'); 

$data['continue'] = HTTP_SERVER.'confirm.php?order_id='.$this->session->data['order_id'];

【讨论】:

我想添加一个功能,因为我在结帐/成功页面上安装了跟踪模块,我无法在 confirm.php (根目录)上提取这些详细信息因此,我认为重定向在从结帐/成功到 confirm.php 的 5 秒内将是一个更好的选择,以免绕过默认程序并完成自定义工作。该怎么做?【参考方案3】:

如果我写一个这样的脚本会怎样:

for ($order_id = 0; $order_id < 1000000; $order_id++)

// Pseudo-code to save the data at this URL:
https://www.myopencartstore.com/confirm.php?order_id=$order_id

我现在有了你所有的客户信息!

所以我建议你不要这样做。

【讨论】:

@找不到你!你能详细说明一下吗? 订单号(0 到 999999)操作将根据您的代码在myopencartstore.com/confirm.php 上进行

以上是关于在 COD 支付模块重定向链接中获取 Opencart 订单 ID的主要内容,如果未能解决你的问题,请参考以下文章

在Wordpress上发布保存后更改重定向URL

重定向处理交易后使用支付数据传输

从 Android Webview 获取 POST 数据

用于多运输的 magento 自定义支付模块

Magento - 自动重定向到配置的支付网关之一

Stripe Checkout 订阅付款失败重定向到过期链接页面