第三方支付API支付宝支付申请流程

610 阅读2分钟

新版本

在这里插入图片描述

在这里插入图片描述

Maven 引入jar包

<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>4.10.167.ALL</version>
</dependency>

支付宝证书支付

注册支付宝商家账号后登陆控制台:

https://openhome.alipay.com/platform/developerIndex.htm
官方文档:https://opendocs.alipay.com/open/203/107084

流程
在这里插入图片描述

开始

选择要创建的应用
在这里插入图片描述

比如我这里选择的是 网页&移动应用 支付接入

网址url可以随便写

在这里插入图片描述

添加支付能力 如果之前选了则跳过
在这里插入图片描述

我这里是已经签约的状态,没签约的去复制ID然后签约

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

需要加签
在这里插入图片描述

我这边业务需求是公钥证书的加签模式

在这里插入图片描述

下载了支付宝秘钥生成器 生成公私钥和CSR文件 csr文件需要上传到支付宝
在这里插入图片描述

填写公司信息

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

下载JAVA版本的SDK : opendocs.alipay.com/open/203/10…
下载三个证书
在这里插入图片描述

按要求传入参数

代码:

package com.fc;
import com.alipay.api.AlipayClient;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayOpenOperationOpenbizmockBizQueryModel;
import com.alipay.api.request.AlipayOpenOperationOpenbizmockBizQueryRequest;
import com.alipay.api.response.AlipayOpenOperationOpenbizmockBizQueryResponse;

public class zfb_test {
	
    public static void main(String[] args) {
        try {
            // 1. 创建AlipayClient实例
            AlipayClient alipayClient = new DefaultAlipayClient(getClientParams());
            // 2. 创建使用的Open API对应的Request请求对象
            AlipayOpenOperationOpenbizmockBizQueryRequest request = getRequest();
            // 3. 发起请求并处理响应
            AlipayOpenOperationOpenbizmockBizQueryResponse response = alipayClient.certificateExecute(request);
            if (response.isSuccess()) {
                System.out.println("调用成功。");
            } else {
                System.out.println("调用失败,原因:" + response.getMsg() + "," + response.getSubMsg());
            }
        } catch (Exception e) {
            System.out.println("调用遭遇异常,原因:" + e.getMessage());
            throw new RuntimeException(e.getMessage(), e);
        }
    }

    private static CertAlipayRequest getClientParams() {
        CertAlipayRequest certParams = new CertAlipayRequest();
        certParams.setServerUrl("https://openapi.alipay.com/gateway.do");
        //请更换为您的AppId
        certParams.setAppId("2021002117629847");
        //请更换为您的PKCS8格式的应用私钥
        certParams.setPrivateKey("123");
        //请更换为您使用的字符集编码,推荐采用utf-8
        certParams.setCharset("utf-8");
        certParams.setFormat("json");
        certParams.setSignType("RSA2");
        //请更换为您的应用公钥证书文件路径
        System.out.println("提取应用公钥证书");
        certParams.setCertPath("C:\\Users\\admin\\Desktop\\zfb\\应用公钥\\appCertPublicKey_2021002117629847.crt");
        //请更换您的支付宝公钥证书文件路径
        System.out.println("提取公钥证书");
        certParams.setAlipayPublicCertPath("C:\\Users\\admin\\Desktop\\zfb\\支付宝公钥证书\\alipayCertPublicKey_RSA2.crt");
        //更换为支付宝根证书文件路径
        System.out.println("提取根证书");
        certParams.setRootCertPath("C:\\Users\\admin\\Desktop\\zfb\\根证书\\alipayRootCert.crt");
        return certParams;
    }

    private static AlipayOpenOperationOpenbizmockBizQueryRequest getRequest() {
        // 初始化Request,并填充Model属性。实际调用时请替换为您想要使用的API对应的Request对象。
        AlipayOpenOperationOpenbizmockBizQueryRequest request = new AlipayOpenOperationOpenbizmockBizQueryRequest();
        AlipayOpenOperationOpenbizmockBizQueryModel model = new AlipayOpenOperationOpenbizmockBizQueryModel();
        model.setBizNo("test");
        request.setBizModel(model);
        return request;
    }
}

测试结果

在这里插入图片描述

秘钥匹配功能

在这里插入图片描述

报错:isv.insufficient-isv-permissions(ISV权限不足):opensupport.alipay.com/support/kno…

手机网站支付demo:opendocs.alipay.com/open/54/106…

老版本
opendocs.alipay.com/open/common…