国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【uni-app微信小程序】實現(xiàn)支付功能

這篇具有很好參考價值的文章主要介紹了【uni-app微信小程序】實現(xiàn)支付功能。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、說明:

實現(xiàn)微信支付功能需要在小程序后臺配置支付相關信息,并且在前端代碼中調(diào)用微信支付API進行支付操作。好的,uni-app微信小程序實現(xiàn)支付功能整體流程大致如下:

  1. 注冊微信公眾平臺,并完成開發(fā)者資質認證;

  2. 在微信商戶平臺注冊商戶賬號,并完成商戶資質認證;

  3. 在商戶后臺創(chuàng)建支付訂單,得到prepay_id;

  4. 在客戶端調(diào)用微信支付API,進行支付請求;

  5. 微信返回支付結果給服務器端,服務器端進行結果驗證和訂單更新;

  6. 將訂單狀態(tài)告知客戶端,支付完成。

二、簡單介紹一下每個步驟的細節(jié):

1. 注冊微信公眾平臺

  • 注冊地址:微信公眾平臺 - 申請開通商戶號,并對應綁定好微信小程序。

  • 開發(fā)文檔地址:微信官方文檔

2. 注冊微信商戶平臺

  • 注冊地址:接入微信支付 - 中添加產(chǎn)品并獲取到API密鑰、商戶號等相關信息。
  • 開發(fā)文檔地址:微信支付文檔

注意: 此商戶號,需要由主管及更上級領導進行注冊,會成為公司收款賬戶(不是由前端程序員注冊!?。〔皇怯汕岸顺绦騿T注冊?。?!不是由前端程序員注冊?。?!

注冊非常簡單,重點是需要提供企業(yè)資料,一般程序員沒有權限獲取這些材料,所以需要由上級注冊

企業(yè)注冊需要材料:營業(yè)執(zhí)照,對公銀行賬戶信息,法人身份證

3. 創(chuàng)建支付訂單,請求后端接口,獲取orderInfo

這里進行說明 orderInfo完全是后端返回的,前端不做任何處理
所以orderInfo有問題推給后端,前端不用浪費時間, app的支付不管ios還是android都是string類型

微信orderinfo格式   
 "{\"appid\":\"xxxxxxxx\",\"partnerid\":\"xxxxxxx\",\"prepayid\":\"xxxxxxxxxxxxxxxx\",\"timestamp\":\"1579779903\",\"noncestr\":\"xxxxxxx\",\"package\":\"Sign": "WXPay\",\"sign\":\"xxxxxxxxxxxxxxxxxxxx\"}"  

在這里我們簡單舉一個例子,以Node.js為例,后端代碼可能如下所示(變量不是很全,各位后端自己看著改):

const wxpay = require('node-weixin-pay');
const config = {
  appid: 'your appid',
  mch_id: 'your merchant id',
  partner_key: 'your partner key',
  pfx: fs.readFileSync('path to your p12 file'),
};
const payment = {
  body: 'Your order description',
  out_trade_no: 'Your order number',
  total_fee: 1,
  spbill_create_ip: 'Your ip address',
  notify_url: 'Your notify url',
  trade_type: 'JSAPI',
  openid: 'Your openid',
};
wxpay.getBrandWCPayRequestParams(payment, config, (err, result) => {
  if (err) {
    console.error(err);
  } else {
    // 返回給前端的支付參數(shù)
    const orderinfo = {
      appId: result.appId,
      timeStamp: result.timeStamp,
      nonceStr: result.nonceStr,
      package: result.package,
      signType: result.signType,
      paySign: result.paySign,
    };
  }
});

其中,node-weixin-pay是用來對微信支付進行封裝的第三方庫,具體使用方法可以參考其官方文檔。
上述代碼中,需要使用你的 appid、mch_id、partner_key等參數(shù),這些參數(shù)是你自己在注冊微信支付時所獲得的。我們將 payment 對象傳遞給 getBrandWCPayRequestParams() 方法,并帶上 config 對象,該方法會返回一個 加密后的訂單信息(即orderInfo)。
最后,我們將加密后的訂單信息返回給前端,前端頁面拿到該信息后即可使用微信支付API,向微信服務器發(fā)送請求,完成支付流程。

微信支付統(tǒng)一下單接口返回的支付參數(shù)包含以下含義(重要?。。。?/h4>
  • appid:小程序或公眾號的AppID
  • partnerid:商戶號
  • prepayid:預支付交易會話標識
  • noncestr:隨機字符串,不長于32位
  • timestamp:時間戳,表示當前時間,格式為yyyyMMddHHmmss
  • package:統(tǒng)一下單接口返回的prepay_id參數(shù)值,此處將其賦值給package,是客戶端調(diào)起微信支付時的必要參數(shù)
  • sign:簽名,通過簽名算法計算得出,用于驗簽支付結果是否合法。

在客戶端調(diào)起微信支付時,需要將以上參數(shù)傳遞給微信支付API發(fā)送請求完成支付。

4. 調(diào)用微信支付API

在客戶端調(diào)用微信提供的wx.requestPayment方法,需要傳入如下參數(shù):

  • timeStamp: 時間戳,自1970年以來的秒數(shù)

  • nonceStr: 隨機字符串,不長于32位

  • package: 統(tǒng)一下單接口返回的prepay_id參數(shù)值,格式為prepay_id=xxx

  • signType: 簽名算法,目前支持HMAC-SHA256和MD5,默認使用MD5

  • paySign: 簽名

第三步、第四步一起的示例代碼:

uni.request({
  url: '你們公司的后端接口地址,獲取支付核心數(shù)據(jù)',
  method: 'POST',
  data: { 接口需要什么參數(shù)就傳給接口,包含扣款金額,訂單id等 },
  success(obj) {
    
 
    //調(diào)用微信官方支付接口彈出付款界面,輸入密碼扣款
    wx.requestPayment({
      timeStamp: obj.xxxx.timeStamp,  //后端返回的時間戳
      nonceStr:  obj.xxxx.nonceStr,   //后端返回的隨機字符串
      package:  obj.xxxx.packageValue, //后端返回的prepay_id
      signType: 'MD5', //后端簽名算法,根據(jù)后端來,后端MD5這里即為MD5
      paySign:  obj.xxxx.paySign,  //后端返回的簽名
      success (res) {
        console.log('用戶支付扣款成功', res)
      },
      fail (res) { 
        console.log('用戶支付扣款失敗', res)
      }
     })
 
  }
})

以上就是前端實現(xiàn)微信支付功能的基本步驟,需要注意的是,在實際開發(fā)中,還需要考慮支付安全、支付異常情況等問題。同時,建議開發(fā)者使用uni-app官方提供的微信支付插件來減少開發(fā)成本和難度。

5. 驗證支付結果和更新訂單狀態(tài)

在微信回調(diào)服務器通知支付結果后,服務器需要進行結果驗證和處理訂單狀態(tài)。具體步驟如下:

  • 將收到的xml轉化為數(shù)組,驗證簽名是否一致;

  • 判斷支付結果中的return_coderesult_code是否都為SUCCESS;

  • 根據(jù)out_trade_no查詢訂單信息,判斷訂單狀態(tài);

  • 更新訂單狀態(tài)為已支付/支付失敗。

6. 支付完成

將支付結果告知客戶端,客戶端根據(jù)支付結果進行相應的頁面跳轉處理。文章來源地址http://www.zghlxwxcb.cn/news/detail-539808.html

到了這里,關于【uni-app微信小程序】實現(xiàn)支付功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • uni-app map路線軌跡回放功能及turf.js實現(xiàn)緩沖區(qū)渲染(微信小程序)

    uni-app map路線軌跡回放功能及turf.js實現(xiàn)緩沖區(qū)渲染(微信小程序)

    使用uni-app中 map組件實現(xiàn)路線軌跡回放功能。? 1、通過接口獲取返回的軌跡點。 2、地圖的坐標系與軌跡點的坐標系要保持一致,否則軌跡有偏差。點經(jīng)緯度轉換,wgs84togcj02 =》js工具類合集(utils.js) 3、繪制開始結束點,設置地圖經(jīng)緯度。 4、polyline,繪制路線點,屬性:[

    2024年02月11日
    瀏覽(108)
  • uni-app Vue3實現(xiàn)一個酷炫的多功能音樂播放器支持微信小程序后臺播放

    uni-app Vue3實現(xiàn)一個酷炫的多功能音樂播放器支持微信小程序后臺播放

    本文存在多張gif演示圖,建議在 wifi 環(huán)境下閱讀?? 最近在做網(wǎng)易云音樂微信小程序開源項目的時候,關于 播放器功能 參考了一些成熟的微信小程序,如 網(wǎng)易云音樂小程序 和 QQ音樂小程序 ,但是發(fā)現(xiàn)這些 小程序端 的播放器相對于 APP端 來說較簡單,只支持一些基礎功能,

    2024年01月24日
    瀏覽(104)
  • uni-app微信小程序分享微信好友與分享到朋友圈功能【vue3+ts+uni-app+vite】

    uni-app微信小程序分享微信好友與分享到朋友圈功能【vue3+ts+uni-app+vite】

    微信小程序開發(fā)結束之后,點擊右上角三個點顯示: 1、創(chuàng)建share.ts文件 2、全局使用, 在 main.ts 里面 添加全局的 mixin 這樣配置結束之后整個小程序所有頁面點擊右上角轉發(fā)分享都走的這個文件,如果需要單個頁面可以轉發(fā),可以看第三點 3、在需要的頁面進行調(diào)用就行啦 a.

    2024年02月14日
    瀏覽(159)
  • uni-app中實現(xiàn)微信小程序/公眾號訂閱消息推送功能

    uni-app中實現(xiàn)微信小程序/公眾號訂閱消息推送功能

    ??????? 熱愛攝影的程序員 ??????? 喜歡編碼的設計師 ???? 擅長設計的剪輯師 ??????? 一位高冷無情的編碼愛好者 大家好,我是全棧 IT 工程師摘星人 歡迎分享 / 收藏 / 贊 / 在看! 開發(fā)業(yè)務時時常遇到需要向用戶發(fā)送一些通知,如欠費通知、會員到期通知等等。

    2024年02月02日
    瀏覽(97)
  • uni-app/微信小程序 分享功能(開啟右上角分享)@令狐張豪

    end~~~ 如有錯誤或觀點不一致的請評論留言共同討論,本人前端小白一枚,根據(jù)自己實際項目遇到的問題進行總結分享,謝謝大家的閱讀! 文章對您有所幫助請給作者點個贊支持下,謝謝~

    2024年02月15日
    瀏覽(30)
  • uni-app 微信小程序 支付寶小程序(alipay) 百度小程序(baidu),預覽pdf(鏈接和base64) 及下載(僅微信),window.open uni.downloadFile

    uni-app 微信小程序 支付寶小程序(alipay) 百度小程序(baidu),預覽pdf(鏈接和base64) 及下載(僅微信),window.open uni.downloadFile

    廢話不多說直接上代碼吧 之前搜了一大堆有的沒的,最終還是小伙伴巴拉文檔一起找到的方案(離不開小伙伴的幫助,自己總容易陷入死局,在此鳴謝 疾風李青!); 想起個事:一定要給這些路徑的域名配到相應的開發(fā)管理上,其他平臺不過多贅述了 首先是預覽,由于我這

    2024年02月15日
    瀏覽(95)
  • 微信小程序一鍵登錄功能,使用uni-app和springboot(JWT鑒權)

    微信小程序一鍵登錄功能,使用uni-app和springboot(JWT鑒權)

    目錄 概述 微信登錄接口說明 ?關于獲取微信用戶的信息 前端代碼(uni-app) 后端代碼(SpringBoot) 配置文件:application.yml? 配置文件:Pom.xml? 類:WeChatModel?? ?類:WeChatSessionModel ?類:UserInfoController 業(yè)務層實現(xiàn)類:UserInfoServiceImpl 工具類:JWTUtils 攔截器配置-自定義攔截器

    2024年02月09日
    瀏覽(17)
  • 搖骰子設計與實現(xiàn)(uni-app微信小程序)

    搖骰子設計與實現(xiàn)(uni-app微信小程序)

    手機搖一搖可以搖骰子,上劃可查看結果,震動加聲音等功能。 本章底部會貼出所有代碼 ,圖片資源以及音頻資源很簡單,自己找一下就行了。 已經(jīng)上線小程序,可以掃碼直接預覽效果。 新建一個項目,將已經(jīng)準備好的資源,放入到項目中。下面是需要資源圖片的示例。

    2024年02月12日
    瀏覽(83)
  • 微信小程序canvas實現(xiàn)簡易手寫簽名版(uni-app)

    微信小程序canvas實現(xiàn)簡易手寫簽名版(uni-app)

    微信小程序可以通過canvas實現(xiàn)手寫簽名的效果,本文中使用的是微信小程序Canvas 2D接口 本示例中繪制的是橫屏簽名的效果,效果圖如下: 這里我們需要調(diào)整canvas的物理寬高,默認物理寬高為300*150px,物理寬高調(diào)整通過css樣式即可,本文中需要根據(jù)屏幕高度進行動態(tài)調(diào)整,使

    2024年02月12日
    瀏覽(100)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包