1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php微信支付宝第三方接口开发平台 帝国CMS第三方个人支付接口微信支付宝免签约即时到

php微信支付宝第三方接口开发平台 帝国CMS第三方个人支付接口微信支付宝免签约即时到

时间:2020-04-10 00:29:58

相关推荐

php微信支付宝第三方接口开发平台 帝国CMS第三方个人支付接口微信支付宝免签约即时到

帝国CMS网站管理系统是一个高效的网站解决方案,本文将给出开发好的帝国CMS第三方个人免签约支付接口插件(支持支付宝/微信扫码即时到账支付),可用于帝国系统收款使用,供有需求的用户参考或快速接入。本代码无加密完全开源,欢迎参考/使用。

概述

环境

本接口插件基于帝国CMS 7.5开发,7.2版本也经过测试,其余版本正常也是可以用的,可自行尝试。

效果展示

帝国CMS原生体验:

支付方式选择页面效果:

微信支付页面效果:

支付成功效果:

支付宝支付页面效果:

快速接入

下载

源码上传

将源码包里 e文件夹和ezhifu文件夹 上传到网站根目录

执行SQL

进入后台 - 系统 - 备份与恢复数据 - 执行SQL语句,并执行下列语句

insert into [!db.pre!]enewspayapi (paytype,payfee,paysay,payname) values ("ezhifu",0,"易支付() - 微信支付宝免签约即时到账系统","在线支付");

配置

进入后台 - 其他 - 在线支付 - 管理支付接口 - 找到易支付接口配置

主要对 接口类型、商户号(ID)、密钥(KEY) 三项进行配置,其余项根据需要,可改可不改。其中接口类型有微信+支付宝、单微信、单支付宝三项可选。商户号(ID)和密钥(KEY)在这里获取,分别对应APPID和APPKEY:/account。

回调设置

设置回调地址为:http://域名/e/payapi/ezhifu/payend.php(设置入口)

测试

至此已安装完成,可以测试下功能是否正常了。

代码解析

本部分将对部分代码解析,供有兴趣的用户阅览,只为接入的用户可以跳过该部分。

修改部分

语言包文件路径为:/e/admin/pay/SetPayApi.php,该文件为管理支付接口-配置接口页面,在97行增加了下列代码:

回调接口

回调接口:/e/payapi/ezhifu/payend.php。由于帝国cms原回调接口里很多参数都是从cookie取的,并不适合异步回调使用,同步回调如果用户支付完后直接关闭了页面将会导致回调丢失,又不稳定,因此我们将回调里从cookie取的部分都改成了从GET参数中取,完美适应同步和异步回调。

支付中转文件

支付中转文件:/e/payapi/ezhifu/transfer.php,该文件用于支付中转,主要用于将cookie参数转换为GET参数,另外也对支付支付类型的跳转作出判断,代码如下:

require("../../class/connect.php");

require("../../member/class/user.php");

$link=db_connect();

$empire=new mysqlquery();

//参数插入

$_GET['payphome'] = getcvar('payphome');

$ddid=(int)getcvar('paymoneyddid');

if($ddid){

$_GET['paymoneyddid'] = $ddid;

}

$bgid=(int)getcvar('paymoneybgid');

if($bgid){

$_GET['paymoneybgid'] = $bgid;

}

$user=islogin();

$_GET['userid'] = $user['userid'];

//跳转支付

if($_GET['type']==0){

unset($_GET['type']);

header("Location:../../../ezhifu/web.php?".http_build_query($_GET));

}else{

header("Location:../../../ezhifu/pay.php?".http_build_query($_GET));

}

/**

* EZHIFU 易支付() 易支付免签约支付插件

* 无需签约,快速接入

*/

if (!defined('IN_ECS'))

{

die('Hacking attempt');

}

$payment_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/ezhifu.php';

if (file_exists($payment_lang))

{

global $_LANG;

include_once($payment_lang);

}

/* 模块的基本信息 */

if (isset($set_modules) && $set_modules == TRUE)

{

$i = isset($modules) ? count($modules) : 0;

/* 代码 */

$modules[$i]['code'] = basename(__FILE__, '.php');

/* 描述对应的语言项 */

$modules[$i]['desc'] = 'ezhifu_desc';

/* 是否支持货到付款 */

$modules[$i]['is_cod'] = '0';

/* 是否支持在线支付 */

$modules[$i]['is_online'] = '1';

/* 作者 */

$modules[$i]['author'] = 'EZHIFU';

/* 网址 */

$modules[$i]['website'] = '';

/* 版本号 */

$modules[$i]['version'] = '1.0.0';

/* 配置信息 */

$modules[$i]['config'] = array(

array('name' => 'ezhifu_APPID', 'type' => 'text', 'value' => ''),

array('name' => 'ezhifu_APPKEY', 'type' => 'text', 'value' => ''),

array('name' => 'ezhifu_pay_method', 'type' => 'select', 'value' => '')

);

return;

}

/**

* 类

*/

class ezhifu

{

function __construct()

{

$this->ezhifu();

}

/**

* 构造函数

*

* @access public

* @param

*

* @return void

*/

function ezhifu()

{

}

/**

* 生成支付代码

* @param array $order 订单信息

* @param array $payment 支付方式信息

*/

function get_code($order, $payment)

{

if (!defined('EC_CHARSET'))

{

$charset = 'utf-8';

}

else

{

$charset = EC_CHARSET;

}

//整理参数

$url = "?appid={$payment['ezhifu_APPID']}&money={$order['order_amount']}&subject={$order['order_sn']}&logid={$order['log_id']}&returnurl=".urlencode(return_url(basename(__FILE__, '.php')));

$real_method = $payment['ezhifu_pay_method'];

$html = "";

switch ($real_method){

case '0'://双通道

$html = '';

break;

case '1'://仅微信

$html = '';

break;

case '2'://仅支付宝

$html = '';

break;

}

return '

'.$html.'';

}

/**

* 响应操作

*/

function respond()

{

$payment = get_payment($_GET['code']);

unset($_GET['code']);

$sign = $_GET['sign'];

unset($_GET['sign']);

ksort($_GET);

if(md5(http_build_query($_GET).$payment['ezhifu_APPKEY'])!=$sign){

return false;

}

//校验成功

$order_sn = $_GET['logid'];

/* 检查支付的金额是否相符 */

if (!check_money($order_sn, $_GET['money']))

{

return false;

}

//置订单为成功

order_paid($order_sn);

return true;

}

}

支付页面文件

/ezhifu/ 该目录下为支付页面文件,对官方的支付SDK进行了小部分更改,不再详细说明,需要可自行查阅代码。

拓展阅读

php微信支付宝第三方接口开发平台 帝国CMS第三方个人支付接口微信支付宝免签约即时到账api_帝国网站管理系统插件...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。