h5支付

一赃梧、微信支付有兩種方法:

1:調(diào)用微信瀏覽器提供的內(nèi)置接口WeixinJSBridge
2:引入微信jssdk滤蝠,使用wx.chooseWXPay方法,需要先通過config接口注入權(quán)限驗(yàn)證配置授嘀。

小程序有專門的api調(diào)用 wx.requestPayment

1.1几睛、第一種一般是微信公眾號支付

在從后臺拿到簽名、時間戳這些數(shù)據(jù)后粤攒,直接調(diào)用微信瀏覽器提供的內(nèi)置接口WeixinJSBridge即可完成支付功能。

getRequestPayment(data) {
                function onBridgeReady() {
                    WeixinJSBridge.invoke(
                        "getBrandWCPayRequest", {
                            "appId": data.appId, //公眾號ID囱持,由商戶傳入     
                            "timeStamp": data.timeStamp, //時間戳夯接,自1970年以來的秒數(shù)     
                            "nonceStr": data.nonceStr, //隨機(jī)串     
                            "package": data.package,
                            "signType": data.signType, //微信簽名方式:     
                            "paySign": data.paySign //微信簽名 
                        },
                        function(res) {
                            alert(JSON.stringify(res));
                            // get_brand_wcpay_request
                            if (res.err_msg == "get_brand_wcpay_request:ok") {
                                // 使用以上方式判斷前端返回,微信團(tuán)隊(duì)鄭重提示:
                                //res.err_msg將在用戶支付成功后返回ok,但并不保證它絕對可靠纷妆。
                            }
                        }
                    );
                }
                if (typeof WeixinJSBridge == "undefined") {
                    if (document.addEventListener) {
                        document.addEventListener(
                            "WeixinJSBridgeReady",
                            onBridgeReady,
                            false
                        );
                    } else if (document.attachEvent) {
                        document.attachEvent("WeixinJSBridgeReady", onBridgeReady);
                        document.attachEvent("onWeixinJSBridgeReady", onBridgeReady);
                    }
                } else {
                    onBridgeReady();
                }
            },
1.2盔几、普通的vue 商城項(xiàng)目調(diào)用微信的 SDK 來對接

1.2.1、下載微信SDK

// npm install weixin-js-sdk
import wx from "weixin-js-sdk";

1.2.2掩幢、調(diào)用后端接口逊拍,后端返回微信 SDK 所需要的數(shù)據(jù)

axios.post("onfirmOrder/payWX", data).then(res => {
        //成功狀態(tài)下  
        if (res.data.status) {
          // 存儲微信支付數(shù)據(jù)data
          let {appId, nonceStr, package, paySign, signType, timeStamp, signType}= res.data.data;
          console.log("即將跳轉(zhuǎn)微信支付");

          //函數(shù)為分裝過得  (就是調(diào)用微信支付)
          this.wexinPay(
            { appId, nonceStr, package, paySign, signType, timeStamp, },
            //成功回調(diào)函數(shù)
            res => {
              //跳轉(zhuǎn)到下單成功頁面
              this.$router.replace({ path: "/orderSuccess" });
            },
            err => {
            //跳轉(zhuǎn)到下單成功頁面
              this.$toast.fail(err.message || "支付異常");
            }
          );
        } 
        else {
          that.$message.error(res.data.message);
        }
      });

1.2.3、wexinPay方法

wexinPay(data, cb, errorCb) {
        //獲取后臺傳入的數(shù)據(jù)
        let appId = data.appId;
        let timestamp = data.timeStamp;
        let nonceStr = data.nonceStr;
        let signature = data.signature;
        let packages = data.package;
        let paySign = data.paySign;
        let signType = data.signType;
        console.log('發(fā)起微信支付')
        //下面要發(fā)起微信支付了
        wx.config({
            debug: false, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出來际邻,若要查看傳入的參數(shù)芯丧,可以在pc端打開,參數(shù)信息會通過log打出世曾,僅在pc端時才會打印缨恒。
            appId: appId, // 必填,公眾號的唯一標(biāo)識
            timestamp: timestamp, // 必填,生成簽名的時間戳
            nonceStr: nonceStr, // 必填骗露,生成簽名的隨機(jī)串
            signature: signature, // 必填岭佳,簽名,見附錄1
            jsApiList: ['chooseWXPay'] // 必填萧锉,需要使用的JS接口列表珊随,所有JS接口列表見附錄2
        });
        wx.ready(function () {
            wx.chooseWXPay({
                timestamp: timestamp, // 支付簽名時間戳,注意微信jssdk中的所有使用timestamp字段均為小寫柿隙。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符
                nonceStr: nonceStr, // 支付簽名隨機(jī)串叶洞,不長于 32 位
                package: packages, // 統(tǒng)一支付接口返回的prepay_id參數(shù)值,提交格式如:prepay_id=***)
                signType: signType, // 簽名方式优俘,默認(rèn)為'SHA1'京办,使用新版支付需傳入'MD5'
                paySign: paySign, // 支付簽名
                success: function (res) {
                    // 支付成功后的回調(diào)函數(shù)
                    cb(res);
                },
                fail: function (res) {
                    //失敗回調(diào)函數(shù)
                    errorCb(res);
                }
            });
        });
        wx.error(function (res) {
            // config信息驗(yàn)證失敗會執(zhí)行error函數(shù),如簽名過期導(dǎo)致驗(yàn)證失敗帆焕,具體錯誤信息可以打開config的debug模式查看惭婿,也可以在返回的res參數(shù)中查看,對于SPA可以在這里更新簽名叶雹。
            /*alert("config信息驗(yàn)證失敗");*/
        });
    }

二财饥、支付寶支付和銀聯(lián)支付

支付寶支付和銀聯(lián)支付相對于微信來說,前端這塊工作更簡單 折晦,后臺會返回給前端一個form表單钥星,我們要做的就是把這個表單進(jìn)行提交即可。

銀聯(lián)支付满着、支付寶支付

axios.post("onfirmOrder/payWX", data).then((res) => {
    // console.log('支付寶參數(shù)', res.data)
    if (res.code == 200) {
        var resData =res.data
        const div = document.createElement('div')
        div.id = 'alipay'
        div.innerHTML = resData
        document.body.appendChild(div)
        document.querySelector('#alipay').children[0].submit() // 執(zhí)行后會喚起支付寶
    }
}).catch((err) => {
})

https://blog.csdn.net/jiemaio/article/details/84958288

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谦炒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子风喇,更是在濱河造成了極大的恐慌宁改,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魂莫,死亡現(xiàn)場離奇詭異还蹲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)耙考,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門谜喊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倦始,你說我怎么就攤上這事斗遏。” “怎么了楣号?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵最易,是天一觀的道長怒坯。 經(jīng)常有香客問我,道長藻懒,這世上最難降的妖魔是什么剔猿? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮嬉荆,結(jié)果婚禮上归敬,老公的妹妹穿的比我還像新娘。我一直安慰自己鄙早,他們只是感情好汪茧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著限番,像睡著了一般舱污。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弥虐,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天扩灯,我揣著相機(jī)與錄音,去河邊找鬼霜瘪。 笑死珠插,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的颖对。 我是一名探鬼主播捻撑,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缤底!你這毒婦竟也來了顾患?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤个唧,失蹤者是張志新(化名)和其女友劉穎描验,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坑鱼,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年絮缅,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲁沥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡耕魄,死狀恐怖画恰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吸奴,我是刑警寧澤允扇,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布缠局,位于F島的核電站,受9級特大地震影響考润,放射性物質(zhì)發(fā)生泄漏狭园。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一糊治、第九天 我趴在偏房一處隱蔽的房頂上張望唱矛。 院中可真熱鬧,春花似錦井辜、人聲如沸绎谦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窃肠。三九已至,卻和暖如春刷允,著一層夾襖步出監(jiān)牢的瞬間冤留,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工恃锉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搀菩,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓破托,卻偏偏與公主長得像肪跋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子土砂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容