设为首页 加入收藏

TOP

Idea运行支付宝网站支付demo踩坑解决及其测试注意事项(一)
2023-07-25 21:22:56 】 浏览:53
Tags:Idea 支付宝 支付 demo 解决及

一、前言

在一些商城网上中,必不可少的是支付,支付宝和微信比较常见,最近小编也是在研究这一块,看看支付宝怎么进行支付的,支付宝给我们提供了demo和沙箱测试。减少我们的申请的麻烦,公钥和秘钥也比之前方便了,还是挺简单的,沙箱和正式的区别就是申请一下权限和把网关修改了就可以了!

不过支付宝的案例还是jsp,我们就可以把java代码抽离出来就可以了!!

话不多说,我们直接开始!!

二、知识储备

我们在之前,要先了解到加密方式:
公钥、私钥、加密、签名和验签

1、公钥私钥

公钥和私钥是一个相对概念
它们的公私性是相对于生成者来说的。
一对密钥生成后,保存在生成者手里的就是私钥,
生成者发布出去大家用的就是公钥

2、加密

? 加密是指:
? 我们使用一对公私钥中的一个密钥来对数据进行加密,而使用另一个密钥来进行解
密的技术。
? 公钥和私钥都可以用来加密,也都可以用来解密。
? 但这个加解密必须是一对密钥之间的互相加解密,否则不能成功。
? 加密的目的是:
? 为了确保数据传输过程中的不可读性,就是不想让别人看到。

3、签名

? 给我们将要发送的数据,做上一个唯一签名(类似于指纹)
? 用来互相验证接收方和发送方的身份;
? 在验证身份的基础上再验证一下传递的数据是否被篡改过。因此使用数字签名可以
用来达到数据的明文传输。

4、验签

? 支付宝为了验证请求的数据是否商户本人发的,
? 商户为了验证响应的数据是否支付宝发的

三、下载demo

链接地址:java版demo

在这里插入图片描述

四、Idea打开

1、 idea中新建

在这里插入图片描述

2、选择项目

在这里插入图片描述
选择为eclipse项目

在这里插入图片描述
直接一路下一步即可!

五、配置

1、配置为web项目

在这里插入图片描述

在这里插入图片描述

选中项目:

在这里插入图片描述
添加依赖

在这里插入图片描述

在这里插入图片描述

2、大坑

由于支付宝重新建了一个web目录,我们要自己给指定上,所有的页面都在新的目录下:WebContent里面,默认会指定到web目录!不然会报404!

在这里插入图片描述

解决方案:
WebContent指定为读取页面的目录

在这里插入图片描述

在这里插入图片描述

我们发现,WebContent可以被读取了!!

在这里插入图片描述

3、配置tomcat

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、测试运行

直接运行,我们发现编译报错:

D:\data\alipay.trade.wap.pay-java-utf-8\alipay.trade.wap.pay-java-utf-8\src\com\alipay\config\AlipayConfig.java
java: 需要class, interface或enum

在这里插入图片描述
报错原因
是因为编码格式不对,我们发现右下角是UTF-8没问题,原因是没有生效,需要先切换一下另一个编码,然后再换回来,这样UTF-8就会生效!!

点击UTF-8,选型中选择GBK。点击生效

在这里插入图片描述
重复操作换为UTF-8即可

再次运行:

在这里插入图片描述
前端页面:

在这里插入图片描述

七、对接沙箱

沙箱环境控制台

1、打开配置类

下面是需要我们修改的字段,如果是springboot把这些配置在配置文件中即可!

在这里插入图片描述

2、填充信息

APPID:
在这里插入图片描述
私钥和公钥:

上图点击启用即可,不需要向以前自己生成,这样就可以直接使用!

上面为:RSA_PRIVATE_KEY
下面为:ALIPAY_PUBLIC_KEY
在这里插入图片描述
配置请求网关地址:URLhttps://openapi.alipaydev.com/gateway.do
和正式的加了一个dev

配置同步通知页面路径和异步通知页面路径:

例子:

public static String notify_url = "http://localhost:8080/notify_url.jsp";
public static String return_url = "http://localhost:8080/return_url.jsp";

同步路径时支付成功的跳转页面,一般会跳到订单详情页,
异步一般是支付成功我们进行修改订单的支付状态的请求地址,
两者必须外网可以正常访问,不能加?id=123这类自定义参数。

全部配置如下:

public class AlipayConfig {
	// 商户appid
	public static String APPID = "2021000117627470";
	// 私钥 pkcs8格式的
	public static String RSA_PRIVATE_KEY = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCwJO/zYxYYjLW3AKUEKJSzl/tisAMV7Nycc2+p9pZuuVE+yEDr/9rTYtWBGdsoQap4P8hbsvz2JXEUnJHdzBajCWyM85eVCV5fVO9RUb1kzhjrPdqyRzvJvPXic2UkXueKkQ2H/b5BryHQRfjAotY+jjhcre/Ikxx2GkOCNbEOzmcSkBZTG3QZgOl9O151DFkUj8H7u4wu9X2CHvXiV9g9H/8iIHlcf2KNf1pmnHYfOaYj/8v9/gxQg+r3+0F5oJhm4TKm8Ot+7I1rNAnBTLAe03qbPXLrZIASRJkEMG1cQb4mCmVDNAdqdXxBCAQnT+ggylvhiB9jXuqVp9zXVTMtAgMBAAECggEAJHuiD2EohHEwefTyOMhG9GO4N5qJKRNkJitqp2NhiRFtGHnVqIvXwQypeBHo6I+hRULAtu19o2Xh5AkB1VSeI6qiBxe0/7NvDoPDBa7OcYCWfLLVBzPl2EUBEKQiAMR/ZJ3ilZYiv+wMLt0vRobzpQVD+z4zefGuZW/PJ7sDLzOMwbtaQ3nCUYor4GAZuA+WKfkLKYj3HmApvyhb2o/8Yl+GmE9It91vCI7RTyhOr9CBw3Rz6d3xeVnfbHr2lQ4AGrzYvAlS77R+0YWla3x9MqnM/iFUjWzV3QdBOTmM/4ga0JVdeLKJtfW3fdn2WdRrydfMTffWLOTH/MUhfltCgQKBgQDlFfBotzFTpJCNv9lQkIGorpVSQkp1shlkob5SWVKufshS2/m5AkSAkvpc3TmUH1GDfIneMdelLeJwvx3gho/lyQayGD6og1Z6CQGwVVvZxO65aejEjyruo/zfrSn260nACd2CyKHBg3spsxfE0U8lt7zmmk7JSzrU4+UxaJiQEQKBgQDE1rbDKzWRqk1ihNepLfTTmUDpgjfuVEmX9xUbIBalm0PtdLL4y+AAFCI01VwiTvs6rpXjkc0Yp624t1RwJmPYvJ1LPlp4hkpTZIbI5e0gv9RkGmQ1YXEQ/+SON8d3qmTrRnSDKUlRBSBQ5yeT3lfcNI4nNDX6Ag6kxYq6JxgNXQKBgD01wnnIUQa/Vtx5IXC0W+CdXUqQaeLOxpgr23WXZk83kwEIw83aPEF6hCjh92uLfrU6RoA3Ix6AhxuHBU2jxrkoIIDfl4ZhKW8MDwZ1mEg0pXCnSsm
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇 自定义一个springboot starter 下一篇kafka详解(二)--kafka为什么快

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目