帝国CMS二次开发整合第三方支付接口教程

看到网上的帝国CMS第三方支付接口资源很少,精准像素就分享一篇关于帝国cms二次开发整合第三方支付接口教程,我们只分享大致思路,可以让你在开发中少走弯路,教程仅供参考学习。

1、首先我们需要知道自己找的第三方支付平台的支付提交发起方法和支付成功后回调方法,每个支付平台的方法都不同。所以在开发前,最好先去仔细查看支付平台的文档,最好支付平台有SDK参考。

2、一般的支付发起方法都是POST 或 GET方法,提交到接口需要哪些字段,我们就调用哪些字段给接口就行,平台一般大致需要的字段有下面这些,整理给大家。

支付方式:

$php_Self = substr($_SERVER['PHP_SELF'],strripos($_SERVER['PHP_SELF'],/)+1);
if ($php_Self=='BuyGroupPay.php'){
$phome='BuyGroupPay';
}

异步或同步回调地址:

$paykey=$payr['paykey'];
$notify_url=$PayReturnUrlQz.你的回调地址/payend.php;
$return_url=$PayReturnUrlQz.你的回调地址/payend.php;

支付金额:

$price=$money;

支付订单号:

$orderid=$ddno?$ddno:time();
esetcookie(checkpaysession,$orderid,0);

支付方式:

if ($payr['paytype']=='wxpay'){
$channel='1';
}else{
$channel='2';
}

sign签名验证:

$sign=md5($orderid.$phome.$channel.$price.$paykey);

3、有了提交内容,我们就需要发起提交了,大致的POST或GET方法如下,大家也可以自己网上找。

$pay_url='平台提交地址';
$parameter=array(
'payId'          => $orderid,
'param'          => $phome,
'type'           => $channel,
'price'          => $price,
'sign'           => $sign,
'notifyUrl'      => $notify_url,
'returnUrl'      => $return_url
);
function list_url($url,$data){
$data=json_encode($data);
        $headerArray =array(Content-type:application/json;charset='utf-8',Accept:application/json);
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        curl_close($curl);
        return $result;
}
$pay_data=json_decode(list_url($pay_url,$parameter),true);

然后我们还需要一个触发发起提交的表单,

<form method=get name=gopay id=gopay style=display:none action=平台提交地址>
<input name=orderId id=orderId type=text value=<?=$payorderId?> />
</form>
<script>
document.getElementById('gopay').submit();
</script>

4、最后就是回调处理了,同样也非常简单,直接就可以用帝国CMS原版的回调处理方法。

include('../payfun.php');
$pr=$empire->fetch1(select paymoneytofen,payminmoney from {$dbtbpre}enewspublic limit 1);

$orderid=$_GET['trade_no'];	//支付订单
$ddno=$_GET['out_trade_no'];	//网站的订单号
$money=$_GET['total_fee'];
$fen=floor($money)*$pr[paymoneytofen];

if($phome=='PayToFen')//购买点数
{
	$paybz='购买点数: '.$fen;
	PayApiBuyFen($fen,$money,$paybz,$orderid,$user[userid],$user[username],$paytype);
}
elseif($phome=='PayToMoney')//存预付款
{
	$paybz='存预付款';
	PayApiPayMoney($money,$paybz,$orderid,$user[userid],$user[username],$paytype);
}
elseif($phome=='ShopPay')//商城支付
{
	include('../../data/dbcache/class.php');
	$ddid=(int)getcvar('paymoneyddid');
	$paybz='商城购买 [!--ddno--] 的订单(ddid='.$ddid.')';
	PayApiShopPay($ddid,$money,$paybz,$orderid,'','',$paytype);
}
elseif($phome=='BuyGroupPay')//购买充值类型
{
	include(../../data/dbcache/MemberLevel.php);
	$bgid=(int)getcvar('paymoneybgid');
	PayApiBuyGroupPay($bgid,$money,$orderid,$user[userid],$user[username],$user[groupid],$paytype);
}

我们只需要处理官方方法里面的变量,把他们换成你自己的回调变量就可以了。

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
9.本站默认解压密码为:www.sudo1.com
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

云资源网 » 帝国CMS二次开发整合第三方支付接口教程

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
你们有qq群吗怎么加入?
当然有的,如果你是帝国cms、易优cms、和pbootcms系统的爱好者你可以加入我们的QQ千人交流群https://sudo1.com/page-qun.html。
  • 会员数(个)
  • 12275资源数(个)
  •        
  • 资源(G)
  •        
  • 今日下载
  • 1364稳定运行(天)

提供最优质的资源集合

立即查看 了解详情