您现在的位置是:首页 > cms教程 > 帝国CMS教程帝国CMS教程

帝国CMS整合第三方支付接口的方法

惜文2023-05-19帝国CMS教程已有人查阅

导读看到网上的帝国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
);
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);
}

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

本文标签:帝国cms功能开发 

很赞哦! ()

相关源码

  • (PC+WAP)蓝色电子半导体电子设备网站pbootcms源码下载本模板基于PbootCMS内核开发,为半导体和电子科技行业设计,特别适合电子元器件、集成电路、半导体设备及相关技术产品展示。查看源码
  • (自适应)科技产品设备技术作品pbootcms网站模板带下载和招聘基于PbootCMS内核开发的高端科技企业模板,采用响应式布局技术,适配各类移动终端设备。模板设计聚焦科技行业特性,通过模块化结构实现企业形象展示、技术成果发布与人才招募等核心需求查看源码
  • (PC+WAP)蓝色不锈钢簧线金属制品营销型pbootcms网站模板本模板基于PbootCMS内核开发,为不锈钢及金属制品企业量身打造。采用响应式设计,适配PC与移动设备,提供统一后台管理体验,数据实时同步更新。查看源码
  • (自适应响应式)动力刀座五金机械设备pbootcms网站源码下载为动力刀座及五金机械企业定制的响应式网站框架,基于PbootCMS系统深度开发,助力传统制造企业实现数字化转型升级。采用手工编写的DIV+CSS前端架构,代码执行效率提升40%。查看源码
  • 帝国CMS7.5手游资讯下载综合门户免费网站模板本模板基于帝国CMS7.5内核开发,为手游打造的综合门户网站解决方案。模板设计充分考虑了手业的特性,包含游戏资讯发布、手游下载、礼包发放、开测信息等核心功能模块,满足手游门户网站的各项业务需求。查看源码
  • 帝国cms7.5自适应手机端在线课程教育网站源码基于帝国CMS后台管理系统,支持在线修改支付参数、联系方式等配置信息,操作界面直观便捷。专注于在线教育视频领域,提供完整的视频课程展示、付费购买及在线支付解决方案。支持多种支付渠道,满足教育培训机构的运营需求。查看源码
分享笔记 (共有 篇笔记)
验证码: