微信小程序支付,带java源码
生活随笔
收集整理的這篇文章主要介紹了
微信小程序支付,带java源码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ??? ? 先說下這個(gè)的背景吧。。。
? ? 本人是做java后端的,自認(rèn)為還有很大的發(fā)展空間(嘻嘻,你懂的),看過一段時(shí)間的小程序可是沒有支付成功。。。最近公司要做小程序項(xiàng)目,老大讓我看下小程序,折騰了好幾天,參照著https://blog.csdn.net/zhourenfei17/article/details/77765585 這篇博客,終于弄出來了。。。。。。。
? ? 雖然,效率還有很大提升空間,但是還是在這里做下記錄,希望能后來,的人能有些參考。
? ?上面鏈接的博文是有java代碼的(其實(shí)原文中也有小程序端代碼),我這里只貼一下小程序端的代碼吧。
??
// pages/pay/pay.js Page({/*** 頁面的初始數(shù)據(jù)*/data: {},/*** 生命周期函數(shù)--監(jiān)聽頁面加載*/onLoad: function (options) {wx.login({success: function (res) {var service_url = 'https://04f19bb6.ngrok.io/pay/weixin/login?code=' + res.code;//需要將服務(wù)器域名添加到小程序的request合法域名中,而且必須是https開頭 //這里的地址是我用ngrok 代理本機(jī)的地址(不知道ngrok 的同學(xué)可以百度下, 很簡單)wx.request({url: service_url,data: {code: res.code},method: 'GET',success: function (res) {console.log(res);if (res.data != null && res.data != undefined && res.data != '') {wx.setStorageSync("openid", res.data.openid);//將獲取的openid存到緩存中 }var openid = res.data.openid;var that = this;wx.request({url: 'https://04f19bb6.ngrok.io/pay/weixin/wxpay?openid=' + openid ,data: {},method: 'GET',success: function (res) {console.log(res);console.log(res.data.data.packge)//小程序發(fā)起微信支付wx.requestPayment({timeStamp: res.data.data.timeStamp,//記住,這邊的timeStamp一定要是字符串類型的,不然會(huì)報(bào)錯(cuò),我這邊在java后端包裝成了字符串類型了nonceStr: res.data.data.nonceStr,package: res.data.data.package,signType: 'MD5',paySign: res.data.data.paySign,success: function (event) {// success console.log(event);wx.showToast({title: '支付成功',icon: 'success',duration: 2000});},fail: function (error) {// fail console.log("支付失敗")console.log(error)},complete: function () {// complete console.log("pay complete")}});}});}});}});},/*** 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成*/onReady: function () {},/*** 生命周期函數(shù)--監(jiān)聽頁面顯示*/onShow: function () {},/*** 生命周期函數(shù)--監(jiān)聽頁面隱藏*/onHide: function () {},/*** 生命周期函數(shù)--監(jiān)聽頁面卸載*/onUnload: function () {},/*** 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動(dòng)作*/onPullDownRefresh: function () {},/*** 頁面上拉觸底事件的處理函數(shù)*/onReachBottom: function () {},/*** 用戶點(diǎn)擊右上角分享*/onShareAppMessage: function () {},})?
小程序端的代碼我略微做出了寫改正就是,把 博主原來的
doWxPay(res.data)這個(gè)函數(shù)直接寫在的 onload()函數(shù)中。 其他需要注意的地方就是,小程序我新建了一個(gè)pay 的page,在app.json中把它放在了最上面,所以可以直接調(diào)用到該方法。。 期間遇到的寫bug: 1 注意商戶的支付秘鑰和小程序的秘鑰是不同的,注意在java代碼中填寫正確。 2 其他的坑就是在返回參數(shù)的時(shí)候少寫=? ?調(diào)用微信 支付借口失敗,顯示沒有支付金額。。其實(shí)是 "prepay_id=" 要帶等號(hào)。?
轉(zhuǎn)載于:https://www.cnblogs.com/prader6/p/10394987.html
總結(jié)
以上是生活随笔為你收集整理的微信小程序支付,带java源码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机天猫如何解绑银行卡
- 下一篇: 国内创业活动平台,创业赛事报名网站