资讯专栏INFORMATION COLUMN

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

happyhuangjinjin / 1699人阅读

摘要:,如果有需要安装的演示请登陆二当家的查看学生或还没有工作的童鞋可以无条件享用本站所有素材资源目前包含了支付宝版支付宝版财付通等,这几个常用的支付平台,支付方式均为即时到账,不包含担保支付。

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

““学生”或“还没有工作的童鞋”可以无条件享用本站所有素材资源
目前包含了支付宝pc版、支付宝wap版、palpay、yeepay、unionpay、kuaiqian、财付通tenpay等,这几个常用的支付平台,支付方式均为即时到账,不包含担保支付。
支付配置ThinkPayApplicationCommonConfconfig.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"
)
)
);

支付生成订单 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 = "https://mapi.alipay.com/gatew...";
protected $verify_url = "http://notify.alipay.com/trad...";
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");
}
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22335.html

相关文章

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

    摘要:,如果有需要安装的演示请登陆二当家的查看学生或还没有工作的童鞋可以无条件享用本站所有素材资源目前包含了支付宝版支付宝版财付通等,这几个常用的支付平台,支付方式均为即时到账,不包含担保支付。 演示查看:http://www.erdangjiade.com/ph...php给客户开发网站的时候需要用到各大平台付款功能,下面就免费分享给大家,此类是个成熟类,网上down下来的,经过修改测试了...

    crossea 评论0 收藏0
  • PHP各大支付平台在线支付集成源码

    摘要:,如果有需要安装的演示请登陆二当家的查看学生或还没有工作的童鞋可以无条件享用本站所有素材资源目前包含了支付宝版支付宝版财付通等,这几个常用的支付平台,支付方式均为即时到账,不包含担保支付。 演示查看:http://www.erdangjiade.com/ph...php给客户开发网站的时候需要用到各大平台付款功能,下面就免费分享给大家,此类是个成熟类,网上down下来的,经过修改测试了...

    Eidesen 评论0 收藏0
  • PHP各大支付平台在线支付集成源码

    摘要:,如果有需要安装的演示请登陆二当家的查看学生或还没有工作的童鞋可以无条件享用本站所有素材资源目前包含了支付宝版支付宝版财付通等,这几个常用的支付平台,支付方式均为即时到账,不包含担保支付。 演示查看:http://www.erdangjiade.com/ph...php给客户开发网站的时候需要用到各大平台付款功能,下面就免费分享给大家,此类是个成熟类,网上down下来的,经过修改测试了...

    MorePainMoreGain 评论0 收藏0
  • Java 类文章 - 收藏集 - 掘金

    摘要:而调用后端服务就应用了的高级特分布式配置管理平台后端掘金轻量的分布式配置管理平台。关于网络深度解读后端掘金什么是网络呢总的来说,网络中的容器们可以相互通信,网络外的又访问不了这些容器。 在 Java 路上,我看过的一些书、源码和框架(持续更新) - 后端 - 掘金简书 占小狼转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注 物有本末,事有终始,知所先后,则近道矣 ......

    RayKr 评论0 收藏0

发表评论

0条评论

happyhuangjinjin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<