二次开发Opencart增加支付方式

在这里插入图片描述
电商网站一般都对应了很多的支付方式。例如微信支付、支付宝支付、银联支付。
Opencart新增支付方式是比较容易的,可以通过插件很方便的扩展支付方式。
以下是按照过程,假设安装pangxieke_payment这种支付方式
1.将文件放在网站根目录
前台文件

技术二次开发QQ
/catalog/controller/payment/pangxieke_payment.php
/catalog/language/engish/payment/pangxieke_payment.php
/catalog/model/payment/pangxieke_payment.php
/view/theme/default/template/payment/pangxieke_payment.tpl

后台文件

/admin/controller/payment/pangxieke_payment.php
/admin/language/engish/payment/pangxieke_payment.php
/view/theme/default/template/payment/pangxieke_payment.tpl

2.到后台安装插件
路径:扩展功能/支付管理
找到对应的pangxieke_payment 点击install,会向extension表写入支付方式
配置相关参数:key等,及网站支付状态

3.选择支付方式并调用
在支付页面,选择支付方式页,会查询model/payment下所有的安装并开启的支付方式
原理:
1.选择支付方式时,会ajax加载catalog/checkout/payment_method.php
$results = $this->model_extension_extension->getExtensions(‘payment’);//查询安装的支付模块

 
foreach ($results as $result) {
     
    if ($this->config->get($result['code'] . '_status')) {//支付开启状态
         
        $this->load->model('payment/' . $result['code']);
 
        //在已经开启支付方式中,还可以判断当前订单地址是否使用
        $method = $this->{'model_payment_' . $result['code']}->getMethod($this->session->data['payment_address'], $total);
 
        if ($method) {
            if ($recurring) {
                if (method_exists($this->{'model_payment_' . $result['code']}, 'recurringPayments') && $this->{'model_payment_' . $result['code']}->recurringPayments()) {
                    $method_data[$result['code']] = $method;
                }
            } else {
                $method_data[$result['code']] = $method;
            }
        }
    }
}

model/extension/extension.php文件

class ModelExtensionExtension extends Model {
    function getExtensions($type) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "extension WHERE `type` = '" . $this->db->escape($type) . "'");
        return $query->rows;
    }
}

1、创建订单后,支付时,跳转到选中的支付方式
对应文件catalog/checkout/done.php

$data['payment'] = $this->load->controller('payment/' . $this->session->data['payment_method']['code']);

2.加载支付方式对应的index方法,通过各种内嵌,或者跳转等各种方式,展示支付页面

3.用户填写信用卡等信息,发起支付。

4.支付公司通过notice地址,异步返回信息

5.接收通知,处理订单状态。页面作跳转,跳转到支付成功页面。

二次开发 技术交流 QQ扫一扫

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linlinlove2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值