Thinkphp各大支付平台在线支付集成源码

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 用Thinkphp给客户开发网站的时候需要用到各大平台付款功能,下面就免费分享给大家,此类是个成熟类,网上下载的经过修改,亲测了(可以直接拿来使用,附带使用方法,有需要的朋友请拿走。
用Thinkphp给客户开发网站的时候需要用到各大平台付款功能,下面就免费分享给大家,此类是个成熟类,网上下载的经过修改,亲测了(可以直接拿来使用,附带使用方法,有需要的朋友请拿走。),如果有需要安装的演示请登陆“
 二当家的”查看:
 http://www.erdangjiade.com/php/524.html
 


目前包含了支付宝pc版、支付宝wap版、palpay、yeepay、unionpay、kuaiqian、财付通tenpay等,这几个常用的支付平台,支付方式均为即时到账,不包含担保支付。


支付配置ThinkPay\Application\Common\Conf\config.php

array(
/* 支付设置 */
'payment' => array(
'tenpay' => array(
// 加密key,开通财付通账户后给予
'key' => 'e82573dc7e6136ba414f2e2affbe39fa',
// 合作者ID,财付通有该配置,开通财付通账户后给予
'partner' => '1900000113'
),
'alipay' => array(
// 收款账号邮箱
'email' => 'chenf003@yahoo.cn',
// 加密key,开通支付宝账户后给予
'key' => 'aaa',
// 合作者ID,支付宝有该配置,开通易宝账户后给予
'partner' => '2088101000137799'
),
'aliwappay' => array(
// 收款账号邮箱
'email' => 'chenf003@yahoo.cn',
// 加密key,开通支付宝账户后给予
'key' => 'aaa',
// 合作者ID,支付宝有该配置,开通易宝账户后给予
'partner' => '2088101000137799'
),
'palpay' => array(
'business' => 'zyj@qq.com'
),
'yeepay' => array(
'key' => '69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl',
'partner' => '10001126856'
),
'kuaiqian' => array(
'key' => '1234567897654321',
'partner' => '1000300079901'
),
'unionpay' => array(
'key' => '88888888',
'partner' => '105550149170027'
)
)
);

支付生成订单 ThinkPay\ThinkPHP\Library\Think\Pay.class.php

function buildRequestForm(Pay\PayVo $vo) {
$this->payer->check();
//生成本地记录数据
$check = M("Pay")->add(array(
'out_trade_no' => $vo->getOrderNo(),
'money' => $vo->getFee(),
'status' => 0,
'callback' => $vo->getCallback(),
'url' => $vo->getUrl(),
'param' => serialize($vo->getParam()),
'create_time' => time(),
'update_time' => time()
));

if ($check !== false) {
return $this->payer->buildRequestForm($vo);
} else {
E(M("Pay")->getDbError());
}
}

支付订单表

/**
数据库
CREATE TABLE `think_pay` (
`out_trade_no` varchar(100) NOT NULL,
`money` decimal(10,2) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '0',
`callback` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`param` text NOT NULL,
`create_time` int(11) NOT NULL,
`update_time` int(11) NOT NULL,
PRIMARY KEY (`out_trade_no`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
*/

alipay配置ThinkPay\ThinkPHP\Library\Think\Pay\Driver\Alipay.class.php

protected $gateway = 'https://mapi.alipay.com/gateway.do';
protected $verify_url = 'http://notify.alipay.com/trade/notify_query.do';
protected $config = array(
'email' => '',
'key' => '',
'partner' => ''
);

md5加密

public function buildRequestForm(\Think\Pay\PayVo $vo) {
$param = array(
'service' => 'create_direct_pay_by_user',
'payment_type' => '1',
'_input_charset' => 'utf-8',
'seller_email' => $this->config['email'],
'partner' => $this->config['partner'],
'notify_url' => $this->config['notify_url'],
'return_url' => $this->config['return_url'],
'out_trade_no' => $vo->getOrderNo(),
'subject' => $vo->gettitle(),
'body' => $vo->getBody(),
'total_fee' => $vo->getFee()
);

ksort($param);
reset($param);

$arg = '';
foreach ($param as $key => $value) {
if ($value) {
$arg .= "$key=$value&";
}
}

$param['sign'] = md5(substr($arg, 0, -1) . $this->config['key']);
$param['sign_type'] = 'MD5';

$sHtml = $this->_buildForm($param, $this->gateway, 'get');

return $sHtml;
}

支付成功后回调地址ThinkPay\Application\Home\Controller\PublicController.class.php

public function notify() {
$apitype = I('get.apitype');

$pay = new \Think\Pay($apitype, C('payment.' . $apitype));
if (IS_POST && !empty($_POST)) {
$notify = $_POST;
} elseif (IS_GET && !empty($_GET)) {
$notify = $_GET;
unset($notify['method']);
unset($notify['apitype']);
} else {
exit('Access Denied');
}
//验证
if ($pay->verifyNotify($notify)) {
//获取订单信息
$info = $pay->getInfo();

if ($info['status']) {
$payinfo = M("Pay")->field(true)->where(array('out_trade_no' => $info['out_trade_no']))->find();
if ($payinfo['status'] == 0 && $payinfo['callback']) {
session("pay_verify", true);
$check = R($payinfo['callback'], array('money' => $payinfo['money'], 'param' => unserialize($payinfo['param'])));
if ($check !== false) {
M("Pay")->where(array('out_trade_no' => $info['out_trade_no']))->setField(array('update_time' => time(), 'status' => 1));
}
}
if (I('get.method') == "return") {
redirect($payinfo['url']);
} else {
$pay->notifySuccess();
}
} else {
$this->error("支付失败!");
}
} else {
E("Access Denied");
}
}


相关文章
|
23天前
|
人工智能 网络协议 Java
RuoYi AI:1人搞定AI中台!开源全栈式AI开发平台,快速集成大模型+RAG+支付等模块
RuoYi AI 是一个全栈式 AI 开发平台,支持本地 RAG 方案,集成多种大语言模型和多媒体功能,适合企业和个人开发者快速搭建个性化 AI 应用。
723 21
RuoYi AI:1人搞定AI中台!开源全栈式AI开发平台,快速集成大模型+RAG+支付等模块
|
2月前
|
人工智能 安全 机器人
LangBot:无缝集成到QQ、微信等消息平台的AI聊天机器人平台
LangBot 是一个开源的多模态即时聊天机器人平台,支持多种即时通信平台和大语言模型,具备多模态交互、插件扩展和Web管理面板等功能。
760 14
LangBot:无缝集成到QQ、微信等消息平台的AI聊天机器人平台
|
2月前
|
存储 人工智能 NoSQL
Airweave:快速集成应用数据打造AI知识库的开源平台,支持多源整合和自动同步数据
Airweave 是一个开源工具,能够将应用程序的数据同步到图数据库和向量数据库中,实现智能代理检索。它支持无代码集成、多租户支持和自动同步等功能。
162 14
|
3月前
|
NoSQL 大数据 关系型数据库
AllData数据中台核心菜单十一:数据集成平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
AllData数据中台核心菜单十一:数据集成平台
|
4月前
|
人工智能 数据可视化 JavaScript
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
NodeTool 是一个开源的 AI 工作流可视化构建器,通过拖放节点的方式设计复杂的工作流,无需编码即可快速原型设计和测试。它支持本地 GPU 运行 AI 模型,并与 Hugging Face、OpenAI 等平台集成,提供模型访问能力。
216 14
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
|
3月前
|
运维 监控 Cloud Native
构建深度可观测、可集成的网络智能运维平台
本文介绍了构建深度可观测、可集成的网络智能运维平台(简称NIS),旨在解决云上网络运维面临的复杂挑战。内容涵盖云网络运维的三大难题、打造云原生AIOps工具集的解决思路、可观测性对业务稳定的重要性,以及产品发布的亮点,包括流量分析NPM、网络架构巡检和自动化运维OpenAPI,助力客户实现自助运维与优化。
|
6月前
|
数据采集 DataWorks 数据管理
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第10天】随着大数据技术的发展,企业对数据处理的需求日益增长。阿里云推出的DataWorks是一款强大的数据集成和管理平台,提供从数据采集、清洗、加工到应用的一站式解决方案。本文通过电商平台案例,详细介绍了DataWorks的核心功能和优势,展示了如何高效处理大规模数据,帮助企业挖掘数据价值。
225 1
|
6月前
|
存储 数据可视化 JavaScript
可视化集成API接口请求+变量绑定+源码输出
可视化集成API接口请求+变量绑定+源码输出
154 4
|
6月前
|
数据采集 SQL DataWorks
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第5天】本文通过一家电商平台的案例,详细介绍了阿里云DataWorks在数据处理全流程中的应用。从多源数据采集、清洗加工到分析可视化,DataWorks提供了强大的一站式解决方案,显著提升了数据分析效率和质量。通过具体SQL示例,展示了如何构建高效的数据处理流程,突显了DataWorks相较于传统工具如Excel的优势,为企业决策提供了有力支持。
200 3
|
6月前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。

热门文章

最新文章