php支付宝接口 新版,新版支付宝即时交易接口(帝国CMS7.2UTF-8)

这篇博客介绍了如何修改帝国CMS7.2中的支付宝接口编码,从默认的GB2312改为UTF8,并强调了会员组购买时设置有效期的重要性。此外,还详细说明了如何配置alipay/config.php文件,包括RSA2和RSA密钥的生成和使用,以及对to_pay.php的验证和错误处理流程。最后,提供了支付宝后台配置的步骤和注意事项。
摘要由CSDN通过智能技术生成

文档地址:

接口更新时间:2017.9.7

1、修改支付宝接口编码,默认的为GB2312:

e/payapi/ShopPay.php / e/payapi/BuyGroupPay.php

PHP Code复制内容到剪贴板

if($ecms_config['sets']['pagechar']!='gb2312')

{

@include_once("../class/doiconv.php");

$iconv=newChinese('');

$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');

}

将这一段,【删除】,或改为: == 'gb2312'

2、添加会员组购买的时候,请添加上有效期

不添有效期,会员组是不会变化的哦!

3a3c27dea2e4f617825a30ce58af4fb4.png

3、打开alipay / config.php

配置参数,完成!

演示站为帝国CMS7.2原版程序

购买的时候,请先注册登陆

支付宝后台配置说明:

c2dbfc028647924786785d7a0d5314ec.png

5fa57d8f6225cf7bcf024e4057446294.png

3e47d974e79cc1ab875be54f09bbbc59.png

7d633046205ab09a2343f4fd1c974a2e.png

d868726a4ea3d7c25d7ad4e74314c4a6.png

RSA2和RSA的生成方式区别是生成密钥长度:一个是2048,一个是1024 ,这里生成的应用公钥,请乘地铁对2048字节的,保存好

a9eacd8430bb00fed3fc54ce80241b5a.png

bd8700d3b308db9e8410e9603f106dba.png

私钥要保存好,在config.php中,要配置私钥的,公钥输入到上图的应用公钥中,自动生成支付宝公钥,同样保存好,在config.php中需要配置

支付宝后台配置完成!

2017.9.12 update

1、对to_pay.php中的phome和userid进行校验,如果为空,提醒用户刷新重新写入缓存或登录验证

2、如果校验失败,重新生成公钥与私钥,配置文件出错,本看错误日志,校验结果为1,表示配置成功

支付宝当面付接入教程 这里假设己经开通了当面付,没有开通的可以到支付宝开通 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/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值