基于TP5框架php如何实现的支付宝网页支付功能

  介绍

今天就跟大家聊聊有关基于TP5框架php如何实现的支付宝网页支付功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

本文实例讲述了php实现的支付宝网页支付功能。分享给大家供大家参考,具体如下:

<强> 1。提交支付请求

require_once & # 39;。/付款/zfb/pagepay/服务/AlipayTradeService.php& # 39;;   require_once & # 39;。/付款/zfb/pagepay/buildermodel AlipayTradePagePayContentBuilder.php& # 39;;   $ payInfo=Db:名称(& # 39;pay_type& # 39;)→在((& # 39;pay_id& # 39;=祝辞1])→找到();   $ zfb=json_decode ($ payInfo [& # 39; pay_json& # 39;], true);   $ config=(   & # 39;app_id # 39;=祝辞zfb美元[& # 39;app_id # 39;],   & # 39;merchant_private_key& # 39;=祝辞zfb美元[& # 39;merchant_private_key& # 39;],   & # 39;notify_url& # 39;=祝辞配置(& # 39;z_notify_url& # 39;),   & # 39;return_url& # 39;=祝辞配置(& # 39;z_return_url& # 39;),   & # 39;charset # 39;=祝辞配置(& # 39;charset # 39;),   & # 39;sign_type& # 39;=祝辞配置(& # 39;sign_type& # 39;),   & # 39;gatewayUrl& # 39;=祝辞配置(& # 39;gatewayUrl& # 39;),   & # 39;alipay_public_key& # 39;美元=祝辞zfb [& # 39; alipay_public_key& # 39;】   ];//商品订单号   orderData [$ out_trade_no=$ & # 39; order_number& # 39;];//订单名称,必填   $主题=& # 39;充值订单& # 39;;//付款金额   total_amount=美元钱;//商品描述   身体=out_trade_no美元。& # 39;& # 39;。$ this→agent_id强生# 39;& # 39;美元钱;   美元payRequestBuilder=new \ AlipayTradePagePayContentBuilder ();   payRequestBuilder→美元setBody(身体);   美元payRequestBuilder→setSubject(主题);   美元payRequestBuilder→setTotalAmount ($ total_amount);   美元payRequestBuilder→setOutTradeNo ($ out_trade_no);   aop=new \ AlipayTradeService美元($ config);   响应=aop→美元pagePay (payRequestBuilder,配置美元[& # 39;return_url& # 39;],美元配置[& # 39;notify_url& # 39;]);   echo $反应;

<强> 2。异步回调支付宝参数认证

支付美元=Db::名称(& # 39;pay_type& # 39;)→在((& # 39;pay_id& # 39;=祝辞1])→找到();   $ zfb=json_decode($支付[& # 39;pay_json& # 39;], true);   $ config=(   & # 39;app_id # 39;=比;$ zfb [& # 39; app_id # 39;],   & # 39;merchant_private_key& # 39;=比;$ zfb [& # 39; merchant_private_key& # 39;],   & # 39;notify_url& # 39;=比;配置(& # 39;z_notify_url& # 39;),   & # 39;return_url& # 39;=比;配置(& # 39;z_return_url& # 39;),   & # 39;charset # 39;=比;配置(& # 39;charset # 39;),   & # 39;sign_type& # 39;=比;配置(& # 39;sign_type& # 39;),   & # 39;gatewayUrl& # 39;=比;配置(& # 39;gatewayUrl& # 39;),   & # 39;alipay_public_key& # 39;=比;$ zfb [& # 39; alipay_public_key& # 39;】   ];   arr=$ _POST美元;   alipaySevice=new \ AlipayTradeService美元($ config);   美元alipaySevice→writeLog (var_export ($ _POST,真));   结果=alipaySevice→美元支票($ arr);/*实际验证过程建议商户添加以下校验。   1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号,   2,判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额),   3、校验通知中的seller_id(或者seller_email)是否为out_trade_no这笔单据的对应的操作方   (有的时候,一个商户可能有多个seller_id/seller_email)   4、验证app_id是否为该商户本身。   */如果美元(结果){//验证成功//////////////////////////////////////////////////////////////////////////////////请在这里加上商户的业务逻辑程序代//敫菽囊滴衤呒幢嘈闯绦?以下代码仅作参考)—//获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表//商户订单号   $ out_trade_no=$ _POST [& # 39; out_trade_no& # 39;];//支付宝交易号   $ trade_no=$ _POST [& # 39; trade_no& # 39;];//交易状态   $ trade_status=$ _POST [& # 39; trade_status& # 39;];//交易金额   $ total_amount=$ _POST [& # 39; total_amount& # 39;];   if ($ _POST [& # 39; trade_status& # 39;]==& # 39; TRADE_FINISHED& # 39;) {//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,   并执行商户的业务程序//请务必判断请求时的total_amount与通知时获取的total_fee为一致的//如果有做过处理,不执行商户的业务程序//注意://退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知   }else if ($ _POST [& # 39; trade_status& # 39;]==& # 39; TRADE_SUCCESS& # 39;) {//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,   并执行商户的业务程序//请务必判断请求时的total_amount与通知时获取的total_fee为一致的//如果有做过处理,不执行商户的业务程序//注意://付款完成后,支付宝系统发送该交易状态通知//此处应该更新一下订单状态,商户自行增删操作   这里写你的逻辑程序   }//敫菽囊滴衤呒幢嘈闯绦?以上代码仅作参考)—   回声& # 39;成功# 39;;   其他}{//验证失败   回声“fail";   }   }

基于TP5框架php如何实现的支付宝网页支付功能