java支付宝支付后台服务方法

java支付宝支付后台服务方法

前言

记录一下支付功能的一些方法, 仅供学习参考,不涉及商业内容,一些基本环境先说一下,后面就不再说了
jdk1.8 springBoot2.0 maven
个人对接经验重要提醒:如果感觉所有配置点都搞好了, 还是报错,例如验签失败等, 那么我实际检查的方式如下:
1.appId是否正确
2.merchantPrivateKey秘钥是否正确
3.GATEWAY_URL网关是否正确, 正式环境和沙箱的区别就是, alipay和alipaydev, 沙箱多了个dev
4.证书文件名字,路径是否正确
5.签名方式,字符编码方式,json这些都检查是否一致
6.代码执行的方法注意一下, 证书方式的执行一般以certificateExecute开头
7.以上的检查完毕, 使用maven先clean下项目,然后重新打包运行
8.如果还是不行, 那就废除证书, 重新生成证书, 然后再重新填写一遍, 有时候可能是支付宝沙箱那边问题, 需要等待一会

支付宝支付对接流程

使用支付宝沙箱做演示
首先要登录支付宝开放平台-开发者中心-研发服务(沙箱)

  1. 设置RSA2(SHA256)密钥(推荐), 这里有公钥证书和公钥两种方式,选择不同的方式对调用alipay-sdk-java第三方sdk的方法也会不同,后面会区分标识.
  2. 下载支付宝沙箱app到手机,可以使用给你的沙箱账号登录支付宝沙箱app, 账号有商家和买家的两个账号,钱都可以自己设置
  3. 引入支付宝第三方jar包, 公钥证书文件放到项目目录下
    在这里插入图片描述
<dependency>
	<groupId>com.alipay.sdk</groupId>
	<artifactId>alipay-sdk-java</artifactId>
	<version>4.8.73.ALL</version>
</dependency>

<dependency>
	<groupId>commons-logging</groupId>
	<artifactId>commons-logging</artifactId>
	<version>1.1.1</version>
</dependency>

<dependency>
	<groupId>org.bouncycastle</groupId>
	<artifactId>bcprov-jdk15on</artifactId>
	<version>1.62</version>
</dependency>
  1. 编写一个配置支付宝参数的类
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import org.springframework.util.ResourceUtils;

import java.io.File;
import java.io.IOException;

public class AlipayConfig {
   

    // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
    public static final String APP_ID = "";

    // 商户私钥,您的PKCS8格式RSA2私钥
    public static final String MERCHANT_PRIVATE_KEY = "";

    // 签名方式
    public static final String SIGN_TYPE = "RSA2";

    // 字符编码格式
    public static final String CHARSET = "UTF-8";

    // json
    public static final String FORMAT = "json";

    // 支付宝网关(开发环境)
    public static final String GATEWAY_URL = "https://openapi.alipaydev.com/gateway.do";

    public static final String APP_CERT_PATH = "/static/CRT/appCertPublicKey_2016102300744804.crt";

    public static final String ALIPAY_CERT_PATH = "/static/CRT/alipayCertPublicKey_RSA2.crt";

    public static final String ALIPAY_ROOT_CERT_PATH = "/static/CRT/alipayRootCert.crt";

    private volatile static AlipayClient alipayClient = null;

	// 使用"公钥证书"创建的阿里客户端对象实例
    public static AlipayClient getInstance() throws AlipayApiException, IOException {
   
        if (alipayClient == null) {
   
            synchronized (AlipayClient.class) {
   
                if (alipayClient == null) {
   
                    CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
                    File file = new File(ResourceUtils.getURL("classpath:").
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值