电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Springboot添加支付接口

瀏覽:10日期:2023-03-18 08:44:37
1. 支付寶支付接口(沙箱實(shí)現(xiàn))1.1 支付寶沙箱賬號(hào)獲取

官網(wǎng)

此處作者已經(jīng)申請(qǐng)了一個(gè)沙箱賬號(hào),申請(qǐng)過(guò)程就不再贅述

如下圖:

Springboot添加支付接口

此處可以自行設(shè)置賬戶金額

1.2 下載客戶端(目前好像只支持Android)

Springboot添加支付接口

下載完成后根據(jù)官方提供的賬號(hào)以及密碼登錄手機(jī)端支付寶賬號(hào) 如圖(商家賬號(hào)):

Springboot添加支付接口

1.3 代碼配置

工具類AlipayConfig

public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓請(qǐng)?jiān)谶@里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ // 應(yīng)用ID,您的APPID,收款賬號(hào)既是您的APPID對(duì)應(yīng)支付寶賬號(hào) public static String app_id = ''; // 商戶私鑰,您的PKCS8格式RSA2私鑰 public static String merchant_private_key = 'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC/HOeQNyultzkc5cUnqxBSTIpYt6BTgJoCHKiLQDYgPhjvSX16r08Qw82qYdQgWEs4hHNy2COGA5ksw1eW+zyY2alcTEvRMo4sqx7Ytdm250f67wZQkuPRFSJN7ywHkTipjGKNcS9z9U0Dp18jRXHow4/A9OF8jOau7pWyG0Tc87WHf5u0/G16uMpRtGRzzyNvim7cHAnyFPNrAJ+5DRBdhBg+PjV7EcpYg5LRaMqaO8qDSis+AUU4e7QOELqMgr7yxBNScQ6KksnWnztcFxz6M9T66dAZJ0dWpiB8qatM6sT/MeHTAXeYLhIbnUaxM9vGJR3AJHbHmvNa9o0ToT0LAgMBAAECggEBAIk1a1szAPc9EJgaru3H9zPfGASR8V2CGxAhGzC+rR2A9830aU5HxvA2Y9ZL3kxKl9a/4VM2smpo8vQcWypevibPPrSxYk2Tilevk7nq9aBHdHpIWbRHgaB/F930NRxJuvCfhbIe7P7Hwr84zyk3loySuwbByZHuZ0B4sqjowwwN/wbshl5m/5i4ej6AUp1LVEbxUFpNHNjIZejWVJ0Liq69l8o+1HsFIaGW1Vcrf+fmq20moZzFOLi4EmGfBp/na8JDmo3bE3X+ccAJ375OYictfZVKKYI/UIC/D+7y4XuZatLq3V3lql5ukMnAUJwTJeEapSigkJHDOX38xcSA7iECgYEA5qvIl7PGl8CwDOgTe8LoT8toTUmhAVDFwSF+ROCZD8u9qQeGG7SSCovoTQcVDuzVA3bW8d4Guvb7ZTpnUZZyWHD2rOqxh66wqHGiVTJRApNTS7XHXt3FERNgM7Y8lSoYHdarsZ7QZaJDGGkcwuGvJM0klwyuqs6LQq5DRsz9qp8CgYEA1BkiCjD5FUE/i48MFh+qYcOSiqsm7Hrj/4zuHj0QODonuUZPH0V6b3p4SIWHeBsjmSxBsqoLh2qFOzWAUeBVU3+muPHp3uglumtjZ5wE0nHCt2+0ZH+QKSk5mm8j+09xfTJ185FMusx0N9RQ4l6Rpzb7DSLQFelT4M7gvTRjAhUCgYAtUPQwcV4DdBRiBLnHJ4xSGMjd3igmRQMEpRrUVzdathEFgvfiu3+xWLkDYO/PJdHXQ2KI07CIzHqo8WdYzPCb1V1wrQ7BdB06ilB04lSt59mGVyjax0Cu0RqmLhgKyeFBA2ppk6SnQtBhnEzNMF8jILYegpxR7A/JwshuwVjYSwKBgQCTxfMGgLp6iZxZgs/b9jICrX1DKh4Tc0e5PBqHbOoJEtOsbYUg94pncz+s34PUNaxmwwP/FCS2M4wiBZOi+Bba9zxU7Q+R49KtgLagcH6XlPUiUyyvPIVXeEaPB9Jc/SvIG8k8a0a3e02ZvE6G1hETQj2GGZv0ENiSpRQKBgC8qOk7TMndVDi3vlgGky3BmxSpycwGnI0tcBZnzAyzcLPH3RL3nLvUoZ1w550be7mPDt30/WkCMKV8uKRnNVSrp1LSbT0Z6oJxsaHaCxv3C2UFzlqKWsTtiKNKhYEhjsMYj6l2nRg2CC0WIAA6MPP3xaezSWO1la39Slam0w3l'; // 支付寶公鑰,查看地址:https://openhome.alipay.com/platform/keyManage.htm 對(duì)應(yīng)APPID下的支付寶公鑰。 public static String alipay_public_key = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvxznkDcrpbc5HOXFJ6sQUkyKWLegU4CaAhyoi0A2ID4Y70l9eq9PEMPNqmHUIFhLOIRzctgjhgOZLMNXlvs8mNmpXb4pu3BwJ8hTzawCfuQ0QXYQYPj41exHKWIOS0WjKmjvKg0orPgFFOHu0DhC6jIK+8sQTUnEOipLJ1p87XBcc+jPU+unQGSdHVqYgfKmrTOrE/zHh0wF3mC4SG51GsTPbxiUdwCR2x5rzWvaNE6E9CwIDAQAB'; // 服務(wù)器異步通知頁(yè)面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問(wèn) public static String notify_url = 'http://localhost:8080/alipay/alipayNotifyNotice.action'; // 頁(yè)面跳轉(zhuǎn)同步通知頁(yè)面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問(wèn) public static String return_url = 'http://localhost:8080/alipay/alipayReturnNotice.action'; // 簽名方式 public static String sign_type = 'RSA2'; // 字符編碼格式 public static String charset = 'utf-8'; // 支付寶網(wǎng)關(guān) public static String gatewayUrl = 'https://openapi.alipaydev.com/gateway.do'; // 支付寶網(wǎng)關(guān) public static String log_path = 'C:';//↑↑↑↑↑↑↑↑↑↑請(qǐng)?jiān)谶@里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ /** * 寫日志,方便測(cè)試(看網(wǎng)站需求,也可以改成把記錄存入數(shù)據(jù)庫(kù)) * @param sWord 要寫入日志里的文本內(nèi)容 */ public static void logResult(String sWord) {FileWriter writer = null;try { writer = new FileWriter(log_path + 'alipay_log_' + System.currentTimeMillis()+'.txt'); writer.write(sWord);} catch (Exception e) { e.printStackTrace();} finally { if (writer != null) {try { writer.close();} catch (IOException e) { e.printStackTrace();} }} }}

其中的參數(shù)獲取如下: app_id

Springboot添加支付接口

商戶私鑰,以及支付寶公鑰獲取方法參考官方文檔:密鑰生成

頁(yè)面跳轉(zhuǎn)便是支付以后自動(dòng)跳轉(zhuǎn)的界面

接下來(lái)解釋編寫下單頁(yè)面:

/** * * @Title: AlipayController.java * @Package com.sihai.controller * @Description: 前往支付寶第三方網(wǎng)關(guān)進(jìn)行支付 * Copyright: Copyright (c) 2017 * Company:FURUIBOKE.SCIENCE.AND.TECHNOLOGY */ @RequestMapping(value = '/goAlipay', produces = 'text/html; charset=UTF-8') @ResponseBody public String goAlipay(String orderId, HttpServletRequest request, HttpServletRequest response) throws Exception { order = (Order) request.getSession().getAttribute('order'); orderId='FinchII';//獲得初始化的AlipayClientAlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, 'json', AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);//設(shè)置請(qǐng)求參數(shù)AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();alipayRequest.setReturnUrl(AlipayConfig.return_url);alipayRequest.setNotifyUrl(AlipayConfig.notify_url);//商戶訂單號(hào),商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號(hào),必填String out_trade_no = orderId;//付款金額,必填BigDecimal total_amount = order.getTotalPrice();//訂單名稱,必填int subject = order.getOrderId();//商品描述,可空String body = '用戶訂購(gòu)商品個(gè)數(shù):' + order.getLineItems().size();// 該筆訂單允許的最晚付款時(shí)間,逾期將關(guān)閉交易。取值范圍:1m~15d。m-分鐘,h-小時(shí),d-天,1c-當(dāng)天(1c-當(dāng)天的情況下,無(wú)論交易何時(shí)創(chuàng)建,都在0點(diǎn)關(guān)閉)。 該參數(shù)數(shù)值不接受小數(shù)點(diǎn), 如 1.5h,可轉(zhuǎn)換為 90m。String timeout_express = '1c';alipayRequest.setBizContent('{'out_trade_no':''+ out_trade_no +'','+ ''total_amount':''+ total_amount +'','+ ''subject':''+ subject +'','+ ''body':''+ body +'','+ ''timeout_express':''+ timeout_express +'','+ ''product_code':'FAST_INSTANT_TRADE_PAY'}');//請(qǐng)求String result = alipayClient.pageExecute(alipayRequest).getBody();return result; } @RequestMapping(value = '/alipayReturnNotice') public ModelAndView alipayReturnNotice(HttpServletRequest request, HttpServletRequest response) throws Exception {//獲取支付寶GET過(guò)來(lái)反饋信息Map<String,String> params = new HashMap<String,String>();Map<String,String[]> requestParams = request.getParameterMap();for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) { String name = (String) iter.next(); String[] values = (String[]) requestParams.get(name); String valueStr = ''; for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ','; } //亂碼解決,這段代碼在出現(xiàn)亂碼時(shí)使用 valueStr = new String(valueStr.getBytes('ISO-8859-1'), 'utf-8'); params.put(name, valueStr);}boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset, AlipayConfig.sign_type); //調(diào)用SDK驗(yàn)證簽名ModelAndView mv = new ModelAndView('alipaySuccess');//——請(qǐng)?jiān)谶@里編寫您的程序(以下代碼僅作參考)——if(signVerified) { //商戶訂單號(hào) Order order= (Order) request.getSession().getAttribute('order'); BigDecimal out_trade_no = order.getTotalPrice(); //支付寶交易號(hào) String trade_no = new String(request.getParameter('trade_no').getBytes('ISO-8859-1'),'UTF-8'); //付款金額 String total_amount = new String(request.getParameter('total_amount').getBytes('ISO-8859-1'),'UTF-8'); // 修改叮當(dāng)狀態(tài),改為 支付成功,已付款; 同時(shí)新增支付流水 /* Orders order = orderService.getOrderById(out_trade_no); Product product = productService.getProductById(order.getProductId()); log.info('********************** 支付成功(支付寶同步通知) **********************'); log.info('* 訂單號(hào): {}', out_trade_no); log.info('* 支付寶交易號(hào): {}', trade_no); log.info('* 實(shí)付金額: {}', total_amount); log.info('* 購(gòu)買產(chǎn)品: {}', product.getName()); log.info('***************************************************************');*/ mv.addObject('out_trade_no', out_trade_no); mv.addObject('trade_no', trade_no); mv.addObject('total_amount', total_amount); /* mv.addObject('productName', product.getName());*/}else { /* log.info('支付, 驗(yàn)簽失敗...');*/}return mv; } /** * * @Title: AlipayController.java * @Package com.sihai.controller * @Description: 支付寶異步 通知頁(yè)面 * Copyright: Copyright (c) 2017 * Company:FURUIBOKE.SCIENCE.AND.TECHNOLOGY * * @author sihai * @date 2017年8月23日 下午8:51:13 * @version V1.0 */ @RequestMapping(value = '/alipayNotifyNotice') @ResponseBody public String alipayNotifyNotice(HttpServletRequest request, HttpServletRequest response) throws Exception {//獲取支付寶POST過(guò)來(lái)反饋信息Map<String,String> params = new HashMap<String,String>();Map<String,String[]> requestParams = request.getParameterMap();for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) { String name = (String) iter.next(); String[] values = (String[]) requestParams.get(name); String valueStr = ''; for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ','; } //亂碼解決,這段代碼在出現(xiàn)亂碼時(shí)使用//valueStr = new String(valueStr.getBytes('ISO-8859-1'), 'utf-8'); params.put(name, valueStr);}boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset, AlipayConfig.sign_type); //調(diào)用SDK驗(yàn)證簽名//——請(qǐng)?jiān)谶@里編寫您的程序(以下代碼僅作參考)——/* 實(shí)際驗(yàn)證過(guò)程建議商戶務(wù)必添加以下校驗(yàn):1、需要驗(yàn)證該通知數(shù)據(jù)中的out_trade_no是否為商戶系統(tǒng)中創(chuàng)建的訂單號(hào),2、判斷total_amount是否確實(shí)為該訂單的實(shí)際金額(即商戶訂單創(chuàng)建時(shí)的金額),3、校驗(yàn)通知中的seller_id(或者seller_email) 是否為out_trade_no這筆單據(jù)的對(duì)應(yīng)的操作方(有的時(shí)候,一個(gè)商戶可能有多個(gè)seller_id/seller_email)4、驗(yàn)證app_id是否為該商戶本身。*/if(signVerified) {//驗(yàn)證成功 //商戶訂單號(hào) String out_trade_no = new String(request.getParameter('out_trade_no').getBytes('ISO-8859-1'),'UTF-8'); //支付寶交易號(hào) String trade_no = new String(request.getParameter('trade_no').getBytes('ISO-8859-1'),'UTF-8'); //交易狀態(tài) String trade_status = new String(request.getParameter('trade_status').getBytes('ISO-8859-1'),'UTF-8'); //付款金額 String total_amount = new String(request.getParameter('total_amount').getBytes('ISO-8859-1'),'UTF-8'); if(trade_status.equals('TRADE_FINISHED')){//判斷該筆訂單是否在商戶網(wǎng)站中已經(jīng)做過(guò)處理//如果沒(méi)有做過(guò)處理,根據(jù)訂單號(hào)(out_trade_no)在商戶網(wǎng)站的訂單系統(tǒng)中查到該筆訂單的詳細(xì),并執(zhí)行商戶的業(yè)務(wù)程序//如果有做過(guò)處理,不執(zhí)行商戶的業(yè)務(wù)程序//注意: 尚自習(xí)的訂單沒(méi)有退款功能, 這個(gè)條件判斷是進(jìn)不來(lái)的, 所以此處不必寫代碼//退款日期超過(guò)可退款期限后(如三個(gè)月可退款),支付寶系統(tǒng)發(fā)送該交易狀態(tài)通知 }else if (trade_status.equals('TRADE_SUCCESS')){//判斷該筆訂單是否在商戶網(wǎng)站中已經(jīng)做過(guò)處理//如果沒(méi)有做過(guò)處理,根據(jù)訂單號(hào)(out_trade_no)在商戶網(wǎng)站的訂單系統(tǒng)中查到該筆訂單的詳細(xì),并執(zhí)行商戶的業(yè)務(wù)程序//如果有做過(guò)處理,不執(zhí)行商戶的業(yè)務(wù)程序//注意://付款完成后,支付寶系統(tǒng)發(fā)送該交易狀態(tài)通知// 修改叮當(dāng)狀態(tài),改為 支付成功,已付款; 同時(shí)新增支付流水 /* orderService.updateOrderStatus(out_trade_no, trade_no, total_amount);Orders order = orderService.getOrderById(out_trade_no);Product product = productService.getProductById(order.getProductId());log.info('********************** 支付成功(支付寶異步通知) **********************');log.info('* 訂單號(hào): {}', out_trade_no);log.info('* 支付寶交易號(hào): {}', trade_no);log.info('* 實(shí)付金額: {}', total_amount);log.info('* 購(gòu)買產(chǎn)品: {}', product.getName());log.info('***************************************************************');*/ } /* log.info('支付成功...');*/}else {//驗(yàn)證失敗 /* log.info('支付, 驗(yàn)簽失敗...');*/}return 'success'; }

基本就是根據(jù)客服下單的信息進(jìn)行后端數(shù)據(jù)的獲取。

以上就是springboot添加支付接口的詳細(xì)內(nèi)容,更多關(guān)于springboot 加支付接口的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 查分易-成绩发送平台官网 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 车载加油机品牌_ 柴油加油机厂家| 早报网| ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 深圳侦探联系方式_深圳小三调查取证公司_深圳小三分离机构 | 苏州西装定制-西服定制厂家-职业装定制厂家-尺品服饰西装定做公司 | 昆山PCB加工_SMT贴片_PCB抄板_线路板焊接加工-昆山腾宸电子科技有限公司 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 浙江美尔凯特智能厨卫股份有限公司 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 浙江浩盛阀门有限公司 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 大倾角皮带机-皮带输送机-螺旋输送机-矿用皮带输送机价格厂家-河南坤威机械 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 农业仪器网 - 中国自动化农业仪器信息交流平台| 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 盛源真空泵|空压机-浙江盛源空压机制造有限公司-【盛源官网】 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 开业庆典_舞龙舞狮_乔迁奠基仪式_开工仪式-神挚龙狮鼓乐文化传媒 | 宝宝药浴-产后药浴-药浴加盟-艾裕-专注母婴调养泡浴 | IP检测-检测您的IP质量| MOOG伺服阀维修,ATOS比例流量阀维修,伺服阀维修-上海纽顿液压设备有限公司 | 电渗析,废酸回收,双极膜-山东天维膜技术有限公司 |