网上的帝国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);
- }
我们只需要处理官方方法里面的变量,把他们换成你自己的回调变量就可以。
常见问题
所有VIP可以商用吗,会不会有版权问题?
本站提供的源码大部分可以作为源码开发参考和学习,部分开源可商用。
账号可以分享给其他人使用吗?
您好,账号禁止共享,我们有验证机制的,会自动封号处理,谢谢配合。
如果遇到问题怎么联系解决呢?
最快的途径是在导航菜单选择提交【售后】会在24小时处理
下载的源码可以使用吗?
我们会在显著的地方表明【已测试】,显示已测试的都是小编测试过 。
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5.如有侵权请联系客服邮件770973008@qq.com
原文链接:https://www.56admin.com/26509.html,转载请注明出处。
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5.如有侵权请联系客服邮件770973008@qq.com
原文链接:https://www.56admin.com/26509.html,转载请注明出处。
评论0