风止雨歇

集成 alipay 的通用版

一、引入依赖

<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>3.3.87.ALL</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>

 

二、下载Demo

https://opendocs.alipay.com/open/54/104506/
 
1、拷贝Demo到项目中
(1)拷贝 TradePayDemo\src\com\alipay\demo\trade\ 目录下的文件到项目中;
  
(2)拷贝 TradePayDemo\src\ 下的配置文件 zfbinfo.properties 到项目中的 resources 目录下;
(3)拷贝 TradePaySDK\src\com\alipay\demo\trade\ 目标下的文件到项目中;
  

 拷贝完成的项目目录结构:

 
注意:全局替换包路径方法:

三、支付宝沙箱环境的说明及配置

参考资料:https://blog.csdn.net/qq_42941671/article/details/108395619
 
  沙箱环境 (Beta) 是支付宝开放平台为您提供的与线上环境完全隔离的联调测试环境,在沙箱环境中完成的调用不会对线上数据造成任何影响,尤其适合涉及资金链路的能力的调试。

1、沙箱环境的登录

  点击“沙箱环境”,使用支付宝登录;
  

2、沙箱环境的配置(zfbinfo.properties文件)

(1)支付宝网关名配置

  open_api_domain 要修改为沙箱环境的支付宝网关名:https://openapi.alipaydev.com/gateway.do

 

(2)appId的配置

  登录沙箱环境就可以看到应用的 appId 信息,将 appId 添加到 zfbinfo.properties 文件中;

  

(3)pid 的配置

  zfbinfo.properties 文件中的 pid 是账户ID,可以在右上角的 “账户中心” 中查看到 “账号ID” ;

  

 

  

 

 (4)公钥私钥对的生成和配置

  a. 密钥工具并安装:
   下载地址:https://opendocs.alipay.com/common/02kipl
 
    

 

   b.  打开安装的工具,并点击 “生成密钥”,就会生成对应的 ”应用私钥“ 和 ”应用公钥“;

    

 

   c.  复制 “私钥”配置为  private_key 的值复制 ”公钥“ 配置为  public_key 的值;

(5)支付宝公钥的获取和配置

  a. 在沙箱环境中的 ”开发信息“ 中选择 “自定义密钥”,并点击 ”设置并启用“;

  

 

   b.  拷贝我们在(4)中使用工具生成的公钥,填写到填写的公钥字符位置,点击 “保存设置” 生成对应的支付宝公钥;

  

   c. 将生成的支付包的公钥,配置为  alipay_public_key 的值;

四、业务代码

下支付宝订单,根据 response 信息生成二维码;

1、生成二维码

(1)当面付的 Demo 代码中,Main.java 的 test_trade_precreate() 方法 为生成支付二维码的方法,将方法的内容拷贝到 Service 的方法中;
(2)Main.java 的静态代码块内容,拷贝到 Service 的初始化方法中;

 资源路径的映射配置

@Configuration
public class ResourceConfig implements WebMvcConfigurer {

    @Autowired
    private TradePayProp tradePayProp;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        String os = System.getProperty("os.name");
        //windows系统
        if(os.toLowerCase().startsWith("win")){
            /** 支付码图片QrCode图片存储路径 */
            // 将 "D:/code/temp/qr-code/**" 路径映射为 "/static/qrcode/" 路径
            // 可以使用 http://localhost:8088/static/qrcode/qr-20211217215530.png 访问二维码
            registry.addResourceHandler(tradePayProp.getHttpBasePath() +"/**")
                    .addResourceLocations("file:" + tradePayProp.getStorePath() + "/");
        }
        else{ //linux或者mac
            registry.addResourceHandler("/static/resources/**")
                    .addResourceLocations("file:/usr/local/resources/"); //静态资源
        }
    }
}

 代码地址:https://gitee.com/feng_218/alipay-demo/tree/master/src/main

 


 


 

 




 

 

 
 
 
 
 
 
 
 
 
 
 

posted on 2021-12-16 23:17  风止雨歇  阅读(119)  评论(0编辑  收藏  举报

导航