1. 程式人生 > >微信小程序支付,帶java源碼

微信小程序支付,帶java源碼

項目 event fine 監聽 java源碼 ide otto area 也有

先說下這個的背景吧。。。

本人是做java後端的,自認為還有很大的發展空間(嘻嘻,你懂的),看過一段時間的小程序可是沒有支付成功。。。最近公司要做小程序項目,老大讓我看下小程序,折騰了好幾天,參照著https://blog.csdn.net/zhourenfei17/article/details/77765585 這篇博客,終於弄出來了。。。。。。。

雖然,效率還有很大提升空間,但是還是在這裏做下記錄,希望能後來,的人能有些參考。

上面鏈接的博文是有java代碼的(其實原文中也有小程序端代碼),我這裏只貼一下小程序端的代碼吧。

// pages/pay/pay.js
Page({

  /**
   * 頁面的初始數據
   */
  data: {
    
  },

  /**
   * 生命周期函數--監聽頁面加載
   */
  onLoad: function (options) {
    
    wx.login({
      success: function (res) {
        
        var service_url = ‘https://04f19bb6.ngrok.io/pay/weixin/login?code=
‘ + res.code;//需要將服務器域名添加到小程序的request合法域名中,而且必須是https開頭 //這裏的地址是我用ngrok 代理本機的地址(不知道ngrok 的同學可以百度下, 很簡單) 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) //小程序發起微信支付 wx.requestPayment({ timeStamp: res.data.data.timeStamp,//記住,這邊的timeStamp一定要是字符串類型的,不然會報錯,我這邊在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") } }); } }); } }); } }); }, /** * 生命周期函數--監聽頁面初次渲染完成 */ onReady: function () { }, /** * 生命周期函數--監聽頁面顯示 */ onShow: function () { }, /** * 生命周期函數--監聽頁面隱藏 */ onHide: function () { }, /** * 生命周期函數--監聽頁面卸載 */ onUnload: function () { }, /** * 頁面相關事件處理函數--監聽用戶下拉動作 */ onPullDownRefresh: function () { }, /** * 頁面上拉觸底事件的處理函數 */ onReachBottom: function () { }, /** * 用戶點擊右上角分享 */ onShareAppMessage: function () { }, })

  小程序端的代碼我略微做出了寫改正就是,把 博主原來的

doWxPay(res.data)這個函數直接寫在的 onload()函數中。 其他需要註意的地方就是,小程序我新建了一個pay 的page,在app.json中把它放在了最上面,所以可以直接調用到該方法。。 期間遇到的寫bug: 1 註意商戶的支付秘鑰和小程序的秘鑰是不同的,註意在java代碼中填寫正確。 2 其他的坑就是在返回參數的時候少寫= 調用微信 支付借口失敗,顯示沒有支付金額。。其實是
"prepay_id="  要帶等號。

微信小程序支付,帶java源碼