帮助中心

搜索

小提示

  osCommerce帮助与支持文档是根据《osCommerce中文高级版》功能编写,原版osCommerce不具备部分功能。

osCommerce 支付模块结构

阅读 1744 次

osCommerce 支付模块分两类:

  • 一种是类似moneyorder 货到付款的的 线下支付方式。
  • 一种是类似Paypal 信用卡等第三方在线支付方式。

支付模块至少包含两个文件:

  • 一个是支付模块 位于 includes/modules/payment/xxx.php
  • 一个是语言包 位于 includes/language/语言/modules/payment/xxx.php

1. 线下付款方式:

线下付款方式一般只显示支付信息 和 在订单邮件中将付款方式发送给客户 编写该类模块可参考系统内置的货到付款方式moneyorder.php

2. 在线付款方式:

在线付款方式一般与第三方支付公司签约,实现:  订单预生成 - 第三方平台付款 -  返回网站(同步/异步对账)该类付款方式可参考系统内置的 Paypal付款方式

类结构如下:

 

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/
 
  class moneyorder { //类名 与 模块核心文件名同
    var $code, $title, $description, $enabled;

// class constructor //类结构
    function moneyorder() {
      global $order;

      $this->code = 'moneyorder';
      $this->title = MODULE_PAYMENT_MONEYORDER_TEXT_TITLE;
      $this->description = MODULE_PAYMENT_MONEYORDER_TEXT_DESCRIPTION;
      $this->sort_order = MODULE_PAYMENT_MONEYORDER_SORT_ORDER;
      $this->enabled = ((MODULE_PAYMENT_MONEYORDER_STATUS == 'True') ? true : false);

      if ((int)MODULE_PAYMENT_MONEYORDER_ORDER_STATUS_ID > 0) {
        $this->order_status = MODULE_PAYMENT_MONEYORDER_ORDER_STATUS_ID;
      }

      if (is_object($order)) $this->update_status();
   
      $this->email_footer = MODULE_PAYMENT_MONEYORDER_TEXT_EMAIL_FOOTER; //付款方式邮件附加信息
    }

// class methods
    function update_status() { //模块状态判断方法
    }

    function javascript_validation() {  //信用卡验证js方法
    }

    function selection() {  //模块选择输出
    }

    function pre_confirmation_check() { //预备检查
    }

    function confirmation() {  //付款方式确认信息
    }

    function process_button() {  //表单编码加密供第三方处理
    }

    function before_process() { //生成订单前的操作
    }

    function after_process() {  //生成订单后的操作
    }

    function get_error() {  //错误调试
      return false; 
    }

    function check() {  //模块检查
    }

    function install() { //模块安装
    }

    function remove() {  //模块删除
    }

    function keys() { //模块变量
    }
  }
?>