您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop银联电子支付插件ChinaPay代码示例
郭山2024-12-25Ecshop商城教程已有人查阅
导读本插件不支持境外支付,如需使用境外支付、无卡支付的的朋友请联系我。主程序:/includes/modules/payment/chinapay.php如下:
本插件不支持境外支付,如需使用境外支付、无卡支付的的朋友请联系我。主程序:/includes/modules/payment/chinapay.php如下:
<?php
/**
* ECSHOP 银联电子支付(ChinaPay)插件
*/
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
$payment_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/chinapay.php';
include_once(ROOT_PATH ."includes/modules/payment/chinapay/netpayclient_config.php");
include_once(ROOT_PATH ."includes/modules/payment/chinapay/netpayclient.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'] = 'chinapay_desc';
/* 是否支持*/
$modules[$i]['is_cod'] = '0';
/* 是否支持在线支付 */
$modules[$i]['is_online'] = '1';
/* 支付费用 */
$modules[$i]['pay_fee'] = '1.5%';
/* 作者 */
$modules[$i]['author'] = 'Jacklee';
/* 网址 */
$modules[$i]['website'] = 'http:// .chinapay.com';
/* 版本号 */
$modules[$i]['version'] = '1.0.0';
/* 配置信息 */
$modules[$i]['config'] = array(
array('name' => 'chinapay_account', 'type' => 'text', 'value' => ''),
array('name' => 'chinapay_merkey_file', 'type' => 'text', 'value' => ''),
array('name' => 'chinapay_pubkey_file', 'type' => 'text', 'value' => '')
);
return;
}
/**
* 类
*/
class chinapay
{
/**
* 构造函数
* @access public
* @param
* @return void
*/
function chinapay()
{
}
function __construct()
{
$this->chinapay();
}
/**
* 生成支付代码
* @param array $order 订单信息
* @param array $payment 支付方式信息
*/
function get_code($order, $payment)
{
$MerId = trim($payment['chinapay_account']);
$OrdId = ecshopsn2chinapaysn($order['order_sn'], $MerId);
$TransAmt = formatamount($order['order_amount']);
$TransTime = date('His',time());
$CuryId = '156';
$TransDate = date('Ymd',time());
$TransType = '0001';
$Version = '20070129';
$GateId = '';
$data_vreturnurl = return_url(basename(__FILE__, '.php'));
$Priv1 = "phpally";
$merkey_file= trim($payment['chinapay_merkey_file']);
//导入私钥文件, 返回值即为您的商户号,长度15位
$merid = buildKey(ROOT_PATH . $merkey_file);
if(!$merid) {
echo "导入私钥文件失败!";
exit;
}
//按次序组合订单信息为待签名串
$plain = $MerId . $OrdId . $TransAmt . $CuryId . $TransDate . $TransType. $Priv1;
//生成签名值,必填
$chkvalue = sign($plain);
if (!$chkvalue) {
echo "签名失败!";
exit;
}
$def_url = "<br /><form style='text-align:center;' method=post action='".REQ_URL_PAY."' target='_blank'>";
$def_url .= "<input type=HIDDEN name='MerId' value='".$MerId."'/>";
$def_url .= "<input type=HIDDEN name='OrdId' value='".$OrdId."'>";
$def_url .= "<input type=HIDDEN name='TransAmt' value='".$TransAmt."'>";
$def_url .= "<input type=HIDDEN name='CuryId' value='".$CuryId."'>";
$def_url .= "<input type=HIDDEN name='TransDate' value='".$TransDate."'>";
$def_url .= "<input type=HIDDEN name='TransType' value='".$TransType."'>";
$def_url .= "<input type=HIDDEN name='Version' value='".$Version."'>";
$def_url .= "<input type=HIDDEN name='BgRetUrl' value='".$data_vreturnurl."'>";
$def_url .= "<input type=HIDDEN name='PageRetUrl' value='".$data_vreturnurl."'>";
$def_url .= "<input type=HIDDEN name='GateId' value='".$GateId."'>";
$def_url .= "<input type=hidden name='Priv1' value='".$Priv1."'>";
$def_url .= "<input type=HIDDEN name='ChkValue' value='".$chkvalue."'>";
$def_url .= "<input type=submit value='" .$GLOBALS['_LANG']['pay_button']. "'>";
$def_url .= "</form>";
return $def_url;
}
/**
* 响应操作
*/
function respond()
{
//order_paid($v_oid);
//return true;
$payment = get_payment(basename(__FILE__, '.php'));
$merid = trim($_POST['merid']);
$orderno = trim($_POST['orderno']);
$transdate = trim($_POST['transdate']);
$amount = trim($_POST['amount']);
$currencycode = trim($_POST['currencycode']);
$transtype = trim($_POST['transtype']);
$status = trim($_POST['status']);
$checkvalue = trim($_POST['checkvalue']);
$v_gateid = trim($_POST['GateId']);
$v_Priv1 = trim($_POST['Priv1']);
/**
* 重新计算密钥的值
*/
$pubkey = $payment['chinapay_pubkey_file'];
$PGID = buildKey(ROOT_PATH . $pubkey);
if(!$PGID)
{
echo "导入私钥文件失败!";
exit;
}
$verify = verifyTransResponse($merid, $orderno, $amount, $currencycode, $transdate, $transtype, $status, $checkvalue);
if (!$verify)
{
echo "验证签名失败!";
exit;
}
/* 检查秘钥是否正确 */
if ($status == '1001')
{
$v_ordesn = chinapaysn2ecshopsn($orderno);
$order_id = get_order_id_by_sn($v_ordesn);
/* 改变订单状态 */
order_paid($order_id);
return true;
}
else
{
return false;
}
}
}
/*
*本地订单号转为银联订单号
*/
function ecshopsn2chinapaysn($order_sn, $vid)
{
if($order_sn >> $vid)
{
$sub_vid = substr($vid, 10, 5);
$sub_start = substr($order_sn, 2, 4);
$sub_end = substr($order_sn, 6);
$temp = @$pay_id; //屏蔽错误提示
return $sub_start . $sub_vid . $sub_end;
}
}
/*
*银联订单号转为本地订单号
*/
function chinapaysn2ecshopsn($chinapaysn)
{
if($chinapaysn)
{
$year = date('Y',time());
return substr($year,0,2) . substr($chinapaysn, 0, 4) . substr($chinapaysn, 9) ;
}
}
/*
*格式化交易金额,以分位单位的12位数字。
*/
function formatamount($amount)
{
if($amount){
if(!strstr($amount, "."))
{
$amount = $amount.".00";
}
$amount = str_replace(".", "", $amount);
$temp = $amount;
for($i=0; $i< 12 - strlen($amount); $i++)
{
$temp = "0" . $temp;
}
return $temp;
}
}
?>
本文标签:
很赞哦! ()
图文教程
ecshop商城首页增加一个商品浏览排行榜的实现方法
ecshop商城首页增加一个商品浏览排行榜浏览排行榜,并且可以在商城后台的“模板设置”里进行控制。由于ECSHOP商城默认是没有读取浏览排行的,所以这部分功能既得修改程序
ecshop前台shell的Oday漏洞修复方法
ECSHOP号称较大的开源网店系统,官方是这样介绍它的:“ECShop网店系统是一套免费开源的网上商店软件,无论在稳定性、代码优化、运行效率、负载能力、安全等级、功能可操控性和权
ecshop商品描述增加多个商品描述编辑器的方法
各位ECSHOP网店系统用户大家好,欢迎来到代码号图文教程,今天为大家详细解说一下ECSHOP怎么增加多个商品描述编辑器方法。
ecshop后台订单列表显示收货人真实IP地理位置的实现方法
ECSHOP后台订单列表显示收货人真实IP地理位置 。开发前,请先阅读本站文章《ECSHOP很新IP库版本升级补丁》,按照该文章的步骤做好准备工作,升级ECSHOP自带的陈旧的IP库。
相关源码
-
(PC+WAP)压缩机离心风机红色机械设备营销型网站pbootcms模板基于PbootCMS开发的压缩机/离心风机专用模板,助力机械设备企业构建高效营销平台;模板可编辑压缩机参数表、风机性能曲线等专业展示模块查看源码 -
(自适应)科技产品设备技术作品pbootcms网站模板带下载和招聘基于PbootCMS内核开发的高端科技企业模板,采用响应式布局技术,适配各类移动终端设备。模板设计聚焦科技行业特性,通过模块化结构实现企业形象展示、技术成果发布与人才招募等核心需求查看源码 -
(响应式)企业管理人力资源服务类pbootcms模板源码下载为人力资源服务及企业管理设计的响应式网站模板,基于PbootCMS内核开发。通过宽屏布局优化岗位展示效果,简洁界面聚焦人才服务核心业务,自适应技术确保在PC端与手机端查看源码 -
帝国cms7.5模板情感文学名言名句心情文章类源码下载带手机本模板基于帝国CMS7.5开发,为情感文学类网站设计。整体风格温馨雅致,布局合理清晰,特别适合建设情书分享、文学作品展示类网站。模板采用响应式设计,能够自动适配各种终端设备。查看源码 -
(PC+WAP)绿色资源回收新能源环保设备pbootcms源码下载基于PbootCMS系统深度开发的环保行业模板,特别适配资源回收设备、新能源技术、环境治理装备等企业的线上展示需求。集成产品库、解决方案、环保案例等专业模块,助力企业高效传递绿色价值。查看源码 -
响应式高端家居家具装修类pbootcms模板网站源码家居装修、空间设计企业打造的营销型网站解决方案,基于PbootCMS内核深度开发。采用前沿响应式架构,适配手机端与PC端浏览体验查看源码
| 分享笔记 (共有 篇笔记) |
