调用支付宝第三方支付接口详解(沙箱环境) |
您所在的位置:网站首页 › 支付宝请求接口失败什么意思 › 调用支付宝第三方支付接口详解(沙箱环境) |
注:这里的支付是沙箱模拟支付 蚂蚁金服开放平台注册地址: https://open.alipay.com/platform/home.htm 支付宝扫码登陆 -> 注册为自主研发者 支付宝提供一键生成工具便于开发者生成一对RSA2密钥: https://docs.open.alipay.com/291/105971 该工具使用需要java环境windows安装java环境: https://blog.csdn.net/edison_03/article/details/79757591 Mac安装java环境: https://www.cnblogs.com/xqx-qyy/p/7659805.html 注意:生成时一定要选择PKCS8+2048 将应用网关和回调地址更改为: https://www.alipay.com AES密钥不用管 然后往下会有支付宝沙箱安卓端工具,下载,以供后续支付使用 进入页面左侧导航栏沙箱账号,沙箱安卓端安装后用买家账号登陆 到这里基本配置就完了,下面进入大家喜欢的代码时间: 如果你是在本地测试,支付完成不会跳转回调页面,那么就需要外网了 推荐一个东西,叫内网穿透,只要你电脑tomcat启动,可以连接外网,就可以使用。 NATAPP 提供免费的测试足够: https://natapp.cn/ ngrok或者frp以及其他免费开源,自行搜索了解 如果上面的依赖失效或者无法使用,依赖下载地址: http://central.maven.org/maven2/com/pentahohub/nexus/alipay-sdk-java/20150820220052/alipay-sdk-java-20150820220052.jar 参数传入是必须有的,不然会报订单信息有误。 如果有其他额外参数,请参考支付宝第三方API文档: https://docs.open.alipay.com/api_1/alipay.trade.create/ 这里支付完成会回调两个接口,notify_url和return_url,就是在配置类配置的两个接口: 1、notify_url接口->异步回调的后台操作/** * 支付完成回调验证操作 * @param response,request * @throws Exception * @return void * @author 有梦想一起实现 */ @RequestMapping("notify_url") public void Notify(HttpServletResponse response, HttpServletRequest request) throws Exception { System.out.println("----------------------------notify_url------------------------"); // 商户订单号 String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"), "GBK"); // 付款金额 String total_amount = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"), "GBK"); // 支付宝交易号 String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"), "GBK"); // 交易说明 String cus = new String(request.getParameter("body").getBytes("ISO-8859-1"), "GBK"); // 交易状态 String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"), "GBK"); if (trade_status.equals("TRADE_SUCCESS")) {//支付成功商家操作 //下面是我写的一个简单的插入操作,根据你的操作自行编写 /*Map map = new HashMap(); map.put("cuId", Integer.valueOf(cus)); RepaymentPlan repaymentPlan = new RepaymentPlan(); Integer id = Integer.valueOf(out_trade_no); double payablesCheck = Double.valueOf(total_amount); RepaymentPlan repayCheck = serviceMain.selectByPrimaryKey(id); double total = repayCheck.getPayables(); if (Double.valueOf(total_amount) < repayCheck.getPayables()) { map.put("ubalance", total - Double.valueOf(total_amount)); serviceMain.updateCusMoney(map); } repaymentPlan.setId(id); repaymentPlan.setActualPayment(total); repaymentPlan.setRepaymentStatus(1); int i = serviceMain.updateByPrimaryKeySelective(repaymentPlan); System.out.println("---------------------还款影响行数----------------------------" + i);*/ } }2、return_url 接口->同步通知返回的是页面/** * 同步通知的页面的Controller * 我这边就简单的返回了一个页面 * @param request,response * @throws InterruptedException */ @RequestMapping("return_url") public String Return_url() throws InterruptedException { return "alipayexit"; }支付宝接口的SDK&DEMO地址: https://docs.open.alipay.com/270/106291/ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |