2013年12月16日 星期一

ECSHOP 支付方式(金流)模組

ECSHOP 支付方式(金流)模組,其實並不複雜、反而是各家金流(銀行)的接口真是五花八門,想用的人還要請人撰寫模組,真是勞民傷財啊!所以我還是鼓勵用現成的模組,如綠界金流,他們負責整合多加刷卡銀行,並提供相對金流模組,而且模組的更新也很快,對於使用者可節省很多麻煩...

底下提供的作法只是一個參考,至少需要點PHP基礎,才能針對金流(銀行)的接口正確傳送資料,由於各家金流(銀行)都有一套自己的模式,沒有統一模式,因此應該多做測試...,支付方式(金流)模組一樣有個語言檔和PHP程式檔,語言檔和程式檔的檔案名稱必須一樣,而且是唯一的,不可與其他的支付模組重複...

假設我想建立一個XX銀行的支付方式模組,檔案名稱為 your_pay.php

1、在 languages/zh_tw/shipping 目錄內新增語言檔案,名稱為 your_pay.php
基本內容如下
代碼: [選擇]
<?phpglobal $_LANG;$_LANG['your_pay'] = 'XX 線上金流名稱';$_LANG['your_pay_desc'] = ' XX 線上金流描述';$_LANG['your_pay_account'] = '商店代號或帳號';$_LANG['your_pay_checkcode'] = 'XX 檢查碼或密碼';$_LANG['pay_button'] = '線上信用卡付款';/*
可以加上其他的語言,如:
$_LANG['your_pay_language'] = '付款界面語言';
$_LANG['your_pay_language_desc'] = '出現在付款界面的語言';
$_LANG['your_pay_language_range'][0] = '繁體中文';
$_LANG['your_pay_language_range'][1] = 'English';
*/
?>

2,在 includes/modules/shipping 目錄內新增程式檔案,名稱和語言檔相同 your_pay.php
參考內容如下
代碼: [選擇]
<?php//載入語言檔$payment_lang ROOT_PATH 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/your_pay.php';

if (
file_exists($payment_lang))
{
    global 
$_LANG;

    include_once(
$payment_lang);
}
//模組的基本設定if(isset($set_modules) && $set_modules == TRUE)
{
    
$i = (isset($modules)) ? count($modules) : 0;//模組的代碼必須與檔案同名
    
$modules[$i]['code']    = basename(__FILE__'.php');//模組的描述,來自語言檔
    
$modules[$i]['desc']    = 'your_pay_desc';
  
//模組的版本 
    
$modules[$i]['version'] = '1.0.0';//是否使用貨到付款,是=TRUE、否=FALSE
    
$modules[$i]['cod']     = TRUE;//模組的作者
    
$modules[$i]['author']  = "andy";//模組作者的網站
    
$modules[$i]['website'] = "http://www.we-shop.net";//配送接口需要的參數
    
$modules[$i]['configure'] = array(
        array(
'name' => 'your_pay_account',           'type' => 'text',   'value' => ''),//商店代號或帳號
        
array('name' => 'your_pay_checkcode',         'type' => 'text',   'value' => ''),//XX 檢查碼或密碼
/*外加選項
array('name' => 'your_pay_language',          'type' => 'select',    'value' => '0')// 付款界面語言
*/
    
);
    return;
}
//模組的類與檔案同名class your_pay

2013年12月15日 星期日

ECSHOP 自訂配送方式模組 (轉載自 WE-SHOP)



ECSHOP 自訂配送方式模組
« 於: 十二月 02, 2013, 11:38:07 上午 »
ECSHOP 的配送方式模組都包含一個語言檔和PHP 程式檔,語言檔和程式檔的檔案名稱必須一樣,而且是唯一的,不可與其他的配送模組重複,大部份情況下,你只須修改配送方式模組的標題和描述,即可成為自己的配送方式模組,但有的人想要製作真正屬於自己的模組,可以這麼做...

假設我想建立一個XX快遞的配送方式模組,檔案名稱為 my_shipping.php
1,languages/zh_tw/shipping 目錄內新增語言檔案,名稱為 my_shipping.php
基本的內容如下
代碼: [選擇]
<?php
$_LANG
['my_shipping']          = 'XX快遞';//配送方式模組名稱,顯示在前後台的配送方式$_LANG['my_shipping_desc']     = 'XX快遞配送方式的詳細描述';$_LANG['base_fee']      = '基本費用:';?>

2,includes/modules/shipping 目錄內新增程式檔案,名稱和語言檔相同 my_shipping.php
內容如下
代碼: [選擇]
<?php//載入語言檔$shipping_lang ROOT_PATH.'languages/' .$GLOBALS['_CFG']['lang']. '/shipping/my_shipping.php';
if (
file_exists($shipping_lang))
{
    global 
$_LANG;
    include_once(
$shipping_lang);
}    
//模組的基本設定if(isset($set_modules) && $set_modules == TRUE)
{
    
$i = (isset($modules)) ? count($modules) : 0;//模組的代碼必須與檔案同名
    
$modules[$i]['code']    = "my_shipping";
  
//模組的版本 
    
$modules[$i]['version'] = '1.0.0';//模組的描述,來自語言檔
    
$modules[$i]['desc']    = 'my_shipping_desc';//是否使用貨到付款,是=TRUE、否=FALSE
    
$modules[$i]['cod']     = TRUE;//模組的作者
    
$modules[$i]['author']  = "andy";//模組作者的網站
    
$modules[$i]['website'] = "http://www.we-shop.net";//配送接口需要的參數
    
$modules[$i]['configure'] = array(
                                        array(
'name' => 'base_fee',     'value'=>100),
                                );
    return;
}
//模組的類與檔案同名class my_shipping{
    var 
$configure;//構造函數,與類同名
    
function my_shipping($cfg=array())
    {
        foreach (
$cfg AS $key=>$val)
        {
            
$this->configure[$val['name']] = $val['value'];
        }
    }
//計算運費
    
function calculate()
    {
        
$cart cart_weight_price();        // 取得商品總重量以及總金額
        
if ($this->configure['free_money'] > && $cart['amount'] >= $this->configure['free_money'])
        {
            return 
0;//免運費
        
}        else        {
            return 
$this->configure['base_fee'];//基本運費
        
}
    }
//查詢出貨狀態,顯示在前台的出貨查詢
    
function query($invoice_sn)
    {
        
$form_str '出貨查詢的表單或連結,$invoice_sn代表出貨單號';
        return 
$form_str;
    }
};
?>
這樣就能建立一個基本的配送方式模組,基本模組只能計算一般運費,也就是不管買多少運費都一樣,適合小型商品,若是大型商品可能需要以重量或是件數計算,方式會比較複雜些...