• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:一篇文章搞定支付宝网页支付

java 搞代码 4年前 (2022-01-28) 30次浏览 已收录 0个评论
文章目录[隐藏]

作者:叁滴水\
博客:https://www.gaodaima.com/qq_3028…

前言

理解了支付宝秘钥设置的原理之后,可更加疾速的进行开发支付宝领取。在此示例一下支付宝领取较为简单的场景——电脑网站领取。

这个场景对于后端开发者是比拟敌对的,官网的demo中曾经提供了html页面,只须要进行简略的配置即可运行。

一、电脑网站领取

1.1 沙箱环境配置

登录支付宝,进入控制台进入沙箱环境。

进入之后配置沙箱环境秘钥。由上图可见,用来计算签名的RSA加密是必须要配置的,开发者要下载支付宝开发工具获取一对RSA秘钥,另外选填局部的利用网关受权地址容易搞混,解释如下:

利用网关

用于接管由支付宝服务器告诉 次要用于:

1、生存号被动告诉

2、口碑门店的被动告诉

3、单笔转账到支付宝账户

4、现金红包

5、以及其余局部产品和订阅音讯

受权回调地址

顾名思义仅用于受权接口次要用于:

1、第三方利用受权

2、用户信息受权

3、以来源gaodai#ma#com搞*!代#%^码网及其余波及受权的产品(如商户会员卡)

不论是受权回调地址还是利用网关都是须要传入http或是https结尾的网页地址。更具体的阐明可查看支付宝官网。

AES加密在选填局部。可见在对接支付宝时,官网并不强制要求应用AES加密,能够依据本人的理论状况自行抉择是否应用AES加密。

1.2、demo加载

1.2.1、idea间接增加

至今官网提供的demo还是比拟古老的一种形式,是采纳的Eclipse开发工具编写的,外面有一些简略的jsp页面,只须要下载即可。

当初开发工具根本都换成了idea,也能够通过idea间接关上eclipse工程。另外,关注公众号Java技术栈,在后盾回复:激活码,能够获取我写的获取正版 IDEA 激活码的形式,很多人都获取到了。

1.2.2、maven增加

当初大部分都是maven工程,我的idea中javaee都没有,很是难堪,因而,我抉择间接转换成springboot工程。

Spring Boot 基础教程就不介绍了,系列教程能够看这里:https://github.com/javastacks…

将jsp代码和java配置类复制到一个污浊的springboot工程中,构造大略如此,webapp是须要本人新建的,将原有工程的类和jsp复制进来即可。

pom文件中增加对jsp的反对,另外打包时将默认的jar包改成war包,war包对jsp更加敌对,配置示例如下。

<code class="xml"><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>alipay</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>alipay</name>
    <packaging>war</packaging>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
<!--        增加反对jsp-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!-- tomcat的反对-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>   <!-- 编译时依赖  运行是不须要此包 -->
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>            <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- 增加war 插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
        
    </build>
</project>

在官网提供的demo中,有3个包须要进行增加。

因为是测试,而且依赖的代码写在了jsp中,不影响打包,索性能够间接先打包,而后将3个jar复制到服务器的lib目录。


1.3、参数配置

demo中提供了一个配置类AlipayConfig.java

这里须要将沙箱环境提供的参数配置上。

<code class="java">// 利用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
public static String app_id = "";

// 商户私钥,您的PKCS8格局RSA2私钥
public static String merchant_private_key = "";

// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
public static String alipay_public_key = "";

// 服务器异步告诉页面门路  需http://格局的残缺门路,不能加?id=123这类自定义参数,必须外网能够失常拜访
public static String notify_url = "http://{服务器ip}/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp";

// 页面跳转同步告诉页面门路 需http://格局的残缺门路,不能加?id=123这类自定义参数,必须外网能够失常拜访
public static String return_url = "http://{服务器ip}/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp";

// 签名形式
public static String sign_type = "RSA2";

// 字符编码格局
public static String charset = "utf-8";

// 支付宝网关
public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";

// 日志门路
public static String log_path = "/";
  1. app_id 利用id。每个利用都有本人的惟一标示。这个参数在支付宝、微信等许多开放平台都有呈现。
  2. merchant_private_keyalipay_public_key这是用来计算签名的秘钥。
  3. notify_url 这个是用来接管支付宝回调告诉的接口地址,这个接口须要进行幂等解决。
  4. return_url 配置领取胜利之后跳转的页面地址。
  5. sign_type 签名形式,这个就默认的RSA2加密即可。个别不须要批改。
  6. gatewayUrl 支付宝网关,这个在app配置的时候官网提供了,复制下来即可。

1.4、启动工程

配置实现之后即可启动工程,进入首页index.jsp

我的门路是/alipay/index.jsp,大家参考下。

官网的demo中提供了付款、交易查问、退款、退款查问、交易敞开等性能。开发者可自行抉择调试。

另外沙箱环境是一套独立的支付宝环境,须要下载官网提供的沙箱支付宝app(只有安卓)。

点即付款性能的领取按钮,即可跳入领取页面,领取实现之后会自行跳转到配置的return_url地址。

注:有时候会提醒存在钓鱼危险提醒页面。只须要敞开浏览器,只关上领取入口页面index.jsp,不要关上其余的支付宝页面就解决了。

本文来自作者「叁滴水」投稿,谢谢分享,也欢送喜好技术分享的各位技术敌人向「Java技术栈」投稿,让更多人看到,投稿形式:关注公众号「Java技术栈」在后盾回复:投稿。

近期热文举荐:

1.600+ 道 Java面试题及答案整顿(2021最新版)

2.终于靠开源我的项目弄到 IntelliJ IDEA 激活码了,真香!

3.阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!

4.Spring Cloud 2020.0.0 正式公布,全新颠覆性版本!

5.《Java开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞+转发哦!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:一篇文章搞定支付宝网页支付

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址