当前位置: 首页 > news >正文

在线支付系列【23】支付宝支付接入指南

有道无术,术尚可求,有术无道,止于术。

文章目录

    • 前言
    • 接入指南
      • 1. 创建应用
      • 2. 绑定应用
      • 3. 配置密钥
      • 4. 上线应用
      • 5. 开通产品
    • 沙箱环境
    • 开发前准备(沙箱环境)
      • 1. 获取参数、秘钥、证书
      • 2. 下载支付宝客户端
      • 3. 案例演示

前言

在之前,我们基本完成了微信支付的对接,那么接下来集成支付宝就比较简单了,大同小异

对接支付宝,所有能力在其开放平台查看。

在这里插入图片描述
在网页/移动应用开发接入中,可以在网页、移动端、线下支付等场景中唤起支付宝进行支付。
在这里插入图片描述

开发文档、工具、API都可以在当前页查看。
在这里插入图片描述
接入简要流程:
在这里插入图片描述

接入指南

官方指南中,详细记录了企业用户接入时的操作步骤。下面简单汇总介绍下。
在这里插入图片描述

1. 创建应用

开发者使用支付宝账号登录 开放平台控制台(需实名认证的支付宝账号)创建一个应用。

在创建应用后,开放平台会为应用生成应用唯一标识APPID、,通过APPID才能调用开放产品的接口能力。
在这里插入图片描述

2. 绑定应用

支付宝的开放业务存在三种角色类型:

  • 开发者角色:需要开发者账号,一般登录支付宝 开放平台 完成应用开发相关操作。
  • 商家角色:需要商家账号,一般登录 商家服务平台 开通支付服务并完成商家经营相关操作。
  • 服务商角色:需要服务商账号,一般登录 服务商平台 完成协助商家开通产品等操作。

三种角色的账号都可通过注册实名认证的支付宝账号登录相应平台完成开通。

由于应用在支付宝开放平台创建,因此APPID归属于对应开发者账号。如果要在应用中使用支付和资金等相关的产品,必须完成应用APPID同商家账号PID的绑定,通过账号关联可实现将商家开通的产品授权给应用APPID,应用即可调用需要商家开通的产品(例如当面付、转账到支付宝账户等)。

操作流程可分为普通商家发起绑定和服务商代商家发起绑定两种类型,请根据自身需求及角色选择对应方式绑定应用。

登录 商家平台 【 账号中心 > 绑定 > APPID绑定】,点击 添加绑定。

在这里插入图片描述

3. 配置密钥

在接口调用前,您需要在支付宝开放平台配置接口加签方式。

在这里插入图片描述

4. 上线应用

开发者 创建应用 并完成配置后,可点击 提交审核,预计会有 1 个工作日的审核时间。

应用上线成功后,状态将变为 已上线,该状态下的应用能够在生产环境(正式环境)中调用接口。

5. 开通产品

自研型应用需要在应用上线后才可以开通产品。

在这里插入图片描述

沙箱环境

沙箱环境又称测试环境和开发环境,是提供给开发者开发和测试用的环境。是支付宝开放平台为开发者提供的与生产环境完全隔离的联调测试环境,开发者在沙箱环境中完成的接口调用不会对生产环境中的数据造成任何影响。

沙箱环境会提供一个沙箱版的支付宝app、商家账户、买家账户。可以跳过商家入驻、企业资质审核等过程。接入微信、支付宝支付,都需要营业执照等信息,如果没有,就可以使用沙箱环境进行测试。

按照官方详细文档地址操作即可。
在这里插入图片描述

开发前准备(沙箱环境)

1. 获取参数、秘钥、证书

在上面的接入指南中,可以参考官网文档,正式接入支付宝支付,然后获取到对应的参数、秘钥、证书,这里使用沙箱环境获取。

打开沙箱环境获取基本信息。
在这里插入图片描述
开发信息中,点击证书模式的启用,然后点击查看。

在这里插入图片描述

将公钥、私钥、证书都可以下载下来。
在这里插入图片描述

2. 下载支付宝客户端

调试过程中需要支付宝APP支持的功能,请使用沙箱提供的 Android 支付宝沙箱版。参考官方文档操作即可。
在这里插入图片描述
下载完成后,使用提供的账号密码登录即可。

在这里插入图片描述

3. 案例演示

首先添加官方SDK

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

示例代码:

        // 公钥证书中获取公钥String alipayPublicKey = AlipaySignature.getAlipayPublicKey("E:\\pearl-demo\\pearl-pay-demo\\src\\main\\resources\\alipayPublicCert.crt");AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do",// 商户号"2021000122611301",// 私钥                "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCRgk9JYxwLDDKHP/PlmHGpNmfrIox7HG8UJip02UvrJav32bINE37Oo80iF2T17ASjKAJubNWPeuSiUmNDPAbxJlaGlmmn4V7yvYHA/7Q8BIxDUb5WoxZlpxnaSW5GQOmZGZ6Wj/VWuLox+H1QDQEDmohM/GiCWagdDnn9pn583F7cwTpGWP9l4EZZFH/987wOR8K8SRSLPHvRaVSmchRpyY8w261kYFxt92S2n5NyyzSHoRVF4uoxWopmTta+Tzn9xHP/wGKG1keTCDx8XC1gCHXave3LUffufQvFwfxCEnDgKyHPG0Q1A2IfNbDx3t9woJVXuKY/KOu2K/8QinCLAgMBAAECggEAQAcdKGfKITpeyZDkm7T23sSn+ZmcQ1gBsNYSfJRZicFr6IYMiSB4/iipzUSKEoSmjby/RSPy3U3waVTjhORXEaoTDOoG1+6dvyaQgAKEppxBtCW2IZ1l75kWES2arqNFpy7Uz9/Mzzo+BFsZmS3/sjw/mdC/lAwro42JNIocwofxKnOofAkl0eV76mt0tmCa7Rqxg2DV3t/llDzwbGS18EhP94yI6tUu589fq2BuzblvmWnnLKf80llnJN6DW7fyzpMZJugbOwzxsjm81lLyrTksJwLibpQt+TfshqFpz27m/Dy3OmSfjJK4HKkdakDqmPIjAt/8si9D6c2gKoahYQKBgQDnt8MhHspf4+OSuiacfRUC/lPpGM7qo9GcL5nLDhkJbvm9bSsAwTKW21op+JQ3oYWrX4IEa9BKh+Sfv1kijX9vequNykLXi0IqFNL3BlYnhBJVPPqPNBcRGUVFvXaNyv2PLTrtaOF0nMHFcifEcHFy4aRwGBOAR7Qzla9/j8FUcwKBgQCgwdhPBiECTSyRrOPGwrWOhoT8iwI0RmxOwV+SmjzK8t+VQkGm+rmANyQqytObv97Hks/JlLbEbaBfK+zXqWxTlrwCyxznnVrMKu1tg6koo3NfRQ2fhe6SIdi4EpMw0IWMCrftmlYPAK9dA69K4CTavkapMKJCFobBvYKI6VoFiQKBgQCHxvP9+k7XdW+qUI3DcL/ZKzH8Cl9kum1eub3CcBZXosGQL+Hc5VhBcXMZ2ODw4CK1UpebA5nfslVTDgqq5oLfzd+si/Iy3xT8F4uu1/Wv3gHoFH01YG6LxGUFAonveByvwu8eojBJ5njcu5F11/WCPZnfXRxANMPw3ish8hh05QKBgACZ2OoqtrLggPsmb0+N6MnYnOSozGBPpxYASRAuPW3wzH8tWTt7knf1PNBgI7xgUj/iv54cTTacxk20x1TjEEGbvaYxBjGjd/RtcKfJJze8rLC9fFiNUp//OmUtxJkZHnawj5F20z2JHh615dDc16ZtsavuP50JooVU5QkH/kspAoGAGb1ypp3c5yyoanvTD9S283V9YHbWypEPTf/eBu4u1Tlfuu7IdllooNxxwlrtoTl2n6mBJVWKw853D2PnYlpnzjkPX5RTl0wkYP2GB5Up2nPHtN5bJZvBBYca3XIu7ZGKwmXAdeiB1P7uPE3Jw4XybICgtDw45j+7LdEGmRhzKB8=","json","utf-8",alipayPublicKey,"RSA2");AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();request.setNotifyUrl("");request.setReturnUrl("");JSONObject bizContent = new JSONObject();bizContent.put("out_trade_no", "20210817010101004");bizContent.put("total_amount", 0.01);bizContent.put("subject", "测试商品");bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");request.setBizContent(bizContent.toString());AlipayTradePagePayResponse response = alipayClient.pageExecute(request);if(response.isSuccess()){System.out.println("调用成功");} else {System.out.println("调用失败");}

运行后,可以看到返回了HTML表单文件。

在这里插入图片描述
将其复制到runoob在线工具中,点击运行。

在这里插入图片描述

弹出支付页面:
在这里插入图片描述
使用沙箱支付宝APP扫描支付。

相关文章:

在线支付系列【23】支付宝支付接入指南

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录前言接入指南1. 创建应用2. 绑定应用3. 配置密钥4. 上线应用5. 开通产品沙箱环境开发前准备&#xff08;沙箱环境&#xff09;1. 获取参数、秘钥、证书2. 下载支付宝客户端3. 案例演示前言 在之…...

linux系统常用命令

目录 一、系统介绍 二、Linux常用命令 1、Linux命令格式 2、文件目录操作命令&#xff1a;ls 3、文件目录操作命令&#xff1a;cd 4、文件目录操作命令&#xff1a;cat 5、文件目录操作命令&#xff1a;more 6、文件目录操作命令&#xff1a;tail 7、创建文件命令&…...

面试(十一)new与delete(整理) 及 内存泄露

c语言经常使用的是free与malloc,而c++又引入了new和delete它们的区别是什么呢? 内置类型 对于内置类型来说,free和delete、malloc和new几乎没什么区别,但如果是连续的空间,malloc和free只能申请和释放一块空间的内容,而new[] 和 delete[] 可以申请和释放一段连续的空间。…...

2D图像处理:2D ShapingMatching_缩放_旋转_ICP_显示ROI

文章目录 调试结果参考调试说明问题0:并行运行问题问题1:模板+Mask大小问题问题2:组合缩放和旋转问题3:可以直接将计算边缘的代码删除问题4:如何在原始图像上显示匹配到的ROI问题5:计算的原始旋转角度不需要判断,直接可以在ICP中使用问题6:绘制坐标轴问题7:绘制ROI调试…...

(考研湖科大教书匠计算机网络)第四章网络层-第一、二节:网络层概述及其提供的服务

获取pdf&#xff1a;密码7281专栏目录首页&#xff1a;【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一&#xff1a;网络层概述&#xff08;1&#xff09;概述&#xff08;2&#xff09;学习内容二&#xff1a;网络层提供的两种服务&#xff08;1&#xff09;面向连…...

概论_第8章_假设检验的基本步骤__假设检验的类型

一. 假设检验的基本步骤如下&#xff1a;第1步 根据实际问题提出原假设 及备择假设 , 要求 与 有且仅有一个为真&#xff1b;第2步 选取适当的检验统计量&#xff0c; 并在原假设 成立的条件下确定该检验统计量的分布&#xff1b;第3步 按问题的具体要求&#xff0c; 选取适当…...

SpringMVC--简介和入门案例

SpringMVC简介 什么是MVC MVC是一种软件架构的思想&#xff0c;将软件按照模型、视图、控制器来划分 M:Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专门存储业务数据的&#xff0c;如 Studen…...

Cmake入门02-检测环境(笔记)

文章目录检测操作系统处理平台相关源码处理编译器相关源码编译编译处理器相关源码检查cpu是32位还是64位的检测cpu架构处理 CPU指令相关源码案例展示 Eigen3向量化加速项目设置编译器开启向量化优化《CMake cookbook》笔记检测操作系统 cmake中通过CMAKE_SYSTEM_NAME变量来识别…...

Android JNI C++读写本地文件

文章目录小结Android JNI使用CAndroid JNI读写本地文件有关权限创建文件夹访问 /storage/emulated/0/访问/data/data/example.jniwritefile/时间戳Cant determine type for tag参考小结 进行Android JNI C读写本地文件&#xff0c;取得了想要的效果。 Android JNI使用C 对于…...

图形化深度学习开发平台PaddleStudio(代码开源)

目录一、PaddleStudio概述二、环境准备2.1 安装PaddlePaddle2.2 安装依赖库三、基本使用介绍3.1 启动3.2 快速体验3.2.1 下载示例项目3.2.2 训练3.2.3 评估3.2.4 测试3.2.5 静态图导出四、数据集格式4.1 图像分类4.2 目标检测4.3 语义分割4.4 实例分割五、趣味项目实战&#xf…...

【力扣-LeetCode】1138. 字母板上的路径-C++题解

1138. 字母板上的路径难度中等98收藏分享切换为英文接收动态反馈我们从一块字母板上的位置 (0, 0) 出发&#xff0c;该坐标对应的字符为 board[0][0]。在本题里&#xff0c;字母板为board ["abcde", "fghij", "klmno", "pqrst", &quo…...

基于Java+SpringBoot+Vue前后端分离酒店管理系统设计与实现

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建、毕业项目实战、项目定制✌ 博主作品&#xff1a;《微服务实战》专栏是本人的实战经验总结&#xff0c;《S…...

【软考系统架构设计师】2022下综合知识历年真题

【软考系统架构设计师】2022下综合知识历年真题 【2022下架构真题第01题&#xff1a;绿色】 01.云计算服务体系结构如下图所示&#xff0c;图中①、②、③分别与SaaS、PaaS、Iaas相对应&#xff0c;图中①、②、③应为( ) A.应用层、基础设施层、平台层 B.应用层、平台层、基础…...

【计组】理解Disruptor--《计算机组成原理》(十五)

Disruptor 的开发语言&#xff0c;并不是很多人心目中最容易做到性能极限的 C/C&#xff0c;而是性能受限于 JVM 的 Java。其实只要通晓硬件层面的原理&#xff0c;即使是像 Java 这样的高级语言&#xff0c;也能够把 CPU 的性能发挥到极限。 一、Padding Cache Line&#xff…...

Windows11 安装Apache24全过程

Windows11 安装Apache24全过程 一、准备工作 1、apache-httpd-2.4.55-win64-VS17.zip - 蓝奏云 2、Visual Studio Code-x64-1.45.1.exe - 蓝奏云 二、实际操作 1、将下载好的zip文件解压放到指定好的文件夹。我的是D:\App\PHP下 个人习惯把版本号带上。方便检测错误。 2…...

1302机器翻译(队列)

目录 题目描述 提示 解题思路 代码部分 题目描述 小晨的电脑上安装了一个机器翻译软件&#xff0c;他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单&#xff0c;它只是从头到尾&#xff0c;依次将每个英文单词用对应的中文含义来替换。对于每个英文单词&#…...

AcWing、第 90 场周赛:4806. 首字母大写、4807. 找数字、4808. 构造字符串(C++)

目录 4806. 首字母大写 题目描述&#xff1a; 实现代码&#xff1a; 4807. 找数字 题目描述&#xff1a; 实现代码&#xff1a; 回溯&#xff08;超时&#xff09;&#xff1a; 原理思路&#xff1a; 贪心&#xff1a; 原理思路&#xff1a; 4808. 构造字符串 问题…...

跟同事杠上了,Apache Beanutils为什么被禁止使用?

收录于热门专栏Java基础教程系列&#xff08;进阶篇&#xff09; 在实际的项目开发中&#xff0c;对象间赋值普遍存在&#xff0c;随着双十一、秒杀等电商过程愈加复杂&#xff0c;数据量也在不断攀升&#xff0c;效率问题&#xff0c;浮出水面。 问&#xff1a;如果是你来写…...

Golang 模糊测试的使用

一 背景 在 Go 1.18 中,Go 语言新增模糊测试(Fuzzing)。Fuzzing,又叫fuzz testing,中文叫做模糊测试或随机测试。其本质上是一种自动化测试技术,更具体一点,它是一种基于随机输入的自动化测试技术,常被用于发现处理用户输入的代码中存在的bug和问题。模糊测试和常规的功能…...

RSA公钥加密机制跨语言应用实战

在公钥密码学中(也称为非对称密码学)&#xff0c;加密机制依赖于两个密钥&#xff1a;公钥和私钥。公钥用于加密消息&#xff0c;而只有私钥的所有者才能解密消息。实际应用中通常需要对公钥和私钥进行序列化&#xff0c;然后分发密钥实现在不同场景、不同语言环境中使用。本文…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...

如何通过git命令查看项目连接的仓库地址?

要通过 Git 命令查看项目连接的仓库地址&#xff0c;您可以使用以下几种方法&#xff1a; 1. 查看所有远程仓库地址 使用 git remote -v 命令&#xff0c;它会显示项目中配置的所有远程仓库及其对应的 URL&#xff1a; git remote -v输出示例&#xff1a; origin https://…...