日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

吊炸天SpringBoot接入支付宝支付【附关键代码】

發布時間:2023/12/20 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吊炸天SpringBoot接入支付宝支付【附关键代码】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下載電腦網站的官方demo:

建議:新手第一次接入支付的還是下載看看,了解下,readme.txt好好看下,包括以后看第三方的此文件最好先瀏覽下,要不容易踩坑
下面會有專門sdk接入指南

下載:https://docs.open.alipay.com/270/106291/

阿里源碼主要Demo

package com.alipay.config;/* **類名:AlipayConfig*功能:基礎配置類*詳細:設置帳戶有關信息及返回路徑*修改日期:2017-04-05*說明:*以下代碼只是為了方便商戶測試而提供的樣例代碼,商戶可以根據自己網站的需要,按照技術文檔編寫,并非一定要使用該代碼。*該代碼僅供學習和研究支付寶接口使用,只是提供一個參考。*/public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓請在這里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓// 應用ID,您的APPID,收款賬號既是您的APPID對應支付寶賬號public static String app_id = "2016102400748331";// 商戶私鑰,您的PKCS8格式RSA2私鑰public static String merchant_private_key = "";// 支付寶公鑰,查看地址:https://openhome.alipay.com/platform/keyManage.htm 對應APPID下的支付寶公鑰。public static String alipay_public_key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB\n";// 服務器異步通知頁面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數,必須外網可以正常訪問public static String notify_url = "http://工程公網訪問地址/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";// 頁面跳轉同步通知頁面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數,必須外網可以正常訪問public static String return_url = "http://工程公網訪問地址/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";// 簽名方式public static String sign_type = "RSA2";// 字符編碼格式public static String charset = "utf-8";// 支付寶網關public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";// 支付寶網關public static String log_path = "C:\\";}

?

下面正式注冊螞蟻開發者賬號

注冊地址:https://open.alipay.com?

選擇如下

?設置appid?以及ras密鑰

ras在支付寶支付的應用(就是非對稱假冒,公鑰用來生成支付寶密鑰【傳輸數據】,然后私鑰在你程序中用來解密數據)

設置密鑰

?

?

然后下載密鑰生成工具如下

?

第三方sdk

<dependency><groupId>net.guerlab</groupId><artifactId>sdk-alipay-starter</artifactId><version>2.1.0</version> </dependency>

然后將生成的公鑰到網站上面粘貼,獲取支付寶公鑰,將支付寶公鑰替換程序中的公鑰,將你生成的私鑰替換代碼中的私鑰

示例

spring:mvc:view:# 頁面默認前綴目錄prefix: /WEB-INF/jsp/# 響應頁面默認后綴suffix: .jsp server:port: 9999appid: wx60c1c374fd1329a2 secret: b6e4ebc42a1fa92d1ea7ea440e52d648 redirectUri: http://moran1012.natapp1.cc/callback ### 生成微信授權 authorizedUrl: https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect ###獲取code后,請求以下鏈接獲取access_token access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code ###拉取用戶信息(需scope為 snsapi_userinfo) userinfo: https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN alipay:#默認false,為true表示使用沙箱環境dev: true#簽名算法 RSA2 RSAsign-type: RSA2#應用IDapp-id: 2012101200736715#應用私鑰private-key: MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQDOP2FcM6sWiapQQqSBE4Y3OvXb6r0WVhmuZN9N7LdrQRV516Kxg4OL7goMei7i1gzY3becqhiVYdRG+q0WhZ3K0i8EecpUeTUG7avxMYFsc9CoQNd/IxRXy+qRrg6Y7QAvuwhSakse+k/3+VUVto/i3wIY+Satph//iIzawKqMRZxZbhX7SjvK4Iaajitvqd3NcWhmh179XxkBA3ySQoWXLNO2FFs8sdmpRVV5MweZBJVaGwW2OQpAMs4tkpdrWf2m8iFUanIRW/6GeApt58tlPgkkt3TyP9rAQPLY+fKxScbNaPbvB9E8ZGkKoaA9/TJZPwlKxtSF1x/k1pEAp5m1AgMBAAECgf8t6+7BmL9/RSemty/pjW9U3MvhK2Lulj0hl1QhBZPRTax6dIjE/YNMpLOYE5xc5Uv2/Wbkevr+R8n8A9SGLzny7tmJJZTnOhWUdVbTXTJz81WCIO3aYPUml0CjLx4Q7rQb7Ijt0LzpKNKgfeNz8jIXUZAl/1OdVl/JhZ3XFw7iLDbTACqTKCENTFz9XlJ80JsUCibDUJi2pqC4nZcHJOSxvPLVIOOFn7XdtuqdrwlWtAOk0m/Rbf1XVf6JPbS7dNgJk+n8c1TvRZz2wrid5m7ctuQyyxfdut0vZxBYgzZX10RXrXB1hZDHmyItZAUa0hmxUT/un9ufQ46r3QEd0w0CgYEA/Wp/m8eai6uyr+X7nHNg968EFF4phovTRd9W0XIRYqToylL3os9HIKE5U+/sekGEzX/70aqJxw9SiT/h5ADgejRL4piDWfJxu05tA/O3bboQBg1rPd1vkQOitaoyf9AO/Ge2ugjGGskkwosj9d5z5mz9GSpPS/ZyBpqOgghXN/8CgYEA0FnBm4wPVVwi/dU3VT8Jmj91R3IP4UyBTzcJlkVQ7ccCRbObuf9TOROcs7N7gUNVxksjVRnCF07aRYDYCN6EZkhVnwN+kzSDcO/3H2a6Ij+jfGtkfpMR0uhAz9OgbbJrJEZLlwFp3ilM2BAhADWaET2OxoTc2fUvjf1zksCgYBQuPflG3PzQcItncjEUUx2GV3nTwdTQH8QJtB07yzyiy1MJZmUVwqFLlYgkrB1USGIhFgmtXgl3I+iAKNoCY933ei+SW6t3Di2PYkkVSH85ePsyaF7l2nOe6X80DY92Hytkiv2nozcQ25eOgw+aZnpsJX+yidwPxSbXeg/K4D86QKBgHO+GO7HLNF3oLywENAbd8Mnk4hAFhBLxt3xrjK7iQy+bEW6VD1MWLgxa/DsOSUC+ghxP0yMRaVbGahYviqXKqgDcQUnUhUAyzaMLHiXEON1J3QcfoTuCEU67dsBaY37QiqPF5P0+y8k0cNKI0PaKZzrNjCwdrU4dCu9N5MAVV3nAoGBAKcTefy22LXuduw0HeTxR1JGwn9eg/whPVxSPPfFxNTGxKicoP4eKy4bQYSscI9cgS5GTFXqEHEaLeEKuLEV4/auZ/7b5+o+BfjsQnyaxV8A8fgQNAUv5Q7rU/zrgQM8E4MXP99bQNOJJgAjm7+dpRZ/GJL9SiAHkJL5h2McSNCh#支付寶公鑰alipay-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhWdnts9UIBLSwIin1IToaCXc5xV2vX6BhOFms6K7pbzNVFCQ3tgnqrPbpjyI6ZUTwPTbhu3u+aafbC1hOQAsciBALxTP/pDe+AOPDoUo5Yj9D+Io+Q6d/sEDtsJQuaPpWMET0qM4Nngn1iroJYef4CbenjFMZ4IYzciBZlNgVzSgf6ZOvF9C7tAwpaURFs2r2e8HxoyUrv/T7oVU5Ws/a70FpQB4JuirKIeTLEE4fia9IjMOOmicXcFlpR0ht/m8ggAdr5o+hl+vU1EKcTUJKCogRdlt29DZQ2RLutr0tIaFAJ2kzoocLtQW7AyI8TnHZFDFqJiBap1GsQgltMGWBwIDAQAB

支付代碼

/*** @ClassName AliPayController* @Description TODO* @Author moran* @Date 2020/4/21 16:04**/ @Slf4j @RestController @RequestMapping("/open/api/pay") public class AliPayController {@Autowiredprivate AlipayClient client;@Autowiredprivate AlipayProperties properties;private static final String REDIRECT_WFWZS_URL = "http://moran1012.natapp1.cc/return_url.jsp";@GetMapping("/submit_pay")public void submitPay(HttpServletResponse response) throws AlipayApiException, IOException {JSONObject data = new JSONObject();String orderNo = System.currentTimeMillis()+ "";data.put("out_trade_no",orderNo ); // 商戶訂單號data.put("total_amount", "0.01"); // 訂單金額data.put("subject", "測試支付寶下單"); // 訂單標題data.put("product_code", "FAST_INSTANT_TRADE_PAY"); // 產品碼, PC支付 FAST_INSTANT_TRADE_PAY,AlipayTradePagePayRequest requestAli = new AlipayTradePagePayRequest();requestAli.setNotifyUrl("http://moran1012.natapp1.cc/open/api/pay/notify_ali"); // 異步通知地址requestAli.setBizContent(data.toJSONString()); // 業務參數String returnUrl = REDIRECT_WFWZS_URL + "?orderNo=" + orderNo;requestAli.setReturnUrl(returnUrl);String from = client.pageExecute(requestAli).getBody();response.setContentType("text/html;charset=UTF-8");response.getWriter().write(from);}/*** 異步通知**/@PostMapping("/notify_ali")public void notifyAli(HttpServletRequest request, HttpServletResponse response) throws Exception {log.info("支付寶異步通知數據:{}", ServletUtil.getParamMap(request));if (!AlipayUtils.rsaCheck(properties, request.getParameterMap())) {// 這里處理驗簽失敗log.error("支付寶異步通知驗簽失敗");response.getWriter().write("fail");response.getWriter().flush();response.getWriter().close();} else {String out_trade_no = request.getParameter("out_trade_no");// 獲取請求參數中的商戶訂單號log.info("支付寶異步通知驗簽成功,訂單號:{}", out_trade_no);// 交易狀態String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"), "UTF-8");if (trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")) {// TRADE_FINISHED 退款日期超過可退款期限后(如三個月可退款),支付寶系統發送該交易狀態通知// TRADE_SUCCESS 付款完成后,支付寶系統發送該交易狀態通知// 判斷該筆訂單是否在商戶網站中已經做過處理// 如果沒有做過處理,根據訂單號(out_trade_no)在商戶網站的訂單系統中查到該筆訂單的詳細,并執行商戶的業務程序// 如果有做過處理,不執行商戶的業務程序}response.getWriter().write("success");response.getWriter().flush();response.getWriter().close();}}}

前端頁面請求支付

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script><body><button onclick="ww()">pay</button> </body> <script type="text/javascript">function pay(){$.ajax({url: "../open/api/pay/submit_pay",type: "get",success: function(r) {//將支付寶返回的數據渲染 div$("body").append(r);}})} </script>

?

總結

以上是生活随笔為你收集整理的吊炸天SpringBoot接入支付宝支付【附关键代码】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。