关于ecshop盛付通支付插件详细文档
2016-09-11 20:38 来源:www.chinab4c.com 作者:ecshop专家
ecshop盛付通支付插件是国内领先的独立第三方支付平台,由盛大集团创办,致力于为互联网用户和商户提供“安全、便捷、稳定”的网上支付服务' 盛付通理财,招财进宝,盛付通手机理财
主程序:/includes/modules/pament/sft.php
<?php
/**
* ECSHOP 盛付通支付插件
* ----------------------------------------------------------------------------
* ecshop模板网
* http://www.ecshoptemplate.com
*/
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
$payment_lang = ROOT_PATH . 'languages/' . $GLOBALS['_CFG']['lang'] . '/payment/sft.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'] = 'sft_desc';
/* 是否支持货到付款 */
$modules[$i]['is_cod'] = '0';
/* 是否支持在线支付 */
$modules[$i]['is_online'] = '1';
/* 作者 */
$modules[$i]['author'] = 'Jacklee';
/* 网址 */
$modules[$i]['website'] = 'http://www.phpally.com';
/* 版本号 */
$modules[$i]['version'] = '1.0';
/* 配置信息 */
$modules[$i]['config'] = array(
array('name' => 'sft_account', 'type' => 'text', 'value' => ''),
array('name' => 'sft_key', 'type' => 'text', 'value' => ''),
);
return;
}
class sft
{
/**
* 构造函数
* @access public
* @param
* @return void
*/
function sft()
{
}
function __construct()
{
$this->sft();
}
/**
* 生成支付代码
* @param array $order 订单信息
* @param array $payment 支付方式信息
*/
function get_code($order, $payment)
{
$key = trim($payment['sft_key']);
$version = "3.0"; //版本号
$amount = $order['order_amount']; //订单金额,保留两位小数
$orderid = $order['order_sn']; //商户支付请求号,需保证唯一性
$merid = trim($payment['sft_account']); //商户号,盛大提供,010002是通用测试商户号
$meruesr = "" ; //商户的用户
$paychannel = ""; //支付渠道,显示的支付渠道,不传显示商户签约的全部渠道,多个用逗号隔开。如 03,04。编码表参加接口文档。
$postbackurl = return_url(basename(__FILE__, '.php')); //支付成功后,浏览器显示支付结果的地址
$notifyurl = return_url(basename(__FILE__, '.php')); //支付成功后,服务器端通知商户发货的地址,需要公网域名或ip
$backurl = return_url(basename(__FILE__, '.php')); //重新发起订单的地址
$ordertime = date('YmdHis'); //订单日期,14位数字,格式yyyyMMddHHmmss
$curtype = "RMB" ; //货币类型,目前仅支持"RMB"
$notifytype = "http"; //发货通知方式:http,https等等
$signtype = "2" ; //签名方式。1.rsa 2.md5 3.pki
$prono = $order['order_sn']; //商户产品编号
$prodesc = $order['order_sn']; //产品描述
$remark1 = $order['log_id']; //备注1
$remark2 = "remark2"; //备注2
$bankcode = "" ; //银行编码,银行卡支付时,默认选择的银行
$defaultchannel = ""; //用户默认打开的支付渠道.必需是paychannel指定的渠道之一。
$producturl = "http://".$_SERVER['SERVER_NAME']; //商品展示地址,如不为空,用户在盛大支付平台可点击查看商品详情
/* 生成加密签名串 请务必按照如下顺序和规则组成加密串!*/
$signmsg = $version . $amount . $orderid . $merid. $meruesr. $paychannel. $postbackurl. $notifyurl . $backurl. $ordertime . $curtype. $notifytype . $signtype. $prono. $prodesc. $remark1 . $remark2 . $bankcode . $defaultchannel . $producturl ; //签名字符串 不可空
$signmsg =md5($signmsg.$key);
$def_url = '<div style="text-align:center"><form name="paymentSubmit" style="text-align:center;" method="post" action="http://netpay.sdo.com/paygate/default.aspx" target="_blank">';
$def_url .= "
<input type='hidden' name='Version' value='".htmlspecialchars($version)."' />";
$def_url .= "
<input type='hidden' name='Amount' value='".htmlspecialchars($amount)."'/>";
$def_url .= "
<input type='hidden' name='OrderNo' value='".htmlspecialchars($orderid)."'/>";
$def_url .= "
<input type='hidden' name='MerchantNo' value='" . htmlspecialchars($merid) . "' />";
$def_url .= "
<input type='hidden' name='MerchantUserId' value='" . htmlspecialchars($meruesr) . "' />";
$def_url .= "
<input type='hidden' name='PayChannel' value='".htmlspecialchars($paychannel)."'/>";
$def_url .= "
<input type='hidden' name='PostBackURL' value='" . htmlspecialchars($postbackurl) . "' />" ;
$def_url .= "
<input type='hidden' name='NotifyURL' value='" . htmlspecialchars($notifyurl) . "' />" ;
$def_url .= "
<input type='hidden' name='BackURL' value='" . htmlspecialchars($backurl) . "' />" ;
$def_url .= "
<input type='hidden' name='OrderTime' value='" . htmlspecialchars($ordertime) . "' />";
$def_url .= "
<input type='hidden' name='CurrencyType' value='".htmlspecialchars($curtype)."' />";
$def_url .= "
<input type='hidden' name='NotifyURLType' value='".htmlspecialchars($notifytype)."'/>";
$def_url .= "
<input type='hidden' name='SignType' value='".htmlspecialchars($signtype)."'/>";
$def_url .= "
<input type='hidden' name='ProductNo' value='" . htmlspecialchars($prono) . "' />";
$def_url .= "
<input type='hidden' name='ProductDesc' value='" . htmlspecialchars($prodesc) . "' />";
$def_url .= "
<input type='hidden' name='Remark1' value='" . htmlspecialchars($remark1) . "' />";
$def_url .= "
<input type='hidden' name='Remark2' value='" . htmlspecialchars($remark2) . "' />";
$def_url .= "
<input type='hidden' name='BankCode' value='".htmlspecialchars($bankcode)."' />";
$def_url .= "
<input type='hidden' name='DefaultChannel' value='".htmlspecialchars($defaultchannel)."'/>";
$def_url .= "
<input type='hidden' name='ProductURL' value='".htmlspecialchars($producturl)."' />";
$def_url .= "
<input type='hidden' name='MAC' value='".htmlspecialchars($signmsg)."'/>";
$def_url .= "
<input type='submit' name='v_action' value='" . $GLOBALS['_LANG']['pay_button'] . "' />";
$def_url .= "</form></div></br>";
return $def_url;
}
/**
* 响应操作
*/
function respond()
{
$amount = $_POST['Amount']; //订单金额
$payamount = $_POST['PayAmount']; //实际支付金额
$orderid = $_POST['OrderNo']; //商户订单号
$serialno = $_POST['serialno']; //盛大支付订单号
$status = $_POST['Status']; //支付状态 1=成功
$merid = $_POST['MerchantNo']; //商户号
$paychannel = $_POST['PayChannel']; //支付渠道
$discount = $_POST['Discount']; //折扣
$signtype = $_POST['SignType']; //签名类型 1:rsa 2:md5
$paytime = $_POST['PayTime']; //支付时间
$ctype = $_POST['CurrencyType']; //货币类型 RMB
$prono = $_POST['ProductNo']; //商品编号
$prodesc = $_POST['ProductDesc']; //商品描述
$remark1 = $_POST['Remark1']; //备注1
$remark2 = $_POST['Remark2']; //备注2
$ex = $_POST['ExInfo']; //扩展信息,银行卡支付返回:bankid:****(****表示实际支付银行的编码),如:bankid:ICBC
$mac = $_POST['MAC']; //签名信息
$payment = get_payment($_GET['code']);
$merchant_acctid = $payment['sft_account']; //人民币账号 不可空
$key = $payment['sft_key'];
$signString=$amount."|".$payamount."|".$orderid."|".$serialno."|".$status."|".$merid."|".$paychannel."|".$discount."|".$signtype."|".$paytime."|".$ctype."|".$prono."|".$prodesc."|".$remark1."|".$remark2."|".$ex;
$merchant_signmsg = strtoupper(md5($signString."|".$key));
//首先对获得的商户号进行比对
if ($merid != $merchant_acctid)
{
return false;
}
if ($mac == $merchant_signmsg)
{
order_paid($remark1);
return true;
}
else
{
return false;
}
}
/**
* 将变量值不为空的参数组成字符串
* @param string $strs 参数字符串
* @param string $key 参数键名
* @param string $val 参数键对应值
*/
function append_param($strs,$key,$val)
{
if($strs != "")
{
if($key != '' >> $val != '')
{
$strs .= '>' . $key . '=' . $val;
}
}
else
{
if($val != '')
{
$strs = $key . '=' . $val;
}
}
return $strs;
}
}
?>
语言文件:/languages/zh_cn/payment/sft.php
<?php
/**
* ECSHOP 盛付通支付插件 语言文件
* ----------------------------------------------------------------------------
* ecshop模板网
* http://www.ecshoptemplate.com
*/
global $_LANG;
$_LANG['sft'] = '盛付通';
$_LANG['sft_icbc'] = '工商银行盛付通';
$_LANG['sft_ccb'] = '建设银行盛付通';
$_LANG['sft_abc'] = '农业银行';
$_LANG['sft_bcom'] = '交通银行盛付通';
$_LANG['sft_cmb'] = '招商银行盛付通';
$_LANG['sft_cmbc'] = '民生银行盛付通';
$_LANG['sft_sdb'] = '深发银行盛付通';
$_LANG['sft_boc'] = '中国银行盛付通';
$_LANG['sft_bob'] = '北京银行盛付通';
$_LANG['sft_desc'] = '盛付通是国内领先的独立第三方支付企业,由上海盛大提供服务支持。';
$_LANG['sft_desc_icbc'] = '通过盛付通帐户,用户可以直接用工行网银支付。';
$_LANG['sft_desc_ccb'] = '通过盛付通帐户,用户可以直接用建设网银支付。';
$_LANG['sft_desc_abc'] = '您可以通过农业网银直接支付。';
$_LANG['sft_desc_bcom'] = '通过盛付通帐户,用户可以直接用交通网银支付。';
$_LANG['sft_desc_cmb'] = '通过盛付通帐户,用户可以直接用招商网银支付。';
$_LANG['sft_desc_cmbc'] = '通过盛付通帐户,用户可以直接用民生网银支付。';
$_LANG['sft_desc_sdb'] = '通过盛付通帐户,用户可以直接用深发网银支付。';
$_LANG['sft_desc_boc'] = '通过盛付通帐户,用户可以直接用中国网银支付。';
$_LANG['sft_desc_bob'] = '通过盛付通帐户,用户可以直接用北京网银支付。';
$_LANG['sft_account'] = '商户号';
$_LANG['sft_account_desc'] = '人民币支付网关的收款帐号';
$_LANG['sft_key'] = '商户密钥';
$_LANG['pay_button'] = '立即支付';
?>
本插件经过修改并验证可用,另有盛付通银行接口文件,如有需要请联系我。
最近更新
常用插件
- ecshop二次开发商品购买增
图片1香...
- ecshop2.7.1邮件发送插件
ecshop2.7.1邮件发送插件:该插件主要的开发思想是源于ecshop短信发送系统...
- ecshop没登陆情况下订单查
ecshop没登陆情况下订单查询插件,主要是针对ecshop在没有登陆的情况下...
- ecshop2.7.2生成虚拟订单2.
以前我们开发过ecshop下的虚拟订单,就是客户在访问的时候,会自动生...
- ecshop最小购买数量控制插
ecshop最小购买数量控制插件,这个插件主要是为我们提供一个十分方便...
ecshop热门问答
ecshop热门资料
nginx502
ecshop新闻
ecshop导入
ecshopphotoshop
ecshop含义
ecshopipad
ecshop左边区域
ecshop分发
ecshop时期
ecshop新浪网友
ecshop270
ecshop会员管理
ecshop三栏
ecshopresult
ecshop订货单
ecshop最大限度
ecshopcloghing
ecshop东东
ecshop用户登陆
ecshopJamy
ecshop购物流程显示重量
ecshop捷径
ecshop型号
ecshopimage
ecshopimqq
ecshop宽频
ecshop商品描述
ecshop网站内容
ecshoprepaired
ecshop蛋疼