支付寶 二維碼花唄分期


 

1,phpqrcode 這是php的一個自帶生成二維碼的包
2, phpqrcode地址在這里 https://sourceforge.net/projects/phpqrcode/files/

 

  1.     
    public function codeImg()
        {
            //先模擬 商家ID 和價格。前端傳給后端的數據。
            $store_id = 176;
            $money = 100;
            $url =  "https://zxzhdc.zx-xcx.com/admin/Flower/pay?";
            vendor('phpqrcode.phpqrcode');
            $url = $url . "store_id=" . $store_id . "&money=" . $money;
            $value = $url;
            $errorCorrectionLevel = 'L'; //容錯級別 
            $matrixPointSize = 5; //生成圖片大小        
            //生成二維碼圖片
            $filename = 'qrcode.png';
            \QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
    
            echo '<img src="/' . $filename . '" alt="使用微信掃描支付">';
        }

     

     
    3,上面生成了二維碼,接下來就是分期頁面了,我截個屏,有能力的寶貝,可以自己寫一個頁面。
    注意!!!寶們,以下圖片的分期,和每一期的金額,都是展示只限於,展示!!!展示!!!展示!!!支付寶自己是會判斷了!!!輪不到我們這些菜菜兒~~
     

     

     

    4,選擇分期,對了支付寶分期只有 【3 6 12】提醒一下~,而后點擊支付我用的是ajax請求。

     
     
     //這是創建訂單號
        public function flower(Request $request)
        {
            $store_id = 176;//門店ID
            $id = 3; //分期的期數
            $money = 100;//金額
            $per = 1;
            if (empty($store_id) || empty($id) || empty($money)) {
                return jsonr('400', '不可為空', []);
            }
            $admin_id = Db::name('1')->where('store_id', $store_id)->find(); //通過admin_id查找        
            $merchantid = Db::name('2')->where('admin_id', $admin_id['admin_id'])->find(); //商戶ID       
            $super_id = Db::name('3')->where('id', $merchantid['agent_id'])->value('super_id'); //這是超管ID        
            $system = Db::name('4')->where('super_id', $super_id)->find(); //這是支付寶的一系列信息
            $wh['merchant_id'] = $merchantid['id']; //商戶ID
            $wh['copy'] = 1; //1是直連 2是間連
            $wh['pay_way_id'] = 2; //2支付寶       
            $entry = Db::name('merchant_entry')->where($wh)->find(); //直連場景填寫商戶收單pid
            if (empty($entry)) {
                return jsonr('400', '該支付通道不是直連or支付寶', []);
            }
            vendor('aop.AopClient'); //構造支付配置類 //創建支付寶訂單
            $aop = new \AopClient();
            $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
            $aop->appId = '支付寶app_id'; //引用APP
            $aop->rsaPrivateKey = '私鑰'; //支付寶 私鑰
            $aop->alipayrsaPublicKey = '公鑰'; //支付寶 公鑰
            $aop->apiVersion = '1.0';
            $aop->signType = 'RSA2';
            $aop->postCharset = 'utf-8';
            $aop->format = 'json';
            //這是支付寶官方的sdk 還是 demo 來着我忘了~
            vendor('aop.request.AlipayTradePrecreateRequest');
            $request = new \AlipayTradePrecreateRequest();
            $data['out_trade_no'] = createOutTradeNo($store_id); //商家定義的訂單號
            $data['total_amount'] = $money; //訂單總金額。
            $data['subject'] = "賣掉寶貝"; //訂單標題。
    
            //判斷是否有分期
            if (in_array($id, [3, 6, 12])) {
                $data['extend_params']['hb_fq_num'] = $id;
                $data['extend_params']['hb_fq_seller_percent'] = '0';
                if ($per == 1) { //hb_fq_seller_percent 1是商家 2是用戶 收取手續費 
                    $Aliinfo['extend_params']['hb_fq_seller_percent'] = '100';
                }
            }
    
            $notifyurl = "https://" . $_SERVER['HTTP_HOST'] . '/api/notify/alipay';   //回調地址
            $request = new \AlipayTradePrecreateRequest();
            $request->setNotifyUrl($notifyurl);
            $data['buyer_id'] = "支付寶賬號ID,每個人的都是不一樣!!"; //支付寶賬號ID
            $request->setBizContent(json_encode($data)); //json 格式請求
            //判斷是否是第三方授權
            if (!empty($entry['mno'])) {
                //$entry['mno'] 第三方授權 token
                $result = $aop->execute($request, null, $entry['mno']);
            } else {
                $result = $aop->execute($request);
            }
            // $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";        
            $result = json_encode($result); //這里這里!!!一定要轉json!!!
            $flag = json_decode($result, true); //嘿嘿嘿接下來還是要轉回來……
            if ($flag['alipay_trade_precreate_response']['code'] == 10000) {
                return jsonr('200', '創建訂單成功', $flag['alipay_trade_precreate_response']);
            } else {
                return jsonr('200', '創建訂單失敗', []);
            }
        }

     

      

     
     
     
     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM