微信app支付php開發


前幾天做微信app支付,遇到了支付失敗的問題,app進行支付的時候,返回-1。查了好多資料,沒找到。后來經過排查,是因為簽名的問題。不多說,直接上代碼。服務器端的demo版本是v3。

            require(dirname(dirname(__FILE__))."/lib/WxPay.Api.php");
            //生成訂單
            $out_trade_no = trim($_POST['orderid']);
            //總金額(1表示1分錢)
            $total_fee = 100*$price;            
            //商品描述
            $body = '微信支付人民幣 '.$price;
            //回調地址
            $notify_url = 'http://www.xxxx.com/notify_recharge.php';
            //微信支付下單
     $input = new WxPayUnifiedOrder();
            $input->SetBody($body);
            $input->SetOut_trade_no($out_trade_no);
            $input->SetTotal_fee($total_fee);
            $input->SetTime_start(date("YmdHis"));
            $input->SetTime_expire(date("YmdHis", time() + 600));
            $input->SetNotify_url($notify_url);
            $input->SetTrade_type("APP");
            $input->SetProduct_id($total_fee);
            $unifiedOrderResult = WxPayApi::unifiedOrder($input);
            //獲取下單信息
            $data = array();
            $data = array(
                "appid"           => $unifiedOrderResult['appid'],
                "partnerid"      => $unifiedOrderResult['mch_id'],
                "prepayid"       => $unifiedOrderResult['prepay_id'],    
                "noncestr"       => $unifiedOrderResult['nonce_str'],
                "timestamp"     => (string)$this->nowtime,
                'package'         => 'Sign=WXPay',
            );
            //將下單獲取的信息重新簽名  demo沒有這一步,為出錯的原因
            $data['sign']    = $this->MakeSign($data);
            $data["orderid"]   = $out_trade_no;
            $data["price"]          = $total_fee;
            $data["url"]             = $notify_url;
            echo json_encode($data);

 

【版權申明】未經博主同意,謝絕轉載!(請尊重原創,博主保留追究權) http://www.cnblogs.com/facetwitter/p/5063204.html


免責聲明!

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



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