【文件属性】:
文件名称:帝国CMS支付宝当面付插件.zip
文件大小:316KB
文件格式:ZIP
更新时间:2022-08-17 07:37:04
帝国cms 支付宝支付 扫码付款插件
支付宝当面付接入教程
这里假设己经开通了当面付,没有开通的可以到支付宝开通
1、增加当面付数据
帝国没有给出手动添加的功能,这里只能以SQL方式来添加了,运行以下SQL语句
INSERT INTO `[!db.pre!]enewspayapi` (`payid`, `paytype`, `myorder`, `payfee`, `payuser`, `partner`, `paykey`, `paylogo`, `paysay`, `payname`, `isclose`, `payemail`, `paymethod`) VALUES ('', 'f2fpay', '99', '0', '', '', '', '', '支付宝当面付插件', '支付宝当面付', '0', '', '0');
2、添加商户私钥和支付宝公钥字段
ALTER TABLE [!db.pre!]enewspayapi add fprivatekey text NOT NULL, add fpublickey text NOT NULL;
3、修改系统文件以支持私钥和公钥的配置
第一个文件:e/admin/pay/SetPayApi.php
增加一个支付方式的判断,这里的支付方式为f2fpay
APPID |
<input name="payemail" type="text" id="payemail" value="<?=$r[payemail]?>" size="35"></td>
|
商户私钥 |
<textarea name="fprivatekey" id="fprivatekey" cols="100" rows="10"><?=$r[fprivatekey]?></textarea>
|
支付宝公钥 |
<textarea name="fpublickey" id="fpublickey" cols="100" rows="10"><?=$r[fpublickey]?></textarea>
|
第二个文件:e/admin/pay/PayApi.php
增加私钥和公钥字段的写入
//设置接口
function EditPayApi($add, $userid, $username) {
global $empire, $dbtbpre;
$add[payid] = (int) $add[payid];
if (empty($add[payname]) || !$add[payid]) {
printerror("EmptyPayApi", "history.go(-1)");
}
$add[isclose] = (int) $add[isclose];
$add[myorder] = (int) $add[myorder];
$add[paymethod] = (int) $add[paymethod];
$add['payname'] = hRepPostStr($add['payname'], 1);
$add['paysay'] = hRepPostStr2($add['paysay']);
$add['payuser'] = hRepPostStr2($add['payuser']);
$add['paykey'] = hRepPostStr2($add['paykey']);
$add['payfee'] = hRepPostStr($add['payfee'], 1);
$add['payemail'] = hRepPostStr($add['payemail'], 1);
//增加当面付字段
$add['fprivatekey'] = hRepPostStr($add['fprivatekey'], 1);
$add['fpublickey'] = hRepPostStr($add['fpublickey'], 1);
if ($add['paytype'] == 'f2fpay') {
$sql = $empire->query("update {$dbtbpre}enewspayapi set isclose='$add[isclose]',payname='$add[payname]',paysay='$add[paysay]',payuser='$add[payuser]',paykey='$add[paykey]',payfee='$add[payfee]',payemail='$add[payemail]',myorder='$add[myorder]',paymethod='$add[paymethod]',fprivatekey='$add[fprivatekey]',fpublickey='$add[fpublickey]' where payid='$add[payid]'");
} else {
$sql = $empire->query("update {$dbtbpre}enewspayapi set isclose='$add[isclose]',payname='$add[payname]',paysay='$add[paysay]',payuser='$add[payuser]',paykey='$add[paykey]',payfee='$add[payfee]',payemail='$add[payemail]',myorder='$add[myorder]',paymethod='$add[paymethod]' where payid='$add[payid]'");
}
if ($sql) {
//操作日志
insert_dolog("payid=" . $add[payid] . "
payname=" . $add[payname]);
printerror("EditPayApiSuccess", "PayApi.php" . hReturnEcmsHashStrHref2(1));
} else {
printerror("DbError", "history.go(-1)");
}
}
4、取消支付时的转码功能
共三个文件分别为
e/payapi/BuyGroupPay.php此文件用于购买会员组
e/payapi/pay.php此文件用于充值
e/payapi/ShopPay.php此文件用于商城订单支付
因为本次用的是UTF-8编码,这里不需要再转码的
所以要删除转码内容,如下:
if($ecms_config['sets']['pagechar']!='gb2312')
{
@include_once("../class/doiconv.php");
$iconv=new Chinese('');
$char=$ecms_config['sets']['pagechar']=='big5'?'BIG5':'UTF8';
$targetchar='GB2312';
$productname=$iconv->Convert($char,$targetchar,$productname);
$productsay=$iconv->Convert($char,$targetchar,$productsay);
@header('Content-Type: text/html; charset=gb2312');
}
5、上传当面付插件
将下载好的插件解压,将f2fpay上传到e/payapi/即可
在线演示:http://ecms.bnxf.net/
【文件预览】:
源码
----f2fpay()
--------f2flog.txt(1KB)
--------notify.php(6KB)
--------return.php(4KB)
--------issuccess.php(669B)
--------to_pay.php(8KB)
--------f2fpay.php(9KB)
使用教程.docx
截图
----QQ截图20190426113451.jpg(46KB)
----QQ截图20190426113224.jpg(170KB)
----QQ截图20190426113403.jpg(157KB)