老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

微信公眾平臺如何開發微信支付

這篇文章將為大家詳細講解有關微信公眾平臺如何開發微信支付 ,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到萊山網站設計與萊山網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、網站制作、企業官網、英文網站、手機端網站、網站推廣、主機域名雅安服務器托管、企業郵箱。業務覆蓋萊山地區。

一、JS-SDK

公眾號中的微信支付需要通過JS來實現。微信JS-SDK是微信公眾平臺面向網頁開發者提供的基于微信內的網頁開發工具包。

1)引入JS腳本文件

2)通過config接口注入權限驗證配置

appId就是應用ID,wx打頭的那串字符,timestamp在php中就用time()獲取,而nonceStr就用uniqid()獲取,而signature根據特定算法獲取。

protected function getJsapiConfig()
    {
        $weixin = new Weixin();
        $ticketMongo = new WeixinJsapiTicket();
        $data = [
            'appId' => $weixin->getAppId(),
            'noncestr' => uniqid(),
            'jsapi_ticket' => $ticketMongo->getJsapiTicket(),
            'timestamp' => time()
        ];
        //拼裝原始待簽名串
        $src = [
            'noncestr=' . $data['noncestr'],
            'jsapi_ticket=' . $data['jsapi_ticket'],
            'timestamp=' . $data['timestamp']
        ];
        sort($src);
        $data['signature'] = sha1(implode('&', $src));
        return $data;
    }

這里說明下“jsapi_ticket”,jsapi_ticket是公眾號用于調用微信JS接口的臨時票據。正常情況下,jsapi_ticket的有效期為7200秒,通過access_token來獲取。由于有時間限制,而且獲取jsapi_ticket的api調用次數非常有限,所以我會將獲取到的jsapi_ticket保存到MongoDB中。

/**
     * 通過access_token獲取jsapi_ticket
     * @param $access_token
     * @return string | null
     */
    public function getJsapiTicket($access_token)
    {
        $url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket';
        $param = [
        'access_token' => $access_token,
        'type' => 'jsapi'
                ];
        $res = $this->request($url, $param);
        $result = json_decode($res, true);
        if (isset($result['errcode']) && $result['errcode'] == 0 && isset($result['ticket'])) {
            return $result;
        }
        return null;
    }

3)通過ready接口處理成功驗證

1)prepay_id是根據本地生成的訂單號等獲取的,訂單號每次請求的得不一樣,不然會報錯的

2)nonceStr就用md5(uniqid('baiaimama'))獲取

3)signType使用MD5

4)paySign根據代碼的參數,排序后拼接獲得。

wx.chooseWXPay({
    timestamp: 0, // 支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符
    nonceStr: '', // 支付簽名隨機串,不長于 32 位
    package: '', // 統一支付接口返回的prepay_id參數值,提交格式如:prepay_id=***)
    signType: '', // 簽名方式,默認為'SHA1',使用新版支付需傳入'MD5'
    paySign: '', // 支付簽名
    success: function (res) {
        // 支付成功后的回調函數
    }
});
/**
     * 生成jsapi需要調用的參數
     */
    public function getJsapiParam(){
        $param = [
        'appId' => $this->APPID,
        'timeStamp' => time(),
        'nonceStr' => md5(uniqid('baiaimama')),
        'package' => 'prepay_id='.$this->param['prepay_id'],
        'signType' => 'MD5'
                ];
    
        $str = [];
        foreach($param as $k=>$v){
            if(!empty($v)){
                $str[] = "{$k}={$v}";
            }
        }
        sort($str);
        $unsignKey = join('&', $str).'&key='.$this->KEY;
        $sign = strtoupper(md5($unsignKey));
        $param['paySign'] = $sign;
        return $param;
    }

二、異步回調

異步回調中做些修改訂單狀態、發送短信,推送消息等操作。

/**
     * 微信支付異步回調API
     * 微信支付成功,會收到異步回調
     */
    public function actionWxpay()
    {    
        $weixinPay = new WeixinPay();
        $weixin = new Weixin();
        
        $xml = file_get_contents('php://input');
        $msg = $weixin->parseMsg($xml);
    
        //記錄微信推送日志
        $notifyMongo = new WeixinPayNotify();
        $notifyMongo->logPayNotify($xml);

        if(!$msg || !is_object($msg)){
            $weixinPay->notifyXml('FAIL', '通知不合法');
        }
    
        if(!isset($msg->return_code) || $msg->return_code != 'SUCCESS'){
            $weixinPay->notifyXml('FAIL', '通信失敗');
        }
    
        if(!isset($msg->result_code) || $msg->result_code != "SUCCESS"){
            $weixinPay->notifyXml('FAIL', '交易失敗');
        }
    
        //簽名驗證失敗
        if(!$weixinPay->checkSign($msg)){
            $weixinPay->notifyXml('FAIL', '簽名驗證失敗');
        }
        //$notifyMongo->add($msg);
        //流程走到這里說明已經支付成功了,這里無需更新訂單邏輯
        $userOrder = new UserOrder();
        //記錄微信訂單號
        $userOrder->pay($msg->out_trade_no, $msg->transaction_id);
    }

關于“微信公眾平臺如何開發微信支付 ”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


網頁題目:微信公眾平臺如何開發微信支付
文章來源:http://www.xueling.net.cn/article/psjdpc.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 丰满人妻翻云覆雨呻吟视频 | 日本免费一区二区三区不卡网 | 国产精品久久国产精麻豆99网站 | 国产高清视频91 | 久久一区二区三区国产精品 | 男女做爰又黄又粗播放器 | 亚洲免费国产 | 久久高清片 | 亚洲国产一区二区三区a毛片 | 亚洲一线产区二线产区区别 | 男人午夜视频 | 免费国产自线拍一欧美视频 | 狼群视频在线观看www | 亚洲欧美在线播放 | www.7788久久久久久久久 | 黄色超碰 | 无遮挡h肉动漫在线观看 | 女人下边被添全过程A片图片 | 樱花草日本在线WWW官网 | 黄色视屏网站 | 久久国产精品99久久久大便 | 亚洲精品久久久久玩吗 | 亚洲日韩国产精品第一页一区 | 欧美最大胆的西西人体44 | 欧美激情精品久久久久久久久久 | 国产精品色哟哟 | 亚洲成人中文在线 | 午夜福利+无码+自拍 | 狠狠躁天天躁中文字幕无码 | 人妻少妇看a片偷人精品视频 | 制服诱惑一区 | 国产精品国产三级国产专播一 | 午夜视频日本 | 91精品一本久道久久丁香狠狠躁 | 日本高清视频一区二区 | 国产精品久久久久久久三级 | 男女激情无遮挡免费视频 | 亚洲毛片大全 | 福利影院在线播放 | 久久经典国产 | 五月婷婷一区二区三区 |