欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          了解php實(shí)現(xiàn)的支付寶網(wǎng)頁(yè)支付功能【基于TP5框架】

          了解php實(shí)現(xiàn)的支付寶網(wǎng)頁(yè)支付功能【基于TP5框架】

          本文實(shí)例講述了php實(shí)現(xiàn)的支付寶網(wǎng)頁(yè)支付功能。分享給大家供大家參考,具體如下:

          1.提交支付請(qǐng)求

          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'],   'notify_url'=>config('z_notify_url'),   'return_url'=>config('z_return_url'),   'charset'=>config('charset'),   'sign_type'=>config('sign_type'),   'gatewayUrl'=>config('gatewayUrl'),   'alipay_public_key'=>$zfb['alipay_public_key'] ]; //商品訂單號(hào) $out_trade_no=$orderData['order_number']; //訂單名稱(chēng),必填 $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['return_url'],$config['notify_url']); echo $response;

          2.異步回調(diào)支付寶參數(shù)認(rèn)證

          $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'],     'notify_url' => config('z_notify_url'),     'return_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);   /* 實(shí)際驗(yàn)證過(guò)程建議商戶(hù)添加以下校驗(yàn)。   1、商戶(hù)需要驗(yàn)證該通知數(shù)據(jù)中的out_trade_no是否為商戶(hù)系統(tǒng)中創(chuàng)建的訂單號(hào),   2、判斷total_amount是否確實(shí)為該訂單的實(shí)際金額(即商戶(hù)訂單創(chuàng)建時(shí)的金額),   3、校驗(yàn)通知中的seller_id(或者seller_email) 是否為out_trade_no這筆單據(jù)的對(duì)應(yīng)的操作方   (有的時(shí)候,一個(gè)商戶(hù)可能有多個(gè)seller_id/seller_email)   4、驗(yàn)證app_id是否為該商戶(hù)本身。   */   if($result) {//驗(yàn)證成功     ////////////////////////////////////////////////////////////////////////////////     //請(qǐng)?jiān)谶@里加上商戶(hù)的業(yè)務(wù)邏輯程序代     //——請(qǐng)根據(jù)您的業(yè)務(wù)邏輯來(lái)編寫(xiě)程序(以下代碼僅作參考)——     //獲取支付寶的通知返回參數(shù),可參考技術(shù)文檔中服務(wù)器異步通知參數(shù)列表     //商戶(hù)訂單號(hào)     $out_trade_no = $_POST['out_trade_no'];     //支付寶交易號(hào)     $trade_no = $_POST['trade_no'];     //交易狀態(tài)     $trade_status = $_POST['trade_status'];     //交易金額     $total_amount = $_POST['total_amount'];     if($_POST['trade_status'] == 'TRADE_FINISHED') {       //判斷該筆訂單是否在商戶(hù)網(wǎng)站中已經(jīng)做過(guò)處理       //如果沒(méi)有做過(guò)處理,根據(jù)訂單號(hào)(out_trade_no)在商戶(hù)網(wǎng)站的訂單系統(tǒng)中查到該筆訂單的詳細(xì),       并執(zhí)行商戶(hù)的業(yè)務(wù)程序       //請(qǐng)務(wù)必判斷請(qǐng)求時(shí)的total_amount與通知時(shí)獲取的total_fee為一致的       //如果有做過(guò)處理,不執(zhí)行商戶(hù)的業(yè)務(wù)程序       //注意:       //退款日期超過(guò)可退款期限后(如三個(gè)月可退款),支付寶系統(tǒng)發(fā)送該交易狀態(tài)通知     } else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {       //判斷該筆訂單是否在商戶(hù)網(wǎng)站中已經(jīng)做過(guò)處理       //如果沒(méi)有做過(guò)處理,根據(jù)訂單號(hào)(out_trade_no)在商戶(hù)網(wǎng)站的訂單系統(tǒng)中查到該筆訂單的詳細(xì),       并執(zhí)行商戶(hù)的業(yè)務(wù)程序       //請(qǐng)務(wù)必判斷請(qǐng)求時(shí)的total_amount與通知時(shí)獲取的total_fee為一致的       //如果有做過(guò)處理,不執(zhí)行商戶(hù)的業(yè)務(wù)程序       //注意:       //付款完成后,支付寶系統(tǒng)發(fā)送該交易狀態(tài)通知       //此處應(yīng)該更新一下訂單狀態(tài),商戶(hù)自行增刪操作        這里寫(xiě)你的邏輯程序     }     //——請(qǐng)根據(jù)您的業(yè)務(wù)邏輯來(lái)編寫(xiě)程序(以上代碼僅作參考)——     echo 'success';   }else {     //驗(yàn)證失敗     echo "fail";   } }

          3.同步回調(diào)頁(yè)面跳轉(zhuǎn)處理 同步只是做一個(gè)跳轉(zhuǎn)處理 不要寫(xiě)任何數(shù)據(jù)處理

          $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'],   'notify_url' => config('z_notify_url'),   'return_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); /* 實(shí)際驗(yàn)證過(guò)程建議商戶(hù)添加以下校驗(yàn)。 1、商戶(hù)需要驗(yàn)證該通知數(shù)據(jù)中的out_trade_no是否為商戶(hù)系統(tǒng)中創(chuàng)建的訂單號(hào), 2、判斷total_amount是否確實(shí)為該訂單的實(shí)際金額(即商戶(hù)訂單創(chuàng)建時(shí)的金額), 3、校驗(yàn)通知中的seller_id(或者seller_email) 是否為out_trade_no這筆單據(jù)的對(duì)應(yīng)的操作方 (有的時(shí)候,一個(gè)商戶(hù)可能有多個(gè)seller_id/seller_email) 4、驗(yàn)證app_id是否為該商戶(hù)本身。 */ if($result) {//驗(yàn)證成功   ///////////////////////////////////////////////////////////////////////////////   //請(qǐng)?jiān)谶@里加上商戶(hù)的業(yè)務(wù)邏輯程序代碼   //——請(qǐng)根據(jù)您的業(yè)務(wù)邏輯來(lái)編寫(xiě)程序(以下代碼僅作參考)——   //獲取支付寶的通知返回參數(shù),可參考技術(shù)文檔中頁(yè)面跳轉(zhuǎn)同步通知參數(shù)列表   //商戶(hù)訂單號(hào)   $out_trade_no = htmlspecialchars($_GET['out_trade_no']);   //支付寶交易號(hào)   $trade_no = htmlspecialchars($_GET['trade_no']);   $this->success("支付成功",url('Index/index'));   //——請(qǐng)根據(jù)您的業(yè)務(wù)邏輯來(lái)編寫(xiě)程序(以上代碼僅作參考)——   /////////////////////////////////////////////////////////////////////////// } else {   //驗(yàn)證失敗   echo "驗(yàn)證失敗"; }

          相關(guān)學(xué)習(xí)推薦:PHP編程從入門(mén)到精通

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)