网站备案地点,郓城做网站,安阳网站建设哪里最好,网站注册短信验证怎么做目录1、支付宝沙箱环境测试2、支付宝整合到ssm环境3、微信支付整合到ssm环境一、支付宝测试环境代码测试1.下载电脑网站的官方demo#xff1a;2.下载解压导入eclipsereadme.txt请好好看一下。只有一个Java配置类#xff0c;其余都是JSP。3.配置AlipayConfig(1).注册蚂蚁金服开…目录1、支付宝沙箱环境测试2、支付宝整合到ssm环境3、微信支付整合到ssm环境一、支付宝测试环境代码测试1.下载电脑网站的官方demo2.下载解压导入eclipsereadme.txt请好好看一下。只有一个Java配置类其余都是JSP。3.配置AlipayConfig(1).注册蚂蚁金服开发者账号(免费不像苹果会收取费用)注册地址https://open.alipay.com 用你的支付宝账号扫码登录完善个人信息选择服务类型(我选的是自研)。(2).设置app_id和gatewayUrl其中密钥需要自己生成appID和支付宝网关是已经给好的网关有dev字样表明是用于开发测试。(3).设置密钥点击“生成方法”打开界面如下下周密钥生成工具解压打开后选择2048位生成密钥如果没有设置过此时显示文本是“设置应用公钥”我这里是已经设置过得。设置方法,“打开密钥文件路径”复制应用公钥2048.txt中的内容到点击“设置应用公钥”的弹出框中保存商户私钥(merchant_private_key)复制 应用私钥2048.txt 中的内容到merchant_private_key中。支付宝公钥(alipay_public_key)点击如上图链接复制弹出框里面的内容到alipay_public_key。如果这个设置不对结果是支付成功但是验签失败。如果是正式环境需要上传到对应的应用中(4).服务器异步通知页面路径(notify_url)如果没有改名修改IP和端口号就可以了我自己的如下:http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp(5).页面跳转同步通知页面路径(return_url)http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp4.测试运行测试用的支付宝买家账户可以在“沙箱账号”这个页面可以找到支付成功后验签结果问题解决由于我们使用的是沙箱测试环境测试环境和正式上线的环境的网关是不一样的如果配置错误会出现appid错误的问题。配置如下二、将支付宝支付整合到ssm框架项目架构springspringmvcmybatis数据库mysql部署环境tomcat8.5开发环境jdk1.8、eclipse支付支付宝、微信整合到ssm一样我们需要像沙箱测试环境一样需要修改支付的配置信息2、数据库代码主要包括以下的数据库表user用户表order支付产生的订单flow流水账product商品表用于模拟购买商品。drop table if exists user;/**//*Table: user*//**/create table user(idvarchar(20) not null,usernamevarchar(128),sexvarchar(20),primary key(id));alter table user comment 用户表;CREATE TABLEflow (idvarchar(20) NOT NULL,flow_numvarchar(20) DEFAULT NULL COMMENT 流水号,order_numvarchar(20) DEFAULT NULL COMMENT 订单号,product_idvarchar(20) DEFAULT NULL COMMENT 产品主键ID,paid_amountvarchar(11) DEFAULT NULL COMMENT 支付金额,paid_methodint(11) DEFAULT NULL COMMENT 支付方式\r\n 1支付宝\r\n 2微信,buy_countsint(11) DEFAULT NULL COMMENT 购买个数,create_timedatetime DEFAULT NULL COMMENT 创建时间,PRIMARY KEY(id)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT流水表;CREATE TABLEorders (idvarchar(20) NOT NULL,order_numvarchar(20) DEFAULT NULL COMMENT 订单号,order_statusvarchar(20) DEFAULT NULL COMMENT 订单状态\r\n 10待付款\r\n 20已付款,order_amountvarchar(11) DEFAULT NULL COMMENT 订单金额,paid_amountvarchar(11) DEFAULT NULL COMMENT 实际支付金额,product_idvarchar(20) DEFAULT NULL COMMENT 产品表外键ID,buy_countsint(11) DEFAULT NULL COMMENT 产品购买的个数,create_timedatetime DEFAULT NULL COMMENT 订单创建时间,paid_timedatetime DEFAULT NULL COMMENT 支付时间,PRIMARY KEY(id)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT订单表;CREATE TABLEproduct (idvarchar(20) NOT NULL,namevarchar(20) DEFAULT NULL COMMENT 产品名称,pricevarchar(11) DEFAULT NULL COMMENT 价格,PRIMARY KEY(id)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT产品表;View Code3、dao数据接口层这里就不介绍了这个只包括简单的curd可以使用通用mapper或者逆向工程就行。以订单order为例给出public interfaceOrdersMapper {intcountByExample(OrdersExample example);intdeleteByExample(OrdersExample example);intdeleteByPrimaryKey(String id);intinsert(Orders record);intinsertSelective(Orders record);ListselectByExample(OrdersExample example);Orders selectByPrimaryKey(String id);int updateByExampleSelective(Param(record) Orders record, Param(example) OrdersExample example);int updateByExample(Param(record) Orders record, Param(example) OrdersExample example);intupdateByPrimaryKeySelective(Orders record);intupdateByPrimaryKey(Orders record);}View Code4、service层同上最后在项目源代码里可见。以订单order为例给出/*** 订单操作 service*authoribm**/public interfaceOrdersService {/*** 新增订单*paramorder*/public voidsaveOrder(Orders order);/**** Title: OrdersService.java* Package com.sihai.service* Description: 修改叮当状态改为 支付成功已付款; 同时新增支付流水* Copyright: Copyright (c) 2017* Company:FURUIBOKE.SCIENCE.AND.TECHNOLOGY**authorsihai* date 2017年8月23日 下午9:04:35*versionV1.0*/public voidupdateOrderStatus(String orderId, String alpayFlowNum, String paidAmount);/*** 获取订单*paramorderId*return*/publicOrders getOrderById(String orderId);}View Code4、支付宝支付controller(支付流程)下面是页面代码商品页面(products.jsp)产品编号产品名称产品价格操作${p.id }${p.name }${p.price }购买var hdnContextPath $(#hdnContextPath).val();});View Code点击上面的购买进入到订单页面填写个数然后点击生成订单调用如下代码根据SID(生成id的工具)等信息生成订单保存到数据库。进入到选择支付页面调用了如下代码然后我们选择支付宝支付进入到了我们支付的页面了大功告成调用了如下代码/**** Title: AlipayController.java* Package com.sihai.controller* Description: 前往支付宝第三方网关进行支付* Copyright: Copyright (c) 2017* Company:FURUIBOKE.SCIENCE.AND.TECHNOLOGY**authorsihai* date 2017年8月23日 下午8:50:43*versionV1.0*/RequestMapping(value /goAlipay, produces text/html; charsetUTF-8)ResponseBodypublic String goAlipay(String orderId, HttpServletRequest request, HttpServletRequest response) throwsException {Orders orderorderService.getOrderById(orderId);Product productproductService.getProductById(order.getProductId());//获得初始化的AlipayClientAlipayClient alipayClient new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, json, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);//设置请求参数AlipayTradePagePayRequest alipayRequest newAlipayTradePagePayRequest();alipayRequest.setReturnUrl(AlipayConfig.return_url);alipayRequest.setNotifyUrl(AlipayConfig.notify_url);//商户订单号商户网站订单系统中唯一订单号必填String out_trade_no orderId;//付款金额必填String total_amount order.getOrderAmount();//订单名称必填String subject product.getName();//商品描述可空String body 用户订购商品个数 order.getBuyCounts();//该笔订单允许的最晚付款时间逾期将关闭交易。取值范围1m15d。m-分钟h-小时d-天1c-当天(1c-当天的情况下无论交易何时创建都在0点关闭)。 该参数数值不接受小数点 如 1.5h可转换为 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\});//请求String result alipayClient.pageExecute(alipayRequest).getBody();returnresult;}View Code上面就是将阿里支付宝支付整合到ssm的全过程了