<?php
/**
* ECSHOP 支付宝插件
* ============================================================================
* * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。
* 网站地址: http://www.ecshop.co;
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
* 使用;不允许对程序代码以任何形式任何目的的再发布。
* ============================================================================
* $Author: liubo $
* $Id: alipay.php 17217 2011-01-19 06:29:08Z liubo $
*/
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
$payment_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/alipay.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'] = 'alipay_desc';
/* 是否支持货到付款 */
$modules[$i]['is_cod'] = '0';
/* 是否支持在线支付 */
$modules[$i]['is_online'] = '1';
/* 作者 */
$modules[$i]['author'] = 'ECSHOP TEAM';
/* 网址 */
$modules[$i]['website'] = 'http://www.alipay.com';
/* 版本号 */
$modules[$i]['version'] = '1.0.2';
/* 配置信息 */
$modules[$i]['config'] = array(
array('name' => 'alipay_account', 'type' => 'text', 'value' => ''),
array('name' => 'alipay_key', 'type' => 'text', 'value' => ''),
array('name' => 'alipay_partner', 'type' => 'text', 'value' => ''),
// array('name' => 'alipay_real_method', 'type' => 'select', 'value' => '0'),
// array('name' => 'alipay_virtual_method', 'type' => 'select', 'value' => '0'),
// array('name' => 'is_instant', 'type' => 'select', 'value' => '0')
array('name' => 'alipay_pay_method', 'type' => 'select', 'value' => '')
);
return;
}
/**
* 类
*/
class alipay
{
/**
* 构造函数
*
* @access public
* @param
*
* @return void
*/
function alipay()
{
}
function __construct()
{
$this->alipay();
}
/**
* 生成支付代码
* @param array $order 订单信息
* @param array $payment 支付方式信息
*/
function get_code($order, $payment)
{
if (!defined('EC_CHARSET'))
{
$charset = 'utf-8';
}
else
{
$charset = EC_CHARSET;
}
// if (empty($payment['is_instant']))
// {
// /* 未开通即时到帐 */
// $service = 'trade_create_by_buyer';
// }
// else
// {
// if (!empty($order['order_id']))
// {
// /* 检查订单是否全部为虚拟商品 */
// $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('order_goods').
// " WHERE is_real=1 AND order_id='$order[order_id]'";
//
// if ($GLOBALS['db']->getOne($sql) > 0)
// {
// /* 订单中存在实体商品 */
// $service = (!empty($payment['alipay_real_method']) && $payment['alipay_real_method'] == 1) ?
// 'create_direct_pay_by_user' : 'trade_create_by_buyer';
// }
// else
// {
// /* 订单中全部为虚拟商品 */
// $service = (!empty($payment['alipay_virtual_method']) && $payment['alipay_virtual_method'] == 1) ?
// 'create_direct_pay_by_user' : 'create_digital_goods_trade_p';
// }
// }
// else
// {
// /* 非订单方式,按照虚拟商品处理 */
// $service = (!empty($payment['alipay_virtual_method']) && $payment['alipay_virtual_method'] == 1) ?
// 'create_direct_pay_by_user' : 'create_digital_goods_trade_p';
// }
// }
$real_method = $payment['alipay_pay_method'];
switch ($real_method){
case '0':
$service = 'trade_create_by_buyer';
break;
case '1':
$service = 'create_partner_trade_by_buyer';
break;
case '2':
$service = 'create_direct_pay_by_user';
break;
}
$extend_param = 'isv^sh22';
$parameter = array(
//以下数组删除
// 'extend_param' => $extend_param,
// 'service' => $service,
// 'partner' => $payment['alipay_partner'],
// 'smsNo' => ALIPAY_ID,
'_input_charset' => $charset,
// 'notify_url' => return_url(basename(__FILE__, '.php')),
// 'return_url' => return_url(basename(__FILE__, '.php')),
/* 业务参数 */
// 'subject' => $order['order_sn'],
// 'out_trade_no' => $order['order_sn'] . $order['log_id'],
// 'price' => $order['order_amount'],
// 'quantity' => 1,
// 'payment_type' => 1,
/* 物流参数 */
// 'logistics_type' => 'EXPRESS',
// 'logistics_fee' => 0,
// 'logistics_payment' => 'BUYER_PAY_AFTER_RECEIVE',
/* 买卖双方信息 */
// 'seller_email' => $payment['alipay_account']
'optEmail' => $payment['alipay_account'],
'payAmount' => $order['order_amount'],
'title' => '订单:' . $order['order_sn'] ,
'memo' => $_SESSION['email'] .$order['postscript'] ,
'smsNo' => $payment['alipay_partner'],
);
ksort($parameter);
reset($parameter);
$param = '';
$sign = '';
foreach ($parameter AS $key => $val)
{
$param .= "$key=" .urlencode($val). "&";
$sign .= "$key=$val&";
}
$param = substr($param, 0, -1);
$sign = substr($sign, 0, -1). $payment['alipay_key'];
//$sign = substr($sign, 0, -1). ALIPAY_AUTH;
// $button = '<div style="text-align:center"><input type="button" onclick="window.open(\'https://shenghuo.alipay.com/send/payment/fill.htm?'.$param.'\')" value="' .$GLOBALS['_LANG']['pay_button']. '" /></div>';
//
$button = '<div style="text-align:center">
<form id="payment" accept-charset="GBK" action="https://shenghuo.alipay.com/send/payment/fill.htm" method="post">
<input name="optEmail" type="hidden" value="' .$parameter['optEmail']. '" />
<input name="payAmount" type="hidden" value="' .$parameter['payAmount']. '" />
<input name="title" type="hidden" value="' .$parameter['title']. '" />
<input type="hidden" name="isSend" value="true"/>
<input name="smsNo" type="hidden" value="' .$parameter['smsNo']. '" />
</form>
<input type="button" onclick="javascript:document.charset=\'GBK\';document.getElementById(\'payment\').submit()" value="' .$GLOBALS['_LANG']['pay_button']. '" /></div>';
//
return $button;
}
/**
* 响应操作
*/
function respond()
{
if (!empty($_POST))
{
foreach($_POST as $key => $data)
{
$_GET[$key] = $data;
}
}