博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP各大支付平台在线支付集成源码
阅读量:6824 次
发布时间:2019-06-26

本文共 3977 字,大约阅读时间需要 13 分钟。

演示查看:

php给客户开发网站的时候需要用到各大平台付款功能,下面就免费分享给大家,此类是个成熟类,网上down下来的,经过修改测试了(可以直接拿来使用,附带使用方法,有需要的朋友请拿走。),如果有需要安装的演示请登陆“二当家的”查看:

““学生”或“还没有工作的童鞋”可以无条件享用本站所有素材资源

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

array(

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

支付生成订单 ThinkPayThinkPHPLibraryThinkPay.class.php

function buildRequestForm(PayPayVo $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配置ThinkPayThinkPHPLibraryThinkPayDriverAlipay.class.php

protected $gateway = '';

protected $verify_url = '';
protected $config = array(
'email' => '',
'key' => '',
'partner' => ''
);

md5加密

public function buildRequestForm(ThinkPayPayVo $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;

}

支付成功后回调地址ThinkPayApplicationHomeControllerPublicController.class.php

public function notify() {

$apitype = I('get.apitype');

$pay = new ThinkPay($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");
}
}

转载地址:http://hulzl.baihongyu.com/

你可能感兴趣的文章
codeforces 814C An impassioned circulation of affection
查看>>
《Javascript高级程序设计》读书笔记之继承
查看>>
opencv 图片剪切
查看>>
git中忽略UserInterfaceState.xcuserstate的方法
查看>>
【leetcode】307. Range Sum Query - Mutable
查看>>
《世界是数字的》读后感
查看>>
降维算法一览
查看>>
marquee知识点
查看>>
jQuery-DOM操作之创建、插入、删除元素
查看>>
自定义栈类型,具有找到站内最小元素的min函数 ,且min(),pop(),push()函数的时间复杂度为O(1)...
查看>>
redhat 5下源码安装nginx服务
查看>>
python优缺点分析及python种类,编码-课堂笔记及课后总结
查看>>
request和session作用域的意义
查看>>
大数据环境下互联网行业数据仓库/数据平台的架构之漫谈-续【转】
查看>>
SQLServer的最大连接数 超时时间已到 但是尚未从池中获取连接
查看>>
webpack学习笔记
查看>>
windows2008 RDP修改默认端口
查看>>
Nginx配置信息损毁又无备份时如何恢复
查看>>
libc.so.6: cannot open shared object file: No such file or diretory
查看>>
mysql oracle静默 一键安装脚本
查看>>