最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot實現(xiàn)小程序支付的項目實踐

 更新時間:2023年09月15日 11:28:17   作者:微服匯網(wǎng)絡(luò)科技  
本文主要介紹了springboot實現(xiàn)小程序支付的項目實踐,?可以通過調(diào)用微信支付?API?實現(xiàn)支付功能,具有一定的參考價值,感興趣的可以了解一下

今天給大家分享java小程序支付

首先我們學(xué)習(xí)任何東西要先看官網(wǎng)

下面是支付業(yè)務(wù)流程

我們具體用代碼去實現(xiàn)上面的業(yè)務(wù)流程

功能截圖

代碼截圖

 pay(){
    //調(diào)用后臺生成訂單
    var orderNumber = "20210101123456";
    var amount = 0.01;
    WxPay.wxpay(app, amount, orderNumber, '支付測試', function(code) {
      // 下單成功,跳轉(zhuǎn)到訂單管理界面
      if (code == 0) {
      }
    });
  },
function wxpay(app, money, orderNum, goodsName, callback) {
  wx.request({
    header: {
      "token": app.globalData.token
    },
    url: app.globalData.domain + '/api/pay/wechat/unifiedOrder',
    data: {
      storeId: app.globalData.storeId,
      orderNum: orderNum,
      totalAmount: money,
      goodsName: goodsName
    },
    success: function (res) {
      if (res.data.code == 0) {
        // 發(fā)起支付
        wx.requestPayment({
          timeStamp: res.data.data.timeStamp,
          nonceStr: res.data.data.nonceStr,
          package: res.data.data.package,
          signType: 'MD5',
          paySign: res.data.data.paySign,
          fail: function (resp) {
            wx.showToast({
              title: '支付失敗',
              icon: 'none'
            })
            callback(1);
          },
          success: function () {
            wx.showToast({
              title: '支付成功',
              icon: 'none'
            })
            callback(0);
          }
        })
      } else {
        wx.showToast({
          title: res.data.msg,
          icon: 'none'
        })
        callback(1);
      }
    }
  })
}
/**
     * 統(tǒng)一下單(詳見https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1)
     * 在發(fā)起微信支付前,需要調(diào)用統(tǒng)一下單接口,獲取"預(yù)支付交易會話標(biāo)識"
     * 接口地址:https://api.mch.weixin.qq.com/pay/unifiedorder
     *
     * @param request 請求對象,注意一些參數(shù)如appid、mchid等不用設(shè)置,方法內(nèi)會自動從配置對象中獲取到(前提是對應(yīng)配置中已經(jīng)設(shè)置)
     */
    @GetMapping("/unifiedOrder")
    public R unifiedOrder(@RequestAttribute("userId") Long userId, String orderNum, BigDecimal totalAmount, String goodsName, HttpServletRequest req) throws WxPayException {
    	WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
    	request.setOutTradeNo(orderNum);
    	MemberEntity member = memberService.queryObject(userId);
    	request.setOpenid(member.getOpenid());
    	request.setBody(goodsName);
    	request.setNotifyUrl(notifyUrl);
    	request.setTotalFee(totalAmount.multiply(new BigDecimal(100)).intValue());
    	request.setSpbillCreateIp(IPUtils.getIpAddr(req));
    	request.setTradeType("JSAPI");
    	WxPayUnifiedOrderResult result = wxPayService.unifiedOrder(request);
    	String timeStamp = String.valueOf(System.currentTimeMillis() / 1000);
        String nonceStr = String.valueOf(System.currentTimeMillis());
    	//signKey 商戶平臺設(shè)置的密鑰key
    	//簽名字段:appId,timeStamp,nonceStr,package,signType
    	Map params = new HashMap();
    	params.put("appId", wxPayService.getConfig().getAppId());
    	params.put("timeStamp", timeStamp);
    	params.put("nonceStr", nonceStr);
    	params.put("package", "prepay_id=" + result.getPrepayId());
    	params.put("signType", "MD5");
    	String sign = SignUtils.createSign(params, "MD5",    wxPayService.getConfig().getMchKey(), new String[0]);
    	params.put("paySign", sign);
    	return R.ok().put("data", params);
    }

到此這篇關(guān)于springboot實現(xiàn)小程序支付的項目實踐的文章就介紹到這了,更多相關(guān)springboot 小程序支付內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java自動化實現(xiàn)在Excel工作表中創(chuàng)建、修改和刪除表格

    Java自動化實現(xiàn)在Excel工作表中創(chuàng)建、修改和刪除表格

    在Java應(yīng)用中,我們經(jīng)常需要動態(tài)處理Excel里的表格,本文將使用Spire.XLS for Java輕松搞定表格的創(chuàng)建、修改和刪除操作,需要的可以了解下
    2025-09-09
  • Maven Plugins報錯的正確解決方案

    Maven Plugins報錯的正確解決方案

    文章介紹了如何解決Maven插件報錯的問題,建議在本地Maven倉庫目錄中刪除報錯的插件文件,然后在IDEA中刷新Maven以重新加載,同時,作者還提到了一個無效的方法,即通過修改Maven的setting.xml文件添加鏡像源
    2026-03-03
  • Springboot傳輸數(shù)據(jù)時日期格式化問題

    Springboot傳輸數(shù)據(jù)時日期格式化問題

    這篇文章主要介紹了Springboot傳輸數(shù)據(jù)時日期格式化問題,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • java后端http接口流式輸出到前端的方法示例

    java后端http接口流式輸出到前端的方法示例

    這篇文章主要介紹了java后端http接口流式輸出到前端的相關(guān)資料,對比SseEmitter與WebFlux兩種實現(xiàn)方式,通過實例代碼詳細(xì)分析了其適用場景及優(yōu)劣,需要的朋友可以參考下
    2025-09-09
  • Netty中的心跳檢測機制詳解

    Netty中的心跳檢測機制詳解

    這篇文章主要介紹了Netty中的心跳檢測機制詳解,Netty 是 基于 TCP 協(xié)議開發(fā)的,在四層協(xié)議 TCP 協(xié)議的實現(xiàn)中也提供了 keepalive 報文用來探測對端是否可用,TCP 層將在定時時間到后發(fā)送相應(yīng)的 KeepAlive 探針以確定連接可用性,需要的朋友可以參考下
    2023-12-12
  • Springboot 配置屬性綁定實現(xiàn)方式詳解

    Springboot 配置屬性綁定實現(xiàn)方式詳解

    本文詳細(xì)介紹了Spring Boot中的配置屬性綁定,包括使用@ConfigurationProperties注解進(jìn)行配置文件數(shù)據(jù)批量綁定,以及如何在JavaBean中定義配置屬性,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • 使用MQ消息隊列的優(yōu)缺點詳解

    使用MQ消息隊列的優(yōu)缺點詳解

    這篇文章主要介紹了使用MQ消息隊列的優(yōu)缺點詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 簡單了解Java方法的定義和使用實現(xiàn)詳解

    簡單了解Java方法的定義和使用實現(xiàn)詳解

    這篇文章主要介紹了簡單了解Java方法的定義和使用實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java數(shù)據(jù)結(jié)構(gòu)之基于比較的排序算法基本原理及具體實現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之基于比較的排序算法基本原理及具體實現(xiàn)

    最近剛學(xué)習(xí)完七種比較常見的基于比較的排序算法,感覺比較重要,所以寫個博客記錄一下,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下
    2021-09-09
  • MyBatisPlus?TypeHandler自定義字段類型轉(zhuǎn)換Handler

    MyBatisPlus?TypeHandler自定義字段類型轉(zhuǎn)換Handler

    這篇文章主要為大家介紹了MyBatisPlus?TypeHandler自定義字段類型轉(zhuǎn)換Handler示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評論

辉南县| 定南县| 夹江县| 东海县| 托里县| 新邵县| 宜章县| 河西区| 台南市| 汉源县| 县级市| 泽普县| 和田县| 新邵县| 延庆县| 雷州市| 柳河县| 江北区| 姜堰市| 五大连池市| 台湾省| 辰溪县| 鄯善县| 金乡县| 太原市| 鹤壁市| 类乌齐县| 郧西县| 林周县| 苏尼特左旗| 凉城县| 桑植县| 遂宁市| 布拖县| 无极县| 望江县| 阳东县| 丰顺县| 枝江市| 麻江县| 华容县|