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

P7面试送命题

面试总结&#xff0c;对标市场P7。什么叫送命题&#xff0c;一道题回答不上来面试直接挂的题目。JVM 运行时数据区域内存回收机制GC root有哪些volatile原理synchronize原理JDK 集合家族介绍HashMap原理ConcurrentHashMap原理Thread生命周期ThreadPoolExecutor生命周期、实例化…...

零信任-微软零信任介绍(2)

微软零信任是什么&#xff1f; Microsoft Zero Trust 是一种安全架构&#xff0c;旨在在没有信任任何设备、用户或网络的情况下保护网络。这种架构使用多重验证和分段技术&#xff0c;以确保每个请求和资源的安全性。 零信任不假定任何内部用户或设备是安全的&#xff…...

C++中对象调用成员函数this指针的作用

C中对象调用成员函数this指针的作用 Sales_data total;//定义对象 total.isbn();//调用对象中的成员函数isbn成员函数isbn()通过一个名为this的额外隐式参数来访问调用它的对象total。当我们调用一个成员函数时&#xff0c;用请求该函数的对象地址初始化this。 例如&#xff0…...

JavaScript------数组

目录 一、简介 1、什么是数组&#xff1f; 2、创建数组 3、数组的数据类型 4、向数组中添加元素 5、读取数组中的元素 6、实例属性&#xff1a;length 二、遍历数组 方式一&#xff1a;for循环 方式二&#xff1a;for...of 三、数组方法&#xff08;常用&#xff09…...

迷宫《1》

一天蒜头君掉进了一个迷宫里面&#xff0c;蒜头君想逃出去&#xff0c;可怜的蒜头君连迷宫是否有能逃出去的路都不知道。看在蒜头君这么可怜的份上&#xff0c;就请聪明的你告诉蒜头君是否有可以逃出去的路。输入格式第一行输入两个整数 &#xfffd;n 和 &#xfffd;m&#x…...

剑指 Offer 20. 表示数值的字符串

剑指 Offer 20. 表示数值的字符串 请实现一个函数用来判断字符串是否表示数值&#xff08;包括整数和小数&#xff09;。 数值&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 若干空格 一个 小数 或者 整数 &#xff08;可选&#xff09;一个 ‘e’ 或 ‘…...

阻抗匹配之反射波形测量

稍微接触过高速信号的朋友&#xff0c;一定对阻抗匹配和信号反射都有所了解&#xff0c;甚至可以按照公式&#xff0c;把反射波形一路推导出来。但是&#xff0c;纸上得来终绝浅&#xff0c;绝知此事要躬行。 今天&#xff0c;我们就来实测一下信号反射波形&#xff0c;测试环…...

微信小程序 java家校通Springboot中小学家校联系电子作业系统

小程序前端框架&#xff1a;uniapp 小程序运行软件&#xff1a;微信开发者 后端技术:javaSsm(SpringSpringMVCMyBatis)vue.js 后端开发环境:idea/eclipse 数据库:mysql 通过对各种资料的收集&#xff0c;了解到“校讯通”是联系社会的窗口&#xff0c;是实现家校联系工作和学校…...

Fluent Python 笔记 第 8 章 对象引用、可变性和垃圾回收

本章先以一个比喻说明 Python 的变量&#xff1a;变量是标注&#xff0c;而不是盒子。如果你不知道引用式变量是什么&#xff0c;可以像这样对别人解释别名。 然后&#xff0c;本章讨论对象标识、值和别名等概念。随后&#xff0c;本章会揭露元组的一个神奇特性&#xff1a;元…...

转义字符的分类

什们是转义字符 可显示字符在字符集中&#xff0c;有一类字符具有这样的特性&#xff1a;当从键盘上输入这个字符时&#xff0c;显示器上就可以显示这个字符&#xff0c;即输入什么就显示什么。这类字符称为可显示字符&#xff0c;如a、b、c、$、和空格符等都是可显示字符。 控…...

做服装最好的网站建设/新东方英语培训机构官网

2019独角兽企业重金招聘Python工程师标准>>> ​ 简介 红帽在2019年5月7号红帽正式发布了rhel8&#xff0c;在发布rhel8之前红帽还换了logo&#xff0c;从要脸变成了不要脸&#xff0c;这么重大的改变&#xff0c;作为一个运维自然要关注一下 下载 下载地址如下 http…...

wordpress插件功能/如何提高自己的营销能力

大数据技术与架构点击右侧关注&#xff0c;大数据开发领域最强公众号&#xff01;暴走大数据点击右侧关注&#xff0c;暴走大数据&#xff01;NoSQL运动自从上世纪80年代以降&#xff0c;关系型数据库&#xff08;即传统的OLTP和OLAP数据库&#xff09;一直都是后端业务系统的主…...

wordpress h1标签/免费平台

文章目录散列查找1. 基本思想2. 基本工作3. 散列函数的构造1. 考虑因素2. 数字关键词1. 直接定址法2. 除留余数法3. 数字分析法4. 折叠法5. 平方取中法3. 字符串关键字1. ASCII码加和法2. 前3个字符移位法3. 移位法4. 冲突处理方法1. 常用策略2. 开放定址法1. 线性探测2. 平方探…...

吉林省网站建设行业需求分析/十大引擎网址

题目&#xff1a;写一个函数返回参数二进制中 1 的个数比如&#xff1a; 15 0000 1111 4 个 1程序原型&#xff1a;int count_one_bits(unsigned int value){// 返回 1的位数 }解题思路&#xff1a;首先写出这个数字的二进制序列并且定义一个计数器&#xff0c;由于数字在计算机…...

北京上海网站建设公司/百度一下首页网页

原创不易&#xff0c;转载请附上链接&#xff0c;谢谢http://blog.csdn.net/chen495810242/article/details/39207305 1、RTP Header解析 图1 1) V&#xff1a;RTP协议的版本号&#xff0c;占2位&#xff0c;当前协议版本号为2 2) P&#xff1a;填充标志&#…...

通过ip直连打开网站要怎么做/百度竞价推广培训

一、echo 命令 1. 显示普通字符 echo "It is a test" # 输出 It is a test 2. 显示转义字符 echo "\"It is a test\"" # 输出 "It is a test" 3. 显示变量 read name echo "Im ${name}" read 命令是一个一个词组地接收输…...