<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SpringBoot 支付寶付款接口類、支付異步回調(diào)函數(shù)模板

      1.付款接口類

      1.1.引入Maven依賴

      <dependency>
          <groupId>com.alipay.sdk</groupId>
          <artifactId>alipay-sdk-java</artifactId>
          <version>4.38.221.ALL</version>
      </dependency>

      1.2.將下面代碼保存為AlipayTemplate.java

      @Configuration
      @ConfigurationProperties("alipay")
      @Data
      public class AlipayTemplate {
          private String notifyUrl="";
          private String returnUrl="";
      
          private String serverUrl;//網(wǎng)關(guān)地址
          private String appId;//應(yīng)用ID
          private String privateKey;//私鑰
          private String format="json";
          private String charset="UTF-8";
          private String alipayPublicKey;//公鑰
          private String signType="RSA2";
      
          public String pay(String outTradeNo, BigDecimal totalAmount,String subject) throws AlipayApiException {
              AlipayClient alipayClient = new DefaultAlipayClient(
                      serverUrl,//網(wǎng)關(guān)地址
                      appId,//應(yīng)用ID
                      privateKey,//私鑰
                      format,
                      charset,
                      alipayPublicKey,//公鑰
                      signType//加密算法
              );
              AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
              //異步接收地址,僅支持http/https,公網(wǎng)可訪問
              request.setNotifyUrl(notifyUrl);
              //同步跳轉(zhuǎn)地址,僅支持http/https
              request.setReturnUrl(returnUrl);
              /******必傳參數(shù)******/
              JSONObject bizContent = new JSONObject();
              //商戶訂單號(hào),商家自定義,保持唯一性
              bizContent.put("out_trade_no", outTradeNo);
              //支付金額,最小值0.01元,保留兩位小數(shù)向上取整
              bizContent.put("total_amount", totalAmount.setScale(2, RoundingMode.UP));
              //訂單標(biāo)題,不可使用特殊符號(hào)
              bizContent.put("subject", subject);
              //電腦網(wǎng)站支付場(chǎng)景固定傳值FAST_INSTANT_TRADE_PAY
              bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
      
              /******可選參數(shù)******/
              /**
               * time_expire可選string(32)
               * 【描述】訂單絕對(duì)超時(shí)時(shí)間。
               * 格式為yyyy-MM-dd HH:mm:ss。超時(shí)時(shí)間范圍:1m~15d。
               * 注:time_expire和timeout_express兩者只需傳入一個(gè)或者都不傳,兩者均傳入時(shí),優(yōu)先使用time_expire。
               * 【示例值】2016-12-31 10:05:01
               */
              //bizContent.put("time_expire", LocalDateTime.now(ZoneId.of("Asia/Shanghai")).plusMinutes(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
      
      
              //// 商品明細(xì)信息,按需傳入
              //JSONArray goodsDetail = new JSONArray();
              //JSONObject goods1 = new JSONObject();
              //goods1.put("goods_id", "goodsNo1");
              //goods1.put("goods_name", "子商品1");
              //goods1.put("quantity", 1);
              //goods1.put("price", 0.01);
              //goodsDetail.add(goods1);
              //bizContent.put("goods_detail", goodsDetail);
      
              //// 擴(kuò)展信息,按需傳入
              //JSONObject extendParams = new JSONObject();
              //extendParams.put("sys_service_provider_id", "2088511833207846");
              //bizContent.put("extend_params", extendParams);
      
              request.setBizContent(bizContent.toString());
              AlipayTradePagePayResponse response = alipayClient.pageExecute(request,"POST");
              // 如果需要返回GET請(qǐng)求,請(qǐng)使用
              // AlipayTradePagePayResponse response = alipayClient.pageExecute(request,"GET");
              String pageRedirectionData = response.getBody();
              // System.out.println(pageRedirectionData);
              return pageRedirectionData;
              /*if(response.isSuccess()){
                  System.out.println("調(diào)用成功");
              } else {
                  System.out.println("調(diào)用失敗");
              }*/
          }
      }

      1.3.支付調(diào)用范例

      @RequiredArgsConstructor
      @Controller
      public class PayWebController {
          private final AlipayTemplate alipayTemplate;//依賴注入
          @ResponseBody
          @GetMapping(value = "/pay",produces = MediaType.TEXT_HTML_VALUE)
          public String payOrder(@RequestParam("orderSn") String orderSn) throws AlipayApiException {//傳入orderSn訂單號(hào)
              BigDecimal totalAmount = new BigDecimal(100);//支付金額
              String subject = "支付測(cè)試";//支付標(biāo)題
              return alipayTemplate.pay(orderSn,totalAmount,subject);
          }
      }

       

      2. 支付異步回調(diào)函數(shù)模板

      @RequiredArgsConstructor
      @Controller
      public class payedListener {
          private final AlipayTemplate alipayTemplate;
          @ResponseBody
          @PostMapping("/payed/notify")
          public String handleAlipayed(@RequestParam Map<String,String> paramsMap) throws AlipayApiException {
              try {
                  boolean signVerified = AlipaySignature.rsaCheckV1(paramsMap, alipayTemplate.getAlipayPublicKey(), alipayTemplate.getCharset(), alipayTemplate.getSignType()); //調(diào)用SDK驗(yàn)證簽名
                  if(signVerified){
                      //驗(yàn)簽成功,執(zhí)行正常業(yè)務(wù)代碼
                      return "success";
                  }else{
                      //驗(yàn)簽失敗
                  }
              }catch (Exception ignored){
              }
              return "failure";
          }
      }

       

      posted @ 2024-03-07 19:38  Yfeil  閱讀(606)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 日本精品aⅴ一区二区三区| 普兰店市| 一本久道久久综合中文字幕| 丁香五月婷激情综合第九色| 极品少妇xxxx| 国产av丝袜熟女一二三| 亚洲成av人片色午夜乱码| 起碰免费公开97在线视频| 亚洲精品日韩在线观看| 香港特级三A毛片免费观看| 国产尤物精品自在拍视频首页| 狠狠躁日日躁夜夜躁欧美老妇 | 国产一区二区在线影院| 亚洲色大成网站www永久男同| 亚洲国产精品高清线久久| 视频一区视频二区中文字幕| 毛片久久网站小视频| 激情五月日韩中文字幕| 日韩区中文字幕在线观看| 国产精品激情av在线播放| 依依成人精品视频在线观看| 国产免费午夜福利在线播放| 色综合久久网| 精品国产欧美一区二区三区在线 | 久久久久成人精品无码中文字幕 | 极品一区二区三区水蜜桃| 久久香蕉国产线熟妇人妻| 国产熟睡乱子伦视频在线播放| 熟妇人妻久久春色视频网| 亚洲av无码专区在线亚| 亚洲高潮喷水无码AV电影| 久热99热这里只有精品| 大地资源中文在线观看西瓜| 欧洲无码一区二区三区在线观看| 国产成人精品无人区一区| 成人一区二区三区在线午夜| 精品人妻一区二区三区蜜臀| 国产熟女精品一区二区三区| 免费无码中文字幕A级毛片| 90后极品粉嫩小泬20p| 亚洲精品一二三伦理中文|