欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

帝国cms教程

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

帝国cms教程 我的站长站 2022-08-15 共65人阅读

看到网上的帝国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支付
  • 帝国cms二次开发
  • 帝国CMS调用方法
  • 帝国CMS后台管理教程手册下载
    帝国CMS后台管理教程手册下载

    帝国CMS后台管理教程分为: 一、网站信息配置 二、系统扩展变量 三、系统安全设置 (一)、安全参数配置 (二)、网站安全防火墙 (三)、安全设置优化说明 四、...

    帝国cms插件 291 9年前
  • 帝国cms7.0 7.2支付宝防掉单漏单异步处理插件
    帝国cms7.0 7.2支付宝防掉单漏单异步处理插件

    帝国cms自带的支付宝插件因为是明链处理,如果客户关掉浏览器或者不跳转,就会出现掉单现象。插件完美融合帝国所有支付功能帝国cms插件使用方法:1.上传alipay文件夹 、npayfun.php、payfun.php 到 e/...

    帝国cms插件 1463 8年前
  • 帝国CMS微信支付插件
    帝国CMS微信支付插件

    插件介绍附件为帝国CMS扫码支付功能版插件,仅适用于PC端的扫码支付。适用版本: 7.5如需全功能版本,请联系站长(付费哦)。功能如下:1、根据当前浏览器自动调用相关支付功能。2、支持扫码支付3、支持JSA...

    帝国cms插件 2353 5年前
  • 帝国CMS支付宝当面付插件-自适应手机
    帝国CMS支付宝当面付插件-自适应手机

    帝国CMS插件使用说明使用此插件将改动您的原代码及数据库结构,如您的系统没有经过开发,可以顺利以此教程完成安装,否则有可能发生意想不到的错误。插件主要功能手机端直接付款PC端扫码付款插件安装...

    帝国cms插件 1940 4年前
  • 帝国ECMS7.5微信支付插件
    帝国ECMS7.5微信支付插件

    使用说明书使用此插件将改动您的原代码及数据库结构,如您的系统没有经过开发,可以顺利以此教程完成安装,否则有可能发生意想不到的错误。功能实现 微信端直接付款PC端扫码付款H5支付待升级安...

    帝国cms插件 1764 4年前
  • 帝国CMS二次开发统计留言数量

    帝国CMS指定模型下的留言数量 代码:<?php$totalnum=(int)$_GET['totalnum']; $totalquery="select count(*) as total from ***_enewsgbook where bid=1 and chec

    帝国cms教程 240 10年前
  • 帝国cms二次开发怎样实现时间为:几小时前、几天前等格式

    放到:userfun.php <?ph ?>之间

    帝国cms教程 520 8年前
  • 帝国CMS二次开发解决内容关键字替换图片ALT办法

    对于帝国CMS的内容管理程序,个人站长朋友是没有什么说的了,安全又稳定,但再美好的东西也会有一点缺陷,对于内容关键字 图片ALT被替换实属让个人站长头疼的,最近在论坛上面找到了解决的办法,这样我们就可以解决这样的烦心事了! 这个办法是对KissVenus发的解...

    帝国cms教程 516 7年前
  • 帝国CMS二次开发织梦CMS数据转帝国CMS教程

    织梦CMS和帝国CMS哪种好?织梦dedecms是目前CMS开源系统中使用人数最多的CMS系统了,凭借着后台使用简单、模板制作也简单,网上模板素材、教程也非常多,受到大家的追捧。但用过织梦CMS都知道,织梦CMS有两个致命缺点:(1)织梦安全性差漏洞多,经常被黑客攻击,虽然官...

    帝国cms教程 533 5年前
  • 帝国CMS二次开发不开后台定时刷新脚本

    在你的操作系统,如果是linux的话,添加以下计划任务。 * * * * * /usr/bin/php /webrootpath/e/tasks/backend_cronjob.php。把代码传到 /e/tasks/ 下。 这个脚本将替代后台的定时刷新,你不用在开着后台了,它帮你定时刷新。适用场景:全战静态化,需要定时刷...

    帝国cms教程 367 7年前
  • 帝国CMS调用栏目自定义字段方法

    帝国CMS调用栏目自定义字段方法说明:封面模板,列表模板,内容模板都可以用,且调用方式都是一样的调用标签:<?=ReturnClassAddField(0,&#39;自定义字段&#39;)?>调用多个:<?=$value=ReturnClassAddField(1,&#39;自定义字段1,自定义字段2&#39;)?>取值:<?=$val...

    帝国cms教程 146 3年前
  • 帝国CMS新手教程调用栏目别名

    帝国CMS调用网站标题灵动标签调用网站标题:<?=$public_r[sitename]?> 帝国CMS标签调用网站标题:[!--pagetitle--] 帝国CMS调用栏目别名: <?=$class_r[$GLOBALS[navclas

    帝国cms教程 259 11年前
  • 帝国CMS调用网站标题的方法

    帝国CMS_调用网站标题的方法方法1: [!--pagetitle--]方法2:<?=$public_r[sitename]?>

    帝国cms教程 370 11年前
  • 帝国CMS灵动标签调用反馈信息

    语法:[e:loop={'select * from XX_enewsfeedback order by bid desc limit 10',8,24,0}]<li><a><?=$bqr[pinpai]?><?=$bqr[chexin]?></a><a><?=$bqr[title]?></a> (<?=fo

    帝国cms教程 231 11年前
  • 帝国CMS调用今日下载本月下载本周下载排行方法
    帝国CMS调用今日下载本月下载本周下载排行方法

    实现方法:第一步在数据表里添加三个字段:DayHits WeekHits MonthHits 分别设为字段类型为INT第二步打开文件:/e/public/ViewClick/index.php(//digg踩数后面添加如下代码...

    帝国cms教程 601 10年前