项目中集成支付宝(扫码付)中的[扫码支付]业务

项目中集成支付宝(扫码付)中的[扫码支付]业务

简介:这里使用支付宝提供的demo,但是测试demo没有公网的ip,所以借助于支付宝提供的沙箱环境。

1. 打开扫码付的文档介绍

地址:https://docs.open.alipay.com/194/105072/

可以在文档中发现扫码付有两种场景,一种是本地系统借助红外线产品机器扫描用户的支付条码,另一种是本地系统借助支付宝api生成收款二维码,用户扫码支付后,回调本地系统的指定请求修改订单状态和响应处理。

2. 下载扫码付的相关sdk-demo

地址:https://docs.open.alipay.com/194/105201/

根据不同的编程语言选择不同的demo下载,下载后解压后有两个目录,其中是支付宝服务的相关代码,另一个项目中的代码类似各种场景的测试类。

3. 新建一个maven工程,将提供的demo整合进去

新建一个工程,将demo中的两个工程都整合进去,步骤如下:

3.1 添加依赖

<!--支付宝接口依赖-->
<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>3.0.0</version>
    <exclusions>
        <exclusion>
            <artifactId>commons-logging</artifactId>
            <groupId>commons-logging</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>
<dependency>
    <groupId>commons-configuration</groupId>
    <artifactId>commons-configuration</artifactId>
    <version>1.10</version>
    <!--<exclusions>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
            </exclusions>-->
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.11</version>
</dependency>
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.2.1</version>
</dependency>
<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-core</artifactId>
    <version>1.3</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>

3.2 添加支付宝实体和服务资源文件

  1. 将下载的demo中的 TradePaySDK项目中的资源放到新项目中
  2. 新建资源目录resources,将下载的demo中的TradePayDemo中的properties文件放入其中
  3. TradePayDemo工程的测试启动类放入到新项目中

最终的新项目结构如下:

4. 使用沙箱环境

文档地址:https://docs.open.alipay.com/200/105311/

什么是沙箱环境,可以想象成在支付宝的研发环境中调用接口,沙箱环境会提供一个商家appid(正式环境中是需要通过资格认证申请的),以及测试的沙箱支付宝登陆账号密码,支付密码,等,随后通过支付宝提供的工具生成商家的RSA公钥和私钥,在通过生成的公钥生成支付宝的SHA公钥,然后替换提供的配置文件(zfbinfo.properties)中的各种资源信息(网关地址以及key等),下面将会一步步的使用该环境。

4.1 进入到沙箱环境

在地址:https://docs.open.alipay.com/200/105311/ 中有沙箱环境的超链接,点击链接条件到支付宝登陆页面


扫码登陆后,如何没有加入到支付宝的开放平台的需要先加入到支付宝开放平台,然后在重新进入到沙箱环境。

沙箱环境应该如下图:

4.2 替换商家的appid(唯一),open_api_domain,以及pid信息

将项目中的配置文件中的三个属性按照下图来替换

4.3 借助工具生成商家的公钥和私钥

工具地址:https://docs.open.alipay.com/291/105971

4.3.1 根据不同的操作系统选择对应的版本下载

4.3.2 运行软件

4.3.3 替换配置文件中的商家的公钥和私钥

4.4 根据生成的商家的公钥生成对应的支付宝公钥

4.4.1 借助商家公钥生成支付宝公钥

处理地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info

回到沙箱环境,点击 RSA2(SHA256)密钥(推荐) 属性的设置按钮,根据刚才生成的商家公钥来生成支付宝公钥信息,操作如下图:


4.4.2 替换配置文件中的支付宝公钥信息

5. 沙箱环境下的支付宝软件

软件地址:https://openhome.alipay.com/platform/appDaily.htm?tab=tool

5.1 下载沙箱环境下的支付宝软件,目前只支持安卓系统

5.2 根据支付宝提供的买家信息登陆支付宝

6. 测试场景

6.1 测试生成支付二维码场景

6.1.1 修改二维码图片生成路径

打开工程中的Main这个类,进入 [test_trade_precreate()]方法中,修改二维码生成路径,修改自己指定的地址即可,

未修改前:

// 需要修改为运行机器上的路径
String filePath = String.format("/Users/sudo/Desktop/qr-%s.png",
response.getOutTradeNo());

修改后:

// 需要修改为运行机器上的路径
String filePath = String.format("D:/qrCode/qr-%s.png",response.getOutTradeNo());

6.1.2 开启生成二维码功能

修改完生成二维码图片路径后,发现生成二维码图片的功能被注释了,现在取消注释,开启功能。

未修改前:

//ZxingUtils.getQRCodeImge(response.getQrCode(), 256, filePath);

修改后:

ZxingUtils.getQRCodeImge(response.getQrCode(), 256, filePath);

6.1.3 测试程序

启动main方法,运行后发现成功的在指定目录下生成了支付二维码图片

然后支付即可。

猜你喜欢

转载自www.cnblogs.com/duguxiaobiao/p/12091911.html
今日推荐