web端网站接入支付宝支付过程

news/2024/5/17 7:55:18/文章来源:https://blog.csdn.net/lushuifa/article/details/104446709

1、在支付宝开放平台(https://open.alipay.com/platform/home.htm)申请对应的功能

找到页或者移动应用列表

你可以看到你已申请的应用

点击进入应用详情增加功能:

2、在自己的javaweb应用里引入对应的jar包

      <!--阿里支付SDK--><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.3.0.ALL</version></dependency>

3、支付宝相关配置信息

可根据自己的情况配置相关的内容,下面只作为相关示意

package com.fast.tpp.dto;public class AlipayConfig {/*** 签约的支付宝账号对应的支付宝唯一用户号,以2088开头的16位纯数字组成*/public static final String PID = "xx";/*** 正式环境请求地址*/public static String ALIPAY_URL = "https://openapi.alipay.com/gateway.do";/*** 支付宝分配给开发者的应用ID**/public static String APP_ID = "xx";/*** 仅支持JSON*/public static String FORMAT = "JSON";/*** 请求使用的编码格式*/public static String CHARSET = "utf-8";/*** 商户生成签名字符串所使用的签名算法类型*/public static String SIGN_TYPE = "RSA2";/*** 支付宝公钥*/public static String ALIPAY_PUBLIC_KEY =xx";/*** 商户私钥*/public static String PRIVATE_KEY =xx";/*** 回调地址*/public static String CALLBACK_URL = "xx";/*** web支付跳转地址*/public static String WEB_RETURN_URL = "xx";}

4、初始化阿里支付相关配置,只贴部分代码作参考

@Service
@Log4j2
public class AlipaySaoImpl implements AlipaySao {@Autowiredprivate RedisService redisService;// 实例化客户端AlipayClient alipayClient;public AlipaySaoImpl(){// 实例化客户端alipayClient = new DefaultAlipayClient(AlipayConfig.ALIPAY_URL,AlipayConfig.APP_ID,AlipayConfig.PRIVATE_KEY,AlipayConfig.FORMAT,AlipayConfig.CHARSET,AlipayConfig.ALIPAY_PUBLIC_KEY,AlipayConfig.SIGN_TYPE);}

5、web支付相关方法代码

package com.fast.tpp.dto;import lombok.Getter;
import lombok.Setter;
import lombok.ToString;@Setter
@Getter
@ToString
public class AlipayWebPayDTO
{/*** 商户订单号,必填**/private String out_trade_no;/*** 订单名称,必填*/private String subject;/*** 付款金额,必填* 根据支付宝接口协议,必须使用下划线*/private String total_amount;/*** 商品描述,可空*/private String body;/*** 超时时间参数*/private String timeout_express= "5m";/*** 产品编号*/private String product_code= "FAST_INSTANT_TRADE_PAY";}/*** web支付接口* @param alipayBean* @return* @throws AlipayApiException*/@Overridepublic String webPagePay(AlipayWebPayDTO alipayBean) throws AlipayApiException {// 2、设置请求参数AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();// 页面跳转同步通知页面路径alipayRequest.setReturnUrl(AlipayConfig.WEB_RETURN_URL);// 服务器异步通知页面路径alipayRequest.setNotifyUrl(AlipayConfig.CALLBACK_URL);// 封装参数alipayRequest.setBizContent(JSON.toJSONString(alipayBean));// 3、请求支付宝进行付款,并获取支付结果String result = alipayClient.pageExecute(alipayRequest).getBody();// 返回付款信息return result;}

6、最终返回给客户端的result值为,里面是一个form,页面拿到后会自动跳转到支付宝的订单支付页面

{"code": "00","msg": "请求成功!","data": {"orderString": "<form name=\"punchout_form\" method=\"post\" action=\"https://openapi.alipay.com/gateway.do?charset=utf-8&method=alipay.trade.page.pay&sign=G0jsaTORXtfF1VkQEK77qu%2BnYRU1YhCNQMFiWNNBUbYgQz8pxGRGVcnzbIXWkgWawV3AXco%2BJkFEemhV7qK2ALIn6uVziNklV6Folqb6OyVnsdKdCfHbID%2Bz79M1ngpyWsWvxXoAUN6Kuib5qkurDPQfMo4HWF4fxmLF70cFkQNeHxg577ByHS0%2Borv%2BzJ%2FwqehZZqOB1JQ0jzserODf2PGieoE5PCDnIYuXMZFqJqlCRUDc1IN3h9Usez8QJhLWepcFDsDR8tXiHrMmge9onHAl9bpLUtyOuVe4TCMU%2BLgMH21NUpeKJdXgQpnQxA8DoUuU0lRTmvPEp6EyXAmE%2FQ%3D%3D&return_url=http%3A%2F%2Fwww.moyou520.com%2Fdist%2Fhtml%2Fpay%2Fresult.html&notify_url=http%3A%2F%2Fadmin.moyou520.com%2Fmoyou%2Fapp%2Ftrans%2FalipayNotice.do&version=1.0&app_id=2019081066129967&sign_type=RSA2&timestamp=2020-02-17+15%3A58%3A24&alipay_sdk=alipay-sdk-java-4.3.0.ALL&format=JSON\">\n<input type=\"hidden\" name=\"biz_content\" value=\"{"body":"购买[年度VIP]","out_trade_no":"20200217155823617499935","product_code":"FAST_INSTANT_TRADE_PAY","subject":"默友APP","timeout_express":"5m","total_amount":"0.0"}\">\n<input type=\"submit\" value=\"立即支付\" style=\"display:none\" >\n</form>\n<script>document.forms[0].submit();</script>","orderNo": "20200217155823617499935"}
}

7、回调方法相关代码

/*** 支付宝支付通知* @param request* @param response* @return* @throws IOException*/@RequestMapping(value="/alipayNotice.do",method = RequestMethod.POST)@ResponseBody@NoneAuth@SysLog(actionName = "支付宝支付通知")public String alipayNotice(HttpServletRequest request, HttpServletResponse response) throws IOException {Map<String, String> params = new HashMap<String, String>();Map requestParams = request.getParameterMap();for (Iterator 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] + ",";}params.put(name, valueStr);}// 切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。try {boolean flag = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.CHARSET,AlipayConfig.SIGN_TYPE);if (flag) {String tradeStatus = params.get("trade_status");String outTradeNo = params.get("out_trade_no");String tradeNo = params.get("trade_no");//购买者用户IDString openId = params.get("buyer_logon_id");this.orderService.alipayNotice(tradeStatus,outTradeNo,tradeNo,openId);if ("TRADE_SUCCESS".equals(tradeStatus)){return "success";}}} catch (Exception e) {e.printStackTrace();}return "fail";}

大致如上,欢迎大家批评指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_903829.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云CVM服务器安装宝塔面板 快速安装可视化网站管理环节

本文原创来自&#xff1a;https://www.laomulu.com/cvm-bt/ 宝塔面板最近发展还是蛮快的&#xff0c;算是国内比较好用且功能较多的免费WEB面板&#xff0c;可以在LINUX和WINDOWS系统中都有版本支持。如果我们希望搭建可视化的WEB面板的&#xff0c;也可以在腾讯云CVM服务器中…

腾讯云服务器Windows系统安装宝塔面板配置建站环境

腾讯云专题网在前面有介绍到几篇Linux系统建站的部署配置&#xff0c;其中有我们熟悉的无面板LNMP&#xff08;腾讯云服务器一键安装LNMP/LAMP建站环境图文教程&#xff09;&#xff0c;也有什么熟悉的有面板宝塔面板&#xff08;腾讯云服务器安装宝塔面板快速配置LNMP/LAMP网站…

LAMP网站架构---(二)PHP、nginx结合php-fpm、memcache、openresty

3#### 一、PHP的安装部署 网址导航&#xff1a;https://www.php.net/ PHP简介: PHP&#xff08;外文名:PHP: Hypertext Preprocessor&#xff0c;中文名&#xff1a;“超文本预处理器”&#xff09;是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点&#xff0c;利…

LAMP网站架构---(三)Tomcat、memcache交互存储

Tomcat Tomcat是Apache下的一个核心子项目&#xff0c;是使用量较大的免费的JAVA服务器。主要处理的是JSP页面和Servlet文件。Tomcat常常与Apache整合起来使用&#xff0c;Apache处理静态页面&#xff0c;比如Html页面&#xff0c;而Tomcat负责编译处理JSP页面与Servlet。在静态…

LAMP网站架构---(四)LVS+Keepalived高可用负载均衡

基本信息 简介&#xff1a; LVS是Linux Virtual Server的简写&#xff0c;意即Linux虚拟服务器&#xff0c;是一个虚拟的服务器集群系统&#xff1b;本项目在1998年5月由章文嵩博士成立&#xff0c;是中国国内最早出现的自由软件项目之一 使用集群技术和Linux操作系统实现一…

LAMP网站架构---(五)HAProxy+Pacemaker高可用负载均衡

基本信息 HAProxy是一个使用C语言编写的自由及开放源代码软件&#xff0c;其提供高可用性、负载均衡&#xff0c;以及基于TCP和HTTP的应用程序代理 HAProxy特别适用于那些负载特大的web站点&#xff0c;这些站点通常又需要会话保持或七层处理 HAProxy运行在当前的硬件上&…

javaweb项目 基于jsp+servlet的 个人博客网站

源代码和获取更多信息 >源代码MyBlog MyBlog a personal blog site based on Jsp/Servlet - 基于jsp/servlet的个人博客网站 introduction - 简介 java web博客项目&#xff0c;实现mvc模式&#xff0c;没有使用到框架&#xff0c;实现了首页预览&#xff0c;文章发布&a…

网络另类生意闷声挣钱 一人经营几十万个网站

对于自己的“另类生意”&#xff0c;许扬有充分的自信&#xff0c;“我就是把整个业务模式都公开&#xff0c;别人也很难复制&#xff0c;太难了”。 本报记者 徐胤 摄 创业篇 视频网站、交友网站、行业网站&#xff0c;正当数以万计的网络掘金者们在这些热门业务中争得头破血流…

网站测试步骤

网站测试需分以下五个阶段进行才能提交客户&#xff0c;所有测试均提供测试报告&#xff1a; a.功能测试  b.性能测试  c.可用性测试  d.兼容性测试  e.安全测试 功能测试&#xff1a; 1、链接测试 链接是Web应用系统的一个主要特征&#xff0c;它是在页面之间切换和指…

给自己的网站添加HTTPS / 优化 / 续约

写在前面 这里面我主要是自己独立的服务器添加HTTPS支持&#xff0c;关于对GitHub个人站点添加的以后再写。我的笔记和操作使用的是免费的域名和免费的HTTPS证书&#xff0c;但是操作对于所有的来说都是一样的。证书基于 TrustAsia&#xff0c; 别的都差不多的。VPS 上用的LNM…

使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置

注&#xff1a;在阅读本文前&#xff0c;请先阅读&#xff1a; 使用IntelliJ IDEA开发SpringMVC网站&#xff08;一&#xff09;开发环境 使用IntelliJ IDEA开发SpringMVC网站&#xff08;二&#xff09;框架配置 访问GitHub下载最新源码&#xff1a;https://github.com/gauss…

大型网站应用之海量数据和高并发解决方案总结一二

一、网站应用背景 开发一个网站的应用程序&#xff0c;当用户规模比较小的时候&#xff0c;使用简单的&#xff1a;一台应用服务器一台数据库服务器一台文件服务器&#xff0c;这样的话完全可以解决一部分问题&#xff0c;也可以通过堆硬件的方式来提高网站应用的访问性能&…

Yupoo! 的网站技术架构

作者: Fenng | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.dbanotes.net/arch/yupoo_arch.html 又有机会爆料国内 Web 2.0 网站的架构了。这次是 Yupoo! 。非正式的采访了一下 Yupoo!(又拍网) 的创建人之一的 阿华&#xff08;沈志…

.NET 发布网站步骤

本文章分为三个部分: web网站发布、IIS6 安装方法、ASP.NET v4.0 安装方法 一、web网站发布 1.打开 Visual Studio 2013 编译环境 2.在其解决方案上右击弹出重新生成解决方案,以查看是否有错误 3.如果项目没有错误右击WebUI层发布

新概念绿色上网工具,向网站病毒say no

Dear All: 近來很多網站都含有病毒或木馬程式,而上網者多數都是用超級用戶或power user的權限上網,中招後惡意程序會更改windows系統,或設置一些木馬程序.用戶電腦的資料完全暴露,而且還要忍受廣告困擾,雖然裝有防毒軟件,但防毒軟件也不是萬能,特別是木馬程序,經常變化.所以用戶…

PHP——网站构成即LAMP基础知识

网站的构成&#xff1a; 客户端IE/FireFox/Safari等多种浏览器 超文本标记语言HTML 层叠样式表CSS 客户端脚本编程语言JavaScript/VBScript/Applet等中的一种 Web服务器Apache/ Nginx/TomCat/IIS等中的一种 服务器端编程语言PHP/JSP/ASP等中的一种 数据库管理系统MySQL…

网站架构的伸缩性设计

网站开发初期&#xff0c;我们习惯性把所有代码都写到一个项目中。 前台、后台、缓存、数据库、静态资源... 等等。 网站系统物理分离 慢慢的系统会原来越大&#xff0c;很显然需要面对大量用户的高并发访问和存储海量数据。 很多用户的请求&#xff0c;不可能在一台服务器上…

以电商网站为例,谈大型分布式架构设计与优化

本文大纲&#xff1a; 目录 一、使用电商案例的原因 二、电商网站需求 三、网站初级架构 四、系统容量预估 五、网站架构分析 六.网站架构优化 本文主题为电商网站架构案例&#xff0c;将介绍如何从电商网站的需求&#xff0c;到单机架构&#xff0c;逐步演变为常用的、…

使用cloudflare+wzfou为自己的网站配置CDN加速

本文同步于个人博客 &#xff1a; 蝴蝶飞不过沧海 | Blog 本文链接 泛播 Cloudflare 挖站否 Wzfou 为什么用到挖站否?单独泛播不就可以作cdn加速吗? 众所周知泛播&#xff08;cloudflare&#xff09;国外知名免费cdn服务商无需网站备案 但有个缺点就是单独使用泛播&…

企业网站建设需要做哪些前期准备工作?

随着互联网的发展&#xff0c;制作官方网站已经成了众多企业的需求。定制企业网站有助于提升企业形象&#xff0c;增加品牌曝光度&#xff0c;配合网络营销&#xff0c;可以给企业带来更多的业务。很多企业选择了外包给专业的开发公司来定制自己的网站&#xff0c;但并不是说所…