第三方支付API支付宝支付申请流程 支付宝新老版本

2023-11-19

新版本

在这里插入图片描述

在这里插入图片描述

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 : https://opendocs.alipay.com/open/203/105910
下载三个证书
在这里插入图片描述

按要求传入参数

代码:

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权限不足):https://opensupport.alipay.com/support/knowledge/01/201602475472?ant_source=antsupport

手机网站支付demo:https://opendocs.alipay.com/open/54/106682

老版本
https://opendocs.alipay.com/open/common/104740

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第三方支付API支付宝支付申请流程 支付宝新老版本 的相关文章

随机推荐

  • 微信小程序自动检测版本并提示更新新版本

    微信小程序自动检测版本并提示更新新版本 微信小程序开发过程中 我们在版本更新迭代后 微信小程序客户端并不能触发自动更新 需要用户手动清理小程序后重新搜索进入后才能获取到最新的小程序版本 但是这个是用户所不能感知到的操作 也很麻烦 故需要提醒
  • Unity学习之路10——多人游戏与网络

    Unity学习之路10 多人游戏与网络 作业要求 选择一个以前的作业或自己选择一个小游戏 设计成网络游戏 效果图 实现过程 在上一次作业的基础上 将AI小坦克改成双人对战坦克游戏 主要参考资料 老师的博客 Step1 为了简化 去掉了上次作
  • js基础之构造函数和类

    JS的构造函数和ES6的类是JS中很重要的概念 也是面向对象编程的核心 在本文中 我们将探讨JS的构造函数和ES6的类的基础知识 包括它们的定义 使用方法以及它们之间的区别 JS的构造函数 JS中的构造函数是一种特殊的函数 用于创建对象 它
  • 没有安稳的工作(几年前帖子,私密变公开后时间就变了)

    上个月请假 发现公司在网上立即招人了 上周请假 发现公司又在网上招人了 试用期还没有过 如果按照这个情况 真是哪里都不安稳 双向选择吧 不过这个公司确实人才济济 能学到很多东西 虽然给我的工资是应届优秀硕士生的工资
  • 送一个2022年最赚钱的方法!包含操作方法!

    在互联网上 可恶的人有很多 值得我们学习的人也有很多 有的人做起事来不讲武德 而有的人却是我们值得学习一生的榜样 在赚钱的路上 信息就是金钱 你掌握了信息的源头 就掌握的金矿 拥有足够的信息来源 那么你就有足够的金钱 假如你想在一个行业里快
  • shell的排序

    目录 一 冒泡排序 1 定义 2 基本思想 3 算法思路 4 算法逻辑图 5 示例1 将指定数组重新排序 6 示例2 写一个函数 输入任何数组都可以进行排序 二 直接选择排序 1 直接选择排序的逻辑图 2 示例 将指定数组重新排序 三 反转
  • 使用Aspose在Java中将Excel文件转换为HTML

    Excel电子表格可让您以表格形式存储和组织数据 也可以执行计算以及生成不同类型的图形和图表以分析数据 但是 在各种情况下 可能需要执行Excel到HTML的转换才能将工作表转换为HTML页面 例如 将电子表格的内容嵌入到网页中时 因此 本
  • 出现Unknown initial character set index ‘255‘ received from server问题时如何解决

    Unknown initial character set index 255 received from server Initial client character set can be forced via the characte
  • 逻辑回归(Logistic Regression, LR)简介

    逻辑回归 Logistic Regression LR 简介 标签 空格分隔 机器学习 机器学习最通俗的解释就是让机器学会决策 对于我们人来说 比如去菜市场里挑选芒果 从一堆芒果中拿出一个 根据果皮颜色 大小 软硬等属性或叫做特征 我们就会
  • Shell脚本运行方式

    Shell脚本通常以 shebang 起始 后跟Shell解释器路径 bin bash 两种运行脚本文件的方式 bash 文件名 文件位于当前目录下 此种方式不用shebang 文件名 或 完整路径 代表当前目录 脚本必须有可执行权限 并且
  • selenium如何关闭浏览器中新打开的标签页

    最近在用selenium做自动化时遇到了一个问题 那就是当我在当前页面点击了一个链接之后 弹出一个新的页签来展示内容 而不是在当前页面展示 而我要做的就是关闭这个新打开的页签 因为我后续的操作是基于有链接的那个页面的 经过多次思考和选择 终
  • flex布局中flex-shrink的使用

    div style width 100 display flex border 1px solid black div style width 500px height 100px background color red 1 div di
  • 微信小程序如何获取自定义组件中properties的属性并修改,以及父组件和子组件相互传值

    原因 因为自己想了解组件中properties里面的值如何获取到而记录这篇文章 一 自创自定义组件 在json文件夹写上 component true 二 父组件的操作步骤 2 1 在json文件夹加上使用组件 2 2 在js文件中写好要传
  • C++ 与 Cuda 混合编程的CMakeList 写法 与例子

    前言 一般的情况下 C与Cuda混合编程 可能通过 VS的UI方式 创建工程 但是 这种情况下效率不高 并且不能跨平台 因此 高级的方式 是使用CMakeList的方式 创建工程 Windows情况下 可以CMakeList 成Visual
  • 再见以前说再见 大数据存储复习

    创建一个数据库 数据库在HDFS上的默认存储路径是 user hive warehouse db 创建数据库 create database if not exists school 过滤显示查询的数据库 show databases li
  • JetBrains开发者日见闻(一)之Kotlin/Native 尝鲜篇

    简述 今天我们来讲点Kotlin中比较时髦的东西 有的人可能会说 不像你之前的风格啊 之前的文章不是一直在死扣语法以及语法糖背后秘密 当你还在死扣泛型语法的时候 别人的文章早就说了Kotlin Native和Kotlin1 3的新特性 瞬间
  • Java 中Math类的使用

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 Math类概述 Math类包含执行基本数字运算的方法 下面通过代码来演示 Math类的常用方法 public class Math
  • spring事务,TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

    在aop配置事务控制或注解式控制事务中 try catch 会使事务失效 可在catch中抛出运行时异常throw new RuntimeException e 或者手动回滚TransactionAspectSupport currentT
  • AD20/Altium designer——如何对PCB添加图片丝印、自定义LOGO、专属图案

    本篇介绍如何在PCB添加图案丝印并调节大小 主要步骤 图片转单色图 bmp格式 复制粘贴进word文档 再次复制到AD 1 选择图片用电脑自带的画图软件打开 2 将图片另存为 bmp格式 3 查看图片效果是否理想 图片是否需要取反色 选做
  • 第三方支付API支付宝支付申请流程 支付宝新老版本

    新版本 Maven 引入jar包