当前位置: 首页 > 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;然后分发密钥实现在不同场景、不同语言环境中使用。本文…...

PortAudio性能测试与调优:如何实现最低延迟音频处理的完整指南

PortAudio性能测试与调优&#xff1a;如何实现最低延迟音频处理的完整指南 【免费下载链接】portaudio PortAudio is a cross-platform, open-source C language library for real-time audio input and output. 项目地址: https://gitcode.com/gh_mirrors/po/portaudio …...

GitHub加速终极指南:3步让你的下载速度提升10倍!

GitHub加速终极指南&#xff1a;3步让你的下载速度提升10倍&#xff01; 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还在为Git…...

OpenClaw 如何实现任务恢复与失败重试?

网罗开发&#xff08;小红书、快手、视频号同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…...

告别底噪与失真:手把手教你用STM32 I2C驱动WM8988音频Codec(附完整寄存器配置代码)

嵌入式音频开发实战&#xff1a;WM8988音质优化全攻略 在嵌入式音频系统开发中&#xff0c;WM8988作为一款高性能低功耗的音频编解码芯片&#xff0c;因其出色的音质表现和灵活的配置选项&#xff0c;成为众多开发者的首选。然而&#xff0c;很多工程师在完成基础驱动后&#x…...

Cognize-Agent™空间智能体,98.5%故障预警准确率,终结非计划停机

Cognize-Agent™空间智能体&#xff0c;98.5%故障预警准确率&#xff0c;终结非计划停机工业制造领域&#xff0c;设备非计划停机始终是制约生产效率、拉高运维成本的核心痛点。传统设备运维依赖定期检修、事后抢修&#xff0c;依赖人工巡检与单一数据监测&#xff0c;无法提前…...

Kafka高效的原因

Kafka高效的原因Kafka的高效性源于其独特的架构设计和多项优化技术&#xff0c;以下是关键因素&#xff1a;分布式架构与分区机制 Kafka采用分布式设计&#xff0c;主题&#xff08;Topic&#xff09;被划分为多个分区&#xff08;Partition&#xff09;&#xff0c;每个分区可…...

Acrylic Paint风格在Midjourney中失效的5大隐性陷阱(附官方未公开的--s 700+--style raw协同调参公式)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Acrylic Paint风格在Midjourney中的本质定义与失效现象全景图 Acrylic Paint&#xff08;丙烯画&#xff09;风格在Midjourney中并非原生语义标签&#xff0c;而是一种通过视觉特征逆向建模的提示工程产…...

欢迎来到Marp世界

欢迎来到Marp世界 【免费下载链接】marp The entrance repository of Markdown presentation ecosystem 项目地址: https://gitcode.com/gh_mirrors/mar/marp 用Markdown创建专业演示文稿从未如此简单&#xff01; 第二张幻灯片 列表项1列表项2列表项3 第三张幻灯片&am…...

音频变压器关键参数深度解析:Z值与最大电流的工程实践

音频变压器关键参数深度解析&#xff1a;Z值与最大电流的工程实践引言在专业音频系统、高保真音响以及工业信号隔离场景中&#xff0c;音频变压器始终扮演着不可替代的角色。它的核心使命是在保持信号完整性的同时&#xff0c;完成阻抗匹配、地环路隔离和信号平衡转换三大任务。…...

揭秘AI教材生成秘诀!AI教材写作工具助力,低查重完成20万字教材!

教材编写难题与AI工具解决方案 在编写教材时&#xff0c;如何才能精准满足不同的需求呢&#xff1f;不同学段的学生在认知能力上存在显著差异&#xff0c;内容过于复杂或简单都不合适&#xff1b;而在课堂教学和自主学习等不同场景下&#xff0c;对教材的要求又各不相同&#…...