首页文章专栏CMS教程内容

帝国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
);
functionlist_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);

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

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

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

include('../payfun.php');
$pr=$empire->fetch1("selectpaymoneytofen,payminmoneyfrom{$dbtbpre}enewspubliclimit1");

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

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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

上一篇 >
帝国cms报错Cannot modify header information
下一篇 >
帝国cms怎么备份
相关内容
    帝国CMS二次开发整合第三方支付接口教程
  • 帝国cms是php语言吗

    帝国cms是php语言吗

    帝国网站管理系统(EmpireCMS,帝国 CMS),是基于B/S结构,安全、稳定、强大、灵活的网站管理系统,是由PHP语言写的一个开源的网站管理系统,帝国cms本系统由帝国软件工作组独立开发,是一个经过十多年不断完善设计的适用于适用于Linux/windows/Unix等环境下高效的网站解决方案。
    发布于2023-12-15 阅读量1.5K+
  • 帝国cms后台怎么登录

    帝国cms后台怎么登录

    帝国 cms 的登录方式如下:1. 访问登录页:在网站地址后添加 "/e/admin/index.php"。2. 输入凭据:输入用户名和密码。3. 单击"登录"按钮。
    发布于2024-07-22 阅读量1.1K+
  • 帝国cms后台密码错误超过5次被限制60分钟登录解决方法

    有帝国cms后台密码错误超过5次被限制60分钟登录解决方法,时候会忘了后台的帐号密码,尝试次数5次之后就会被限制登录60分钟,如何修改错误密码次数和限制登录的时间呢?
    发布于2023-12-15 阅读量1.6K+
  • 帝国cms数据表管理员在哪个表

    众多的CMS中,帝国CMS在国内的应用率较高,被广泛应用于部门、企业、社会团体等机构。帝国CMS的数据库结构是整个系统的核心,掌握帝国CMS的数据库结构对于对于开发人员以及使用人员来说都是非常有帮助的。下面就跟着小编一起来了解一下帝国cms数据表管理员在哪个表和帝国cms数据表详细中文说明。
    发布于2023-11-26 阅读量715
  • 帝国CMS的列表怎么实时显示点击数

    下面本篇文章给大家介绍一下帝国CMS 列表实时显示点击数的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
    发布于2023-12-15 阅读量1.5K+
  • 帝国cms栏目能修改吗

    帝国cms栏目能修改吗,帝国cms栏目是可以修改的,其修改方法:1、登录帝国cms后台,单击“栏目”菜单;2、选择“管理栏目”子菜单,进入管理栏目界面;3、选中要修改的栏目所在行,单击“修改”,然后修改栏目相关参数设置即可。
    发布于2023-11-26 阅读量1.6K+
  • 帝国CMS灵动标签调用标题属性和截取标题字数

    这篇文章主要介绍了帝国CMS灵动标签调用标题属性和截取标题字数的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
    发布于2023-12-15 阅读量1K+
  • 帝国cms连接不上数据库怎么办

    帝国cms连接不上数据库怎么办?帝国cms后台登陆显示Cann‘t connect to DB 解决方法,首先我们就要先确定一下这是数据库的原因,将我们正确的数据库用户名称和数据库密码以及数据库名修改后保存,只需修改这三个地方即可解决。
    发布于2023-11-26 阅读量1.5K+
  • 帝国cms怎么设置伪静态

    帝国cms怎么设置伪静态

    既然做网站,必然会涉及到搜索引擎优化,我们都知道,动态网页不利于SEO优化的,伪静态可以完美的解决这问题,配合百度云加速CDN,可以让动态页面有静态页面一样快的访问速度。纯生成静态不光会给服务器带来储存压力,主要还是不想每次都去生成。
    发布于2023-12-15 阅读量1.9K+
  • 帝国cms可以删除模块吗

    帝国cms可以删除模块吗?当然是可以的,如果我们的网站不需要帝国CMS的某项功能我们可以进行删除,不单单可以提高运行速度,减少占用空间,还可以避免黑客利用这些文件进行上传木马。
    发布于2023-11-26 阅读量1.2K+
在线客服图标

购买咨询

在线咨询
周一 至 周日 9:00 ~ 22:00
QQ在线客服
客服热线
工作日 9:00 ~ 18:00
扫码咨询
加微咨询优惠细节
微信二维码
返回顶部