day66
内网穿透
NatApp
NATAPP-内网穿透 基于ngrok的国内高速内网映射工具
开启您的内网穿透之旅
下载安装后,注册一个账号,可以免费使用内网穿透,不稳定,也可以自行选择收费版本
在下载好app的同级目录,放置一个config.ini文件,作为该程序的配置文件,自行加载,双击运行即可得到一个内网穿透后的地址,默认端口是8080
支付宝支付
使用支付宝进行支付
在该官网上打开控制台,找到沙箱
分别下载工具,生成秘钥,到最后的匹配成功
package com.saas.util; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipayTradePagePayRequest; import com.saas.entity.Order; public class AlipayTools { public static String pay(Order order){ //准备接入的配置 String appId = "自己的appid"; // String serverUrl = "https://openapi.alipaydev.com/gateway.do"; // 早期版本的支付宝支付的url String serverUrl = "https://openapi-sandbox.dl.alipaydev.com/gateway.do"; // 最新的支付宝支付url String rsa2 = "RSA2"; String alipayPublicKey = "自己的支付宝公钥"; String charset = "UTF-8"; String privateKey = "私钥"; String json = "json"; AlipayClient alipayClient = new DefaultAlipayClient(serverUrl, appId, privateKey, json, charset, alipayPublicKey, rsa2); //request对象 AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); //商家的post请求接口 request.setNotifyUrl("http://hda4zd.natappfree.cc/PaySuccess");//自行设置的回调地址--post请求 //商家的get请求接口 request.setReturnUrl("http://hda4zd.natappfree.cc/PaySuccess");//自行设置的回调地址--get请求 JSONObject bizContent = new JSONObject(); bizContent.put("out_trade_no", order.getOid()); bizContent.put("total_amount", order.getAmount()); bizContent.put("subject", order.getOdesc()); bizContent.put("body", order.getBak()); bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY"); request.setBizContent(bizContent.toJSONString()); String form= "" ; try { form = alipayClient.pageExecute(request).getBody(); //调用SDK生成表单 } catch (AlipayApiException e) { e.printStackTrace(); } return form; } }package com.saas.day65; import com.saas.entity.Order; import com.saas.util.AlipayTools; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.UUID; @WebServlet("/PayServlet") public class PayServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); Order o = new Order(); o.setOid(UUID.randomUUID().toString()); o.setAmount(9.9); o.setOdesc("测试订单"); o.setUid(1); o.setBak("测试订单"); String pay = AlipayTools.pay(o); resp.getWriter().write(pay); } }package com.saas.day65; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/PaySuccess") public class PaySuccessServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.sendRedirect("success.jsp"); } }