1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 了解php实现的支付宝网页支付功能【基于TP5框架】

了解php实现的支付宝网页支付功能【基于TP5框架】

时间:2022-01-30 05:48:41

相关推荐

了解php实现的支付宝网页支付功能【基于TP5框架】

后端开发|php教程

php,支付宝,网页支付,TP5

后端开发-php教程

百度网站原创内容源码,vscode小程序框架,ubuntu 终端没有$,tomcat工作模式详解,爬虫成像,php dns解析,湖北seo推广哪家强,手机商城网站开发,好大模板下载 迅雷下载地址lzw

1.提交支付请求

php源码破解下载地址,ubuntu安装完移植,php写爬虫教程,php教程从零开发到精通学习,seo不是广告lzw

require_once ./payment/zfb/pagepay/service/AlipayTradeService.php;require_once ./payment/zfb/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php;$payInfo=Db::name(pay_type)->where([pay_id=>1])->find();$zfb=json_decode($payInfo[pay_json],true);$config=[ app_id=>$zfb[app_id], merchant_private_key=>$zfb[merchant_private_key], otify_url=>config(z_notify_url), eturn_url=>config(z_return_url), charset=>config(charset), sign_type=>config(sign_type), gatewayUrl=>config(gatewayUrl), alipay_public_key=>$zfb[alipay_public_key]];//商品订单号$out_trade_no=$orderData[order_number];//订单名称,必填$subject=充值订单;//付款金额$total_amount=$money;//商品描述$body = $out_trade_no . - . $this->agent_id.-.$money;$payRequestBuilder = new \AlipayTradePagePayContentBuilder();$payRequestBuilder->setBody($body);$payRequestBuilder->setSubject($subject);$payRequestBuilder->setTotalAmount($total_amount);$payRequestBuilder->setOutTradeNo($out_trade_no);$aop = new \AlipayTradeService($config);$response = $aop->pagePay($payRequestBuilder,$config[ eturn_url],$config[ otify_url]);echo $response;

2.异步回调支付宝参数认证

苹果手机怎么打开网站源码,vscode java警告,ubuntu obs录屏,tomcat环境产量,sqlite 导入导,js气泡提示插件,流行的前端框架,兰花螳螂爬虫,开源cms php,seo 人才招聘,前端个人简历网站源码,网页发送邮件代码,免费电脑公司网站模板,抽奖页面快速滚动效果,学籍管理系统软件,小程序—仿百思不得姐lzw

$pay=Db::name(pay_type)->where([pay_id=>1])->find(); $zfb=json_decode($pay[pay_json],true); $config = [ app_id => $zfb[app_id], merchant_private_key => $zfb[merchant_private_key], otify_url => config(z_notify_url), eturn_url => config(z_return_url), charset => config(charset), sign_type => config(sign_type), gatewayUrl => config(gatewayUrl), alipay_public_key => $zfb[alipay_public_key] ]; $arr=$_POST; $alipaySevice = new \AlipayTradeService($config); $alipaySevice->writeLog(var_export($_POST,true)); $result = $alipaySevice->check($arr); /* 实际验证过程建议商户添加以下校验。 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号, 2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额), 3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方 (有的时候,一个商户可能有多个seller_id/seller_email) 4、验证app_id是否为该商户本身。 */ if($result) {//验证成功 //////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //商户订单号 $out_trade_no = $_POST[out_trade_no]; //支付宝交易号 $trade_no = $_POST[ rade_no]; //交易状态 $trade_status = $_POST[ rade_status]; //交易金额 $total_amount = $_POST[ otal_amount]; if($_POST[ rade_status] == TRADE_FINISHED) {//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序//请务必判断请求时的total_amount与通知时获取的total_fee为一致的//如果有做过处理,不执行商户的业务程序//注意://退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 } else if ($_POST[ rade_status] == TRADE_SUCCESS) {//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序//请务必判断请求时的total_amount与通知时获取的total_fee为一致的//如果有做过处理,不执行商户的业务程序//注意://付款完成后,支付宝系统发送该交易状态通知//此处应该更新一下订单状态,商户自行增删操作 这里写你的逻辑程序 } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— echo success; }else { //验证失败 echo "fail"; }}

3.同步回调页面跳转处理 同步只是做一个跳转处理 不要写任何数据处理

$pay=Db::name(pay_type)->where([pay_id=>1])->find();$zfb=json_decode($pay[pay_json],true);$config = [ app_id => $zfb[app_id], merchant_private_key => $zfb[merchant_private_key], otify_url => config(z_notify_url), eturn_url => config(z_return_url), charset => config(charset), sign_type => config(sign_type), gatewayUrl => config(gatewayUrl), alipay_public_key => $zfb[alipay_public_key]];$arr=$_GET;$alipaySevice = new \AlipayTradeService($config);$result = $alipaySevice->check($arr);/* 实际验证过程建议商户添加以下校验。1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号,2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额),3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email)4、验证app_id是否为该商户本身。*/if($result) {//验证成功 /////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //商户订单号 $out_trade_no = htmlspecialchars($_GET[out_trade_no]); //支付宝交易号 $trade_no = htmlspecialchars($_GET[ rade_no]); $this->success("支付成功",url(Index/index)); //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ///////////////////////////////////////////////////////////////////////////}else { //验证失败 echo "验证失败";}

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