微信支付(APP支付

1,申請流程

APP支付和微信公眾號支付區(qū)別如下:

不同參數(shù):
appid:APP支付(開放平臺ID)建蹄、JSAPI支付(公眾號ID);

appsecret:APP支付(開放平臺秘鑰)、JSAPI支付(公眾號秘鑰)啸澡;

trade_type:APP支付(APP)拐邪、JSAPI支付(JSAPI)慰毅;

openid:JSAPI支付必傳此參數(shù);

首先必須通知客戶先申請商戶號以及微信開放平臺扎阶,然后認證汹胃。

微信開放平臺https://open.weixin.qq.com/

微信商戶號https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F

2,微信配置

說明:

APPID 微信開放平臺的APPID

MCHID 商戶號

KEY 商戶支付密鑰

APPSECRET 微信開放平臺的秘鑰

3东臀,商戶支付密鑰生成

密鑰由自己生成着饥,推薦使用在線密碼生成器。(32位字符串)

4惰赋,SDK開發(fā)者后臺接入

在開始后臺代碼前宰掉,我們必須有4個參數(shù),APPID赁濒、商戶號轨奄、商戶支付密鑰微信開放平臺的秘鑰拒炎。 沒有這4個參數(shù)戚绕,就沒法喚起微信支付接口!!!

準備好后可以下載微信的官方demo代碼參考。https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1

[圖片上傳失敗...(image-99294-1595316836475)]

5枝冀,核心步驟代碼(微信APP支付)

說明:前端調(diào)用的方法

/*********************************微信支付*********************************/
    // 接收前端的參數(shù)舞丛,這里省略
    $data = [];
    $data['user_id'] = $_REQUEST['userId'];
    $data['level'] = $_REQUEST['level'];
    // $data['order_money'] =abs($_REQUEST['orderMoney'])+0;
    $data['order_money'] = 0.01;    // 測試0.01元
    $data['pay_type'] = $_REQUEST['payType'] == 1 ?'wxpay':'2';
    if($data['pay_type'] == 2){
        echo "<script>alert('請用微信支付')</script>";
        die;
    }
    $data['goods_type'] = $_REQUEST['goodsType'];
    // $data['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];

    // 添加入庫訂單
    $sql = "select name,parent_id from users where client_id=".$data['user_id'];
    $result = $model->get_one($sql);
    if($result['parent_id']){
        $data['parent_id'] = $result['parent_id'];
    }else{
        $data['parent_id'] = 0;
    }
    // 生成平臺訂單號
    $data['order_num'] = creation_order();
    $data['product_name'] = '充值';
    $data['create_time']=date('Y-m-d H:i:s');
    $check = $model->insert('game_order',$data);

    if($check){ 
        $notify_url = "http://47.94.40.238/hjwyx/order_pay/pay2/notify.php";    // 異步通知地址
        $res = start_pay($data,$notify_url);   // 同步請求地址
        //return $res;
        echo json_encode($res);die;
    }else{
        exit('下單失敗,請檢查原因');
    }
/**********************************************************/
}else{
    exit("未接收到參數(shù)");
}

說明:start_pay方法

function start_pay($param,$notify_url)
{
    $order =[];
    //微信支付的金額基本單位是分,所以需要乘于100.客戶傳輸過來的金額單位是元
    $price=bcmul($param['order_money'], 100);
    // $price = (int)(($param['order_money']+0.00001)*100);
    if($price <= 0 ){
        echo "<script>alert('訂單金額錯誤')</script>";
        die; 
    }
    $input = new WxPayUnifiedOrder();
    $input->SetAppid(WxPayConfig::APPID);
    //充值內(nèi)容
    $input->SetBody($param['product_name']);
    //訂單號
    $input->SetOut_trade_no($param['order_num']);
    //訂單總金額
    $input->SetTotal_fee($price);
    // 設(shè)置訂單生成時間
    $input->SetTime_start(date("YmdHis"));
    // 設(shè)置訂單失效時間
    $input->SetTime_expire(date("YmdHis", time() + 3600));
    // 設(shè)置接收微信支付異步通知回調(diào)地址
    $input->SetNotify_url($notify_url);
    $input->SetTrade_type("APP");
    //生成prepay_id字符串
    try {
        $order = WxPayApi::unifiedOrder($input);
        if(!array_key_exists("appid", $order) || !array_key_exists("prepay_id", $order) || $order['prepay_id'] == ""){
            return array('err_code'=>500,'err_msg'=>''.$order['return_msg']);
        }
    } catch (Exception $e) {
        return array('err_code'=>500,'err_msg'=>$e->getMessage());
    }
    //
    $time = time();
    $t = array('appid'=>WxPayConfig::APPID,'partnerid'=>WxPayConfig::MCHID,'prepayid'=>$order['prepay_id'],'package'=>'Sign=WXPay','noncestr'=>$param['order_num'],'timestamp'=>$time);
    ksort($t);
    $str = '';
    foreach ($t as $k => $v)
    {
        if($v != ""){
            $str .= $k . "=" . $v . "&";
        }
    }
    $str = trim($str, "&");
    $str = $str . '&key=' .WxPayConfig::KEY;
    $sign = strtoupper(md5($str));
    $t['err_code'] = 0;
    $t['err_msg'] = 'success';
    $t['sign'] = $sign;
    return $t;
}

說明:異步回調(diào)方法

    public function notify()
    {
        $testxml  = file_get_contents("php://input");
        $jsonxml = json_encode(simplexml_load_string($testxml, 'SimpleXMLElement', LIBXML_NOCDATA));
        $result = json_decode($jsonxml, true);//轉(zhuǎn)成數(shù)組,
        file_put_contents("notify_data.txt", json_encode($result));

        if($result){
             // 判斷返回碼果漾,返回狀態(tài)碼是否存在
            if($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS'){
            // 開始處理業(yè)務邏輯
            }
        } else{
    // $model->update('game_order', ['order_status'=>300],"order_num='$order_no'");
        echo '支付失敗';
        die;
        }
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末球切,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子绒障,更是在濱河造成了極大的恐慌吨凑,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件户辱,死亡現(xiàn)場離奇詭異鸵钝,居然都是意外死亡,警方通過查閱死者的電腦和手機庐镐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門恩商,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人必逆,你說我怎么就攤上這事怠堪±柯遥” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵粟矿,是天一觀的道長凰棉。 經(jīng)常有香客問我,道長陌粹,這世上最難降的妖魔是什么撒犀? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮掏秩,結(jié)果婚禮上或舞,老公的妹妹穿的比我還像新娘。我一直安慰自己哗讥,他們只是感情好嚷那,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杆煞,像睡著了一般魏宽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上决乎,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天队询,我揣著相機與錄音,去河邊找鬼构诚。 笑死蚌斩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的范嘱。 我是一名探鬼主播送膳,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼丑蛤!你這毒婦竟也來了叠聋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤受裹,失蹤者是張志新(化名)和其女友劉穎碌补,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棉饶,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡厦章,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了照藻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袜啃。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖岩梳,靈堂內(nèi)的尸體忽然破棺而出囊骤,到底是詐尸還是另有隱情晃择,我是刑警寧澤冀值,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布也物,位于F島的核電站,受9級特大地震影響列疗,放射性物質(zhì)發(fā)生泄漏滑蚯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一抵栈、第九天 我趴在偏房一處隱蔽的房頂上張望告材。 院中可真熱鬧,春花似錦古劲、人聲如沸斥赋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疤剑。三九已至,卻和暖如春闷堡,著一層夾襖步出監(jiān)牢的瞬間隘膘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工杠览, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弯菊,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓踱阿,卻偏偏與公主長得像管钳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子软舌,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354