一,前言:

项目中我们集成了支付宝,用户可以使用支付宝来进行支付
项目测试时,我们当然也需要一套测试环境对支付流程进行测试
如果我们使用线上的支付宝配置进行测试,那么我们必须使用真实货币进行支付
并且支付的金额会进入生产环境的支付宝绑定银行卡中,造成诸多不便
这里,支付宝为测试提供了一个沙箱环境,使我们可以使用虚拟货币进行支付测试
这篇文章就来详细说一下支付宝沙箱环境的配置和使用

二,前置了解

在正式进入沙箱配置和使用之前,我们先说一下需要了解的一些知识和概念

首先,后台服务器在调用支付宝接口(如发起支付)时,需要实例化一个支付宝client
这里需要一些构造参数,而沙箱和正式环境的不同就在于这些参数:
/*** Created by Brave on 17/5/16.* 支付宝参数配置-多环境*/
@Component
public class AliPayConfig {@Value("${alipay.url}")private String alipay_url;// 支付宝网关(固定)@Value("${alipay.appid}")private String alipay_appid;// APPID 即创建应用后生成@Value("${alipay.publickey}")private String alipay_publickey;// 开发者私钥,由开发者自己生成@Value("${app.privatekey}")private String app_privatekey;// 支付宝公钥,由支付宝生成@Value("${alipay.format}")private String alipay_format;// 参数返回格式,只支持json@Value("${alipay.charset}")private String alipay_charset;// 编码集,支持GBK/UTF-8@Value("${alipay.signtype}")private String alipay_signtype;// 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2@Value("${alipay.pid}")private String alipay_pid;// 合作者身份ID(PID)是商户与支付宝签约后,商户获得的支付宝商户唯一识别码// getter and setter ...
}/*** Created by Brave on 17/5/16.* 支付宝客户端单例*/
public class AliPayClient {private AliPayClient() {}private static DefaultAlipayClient instance;public static synchronized DefaultAlipayClient getInstance(AliPayConfig aliPayConfig) {if (instance == null){instance = new DefaultAlipayClient(aliPayConfig.getAlipay_url(),aliPayConfig.getAlipay_appid(),aliPayConfig.getApp_privatekey(),aliPayConfig.getAlipay_format(),aliPayConfig.getAlipay_charset(),aliPayConfig.getAlipay_publickey(),aliPayConfig.getAlipay_signtype());}return instance;}}

可以看到我们在实例化Client时使用了8个参数的构造方法(还有其他构造方法),
其中前4个参数正式和沙箱环境使用的值是不同的,后四个可以是相同的,
根据我们对各个字段的注释应该可以知道:

1)沙箱环境和正式环境的支付宝网关不同:因为使用了沙箱环境的支付宝网关
2)沙箱环境和正式环境的APPID不同:因为沙箱环境是新创建的一个应用
3)沙箱环境和正式环境的开发者私钥(应用私钥)不同:因为沙箱环境新建了新的应用,每个应用都应该重新生成一套应用公钥和私钥
4)沙箱环境和正式环境的支付宝公钥不同:因为为沙箱环境配置了新的应用公钥,所以生成的支付宝公钥

到这里,我们又要清晰一个概念,应用公钥,应用私钥,支付宝公钥是什么?

这里我们不去说原理,只说使用
新建一个支付宝应用后,我们使用支付宝提供的"RSA签名验签工具"生成一套应用公钥,应用私钥
应用私钥:需填写到代码中供签名时使用。
应用公钥:需提供给支付宝账号管理者上传到支付宝开放平台
支付宝公钥:为应用配置应用公钥后,由支付宝生成

支付宝相关文档:

生成RSA密钥:https://docs.open.alipay.com/291/106074
上传应用公钥并获取支付宝公钥:https://docs.open.alipay.com/291/105972/
使用应用私钥生成请求签名:https://docs.open.alipay.com/291/105974/
使用支付宝公钥验签:https://docs.open.alipay.com/291/106074/

三,沙箱环境配置

支付宝相关文档其实已经把配置所得听明白了,这里写给那些不想看文档的人,毕竟文档是文档,不是实际操作

1,登陆支付宝开放平台,点击进入“开放平台-开发者中心-沙箱环境”。

2,进入沙箱环境页面,系统自动创建一个应用并可以看到应用信息

3,设置应用公钥,开发者要保证接口中使用的私钥与此处的公钥匹配,否则无法调用接口

秘钥生成文档:https://docs.open.alipay.com/291/105971

以MAC为例:
下载秘钥生成工具,运行“RSA签名验签工具.bat”(WINDOWS)或“RSA签名验签工具.command”(MAC_OSX)

详细步骤:
1.根据开发语言选择密钥格式。
2.选择密钥长度,建议使用2048位。
3.点击 “生成密钥”,会自动生成商户应用公钥和应用私钥。
4.点击“打开密钥文件路径”,即可找到生成的公私钥。如图:

生成的私钥需妥善保管,避免遗失,不要泄露。
应用私钥需填写到代码中供签名时使用。
应用公钥需提供给支付宝账号管理者上传到支付宝开放平台

4,验证公钥正确性:

下载签名工具:
运行支付宝报文签名生成器SHA256withRSA2048_V1.0.command

将私钥文本信息粘贴到左侧点击生成签名
将生成的签名放入上一步的”RSA秘钥调试工具”文本框内,进行验证

出现上图显示”验证成功”说明配置公钥正确
配置应用公钥完成后,会出现支付宝公钥:

点击查看支付宝公钥,获得支付宝公钥

到这里,我们就得到了支付宝公钥和应用私钥,下面我们开始使用沙箱环境


四,沙箱环境的使用

1,后台服务参数修改:

在前置了解中,我们已经将支付宝实例化的代码和参数贴了出来
也说明了沙箱环境其实就是新生成的一个支付宝应用
实例化的8个参数中有四个是不同的,另外4个是和线上环境相同的即可

下面我们看一下需要修改为沙箱环境的4个参数如何使用:

支付宝网关:沙箱网关为https://openapi.alipaydev.com/gateway.do
APPID:使用自动创建的沙箱管径APPID即可
应用私钥:步骤三生成的应用私钥
支付宝公钥:步骤三种得到的支付宝公钥

将服务器端实例化Client的参数改为上述参数即可启用沙箱环境进行支付宝测试

2,APP支付沙箱接入注意点

1、APP支付支持沙箱接入;在沙箱调通接口后,必须在线上进行测试与验收,
所有返回码及业务逻辑以线上为准;
2、APP支付只支持余额支付,不支持银行卡、余额宝等其他支付方式;
3、APP支付只支持Android版接入,在使用sdk时,在支付接口前调用如下方法EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);

3,安装沙箱版支付宝App:

沙箱环境下,支付宝也提供了沙箱版支付宝App(目前只能使用Android版本进行测试,IOS不可用)

扫描二维码下载沙箱版App:

4,获得沙箱版App登陆账号密码

支付宝开放平台-开发者中心-研发服务-沙箱账号:
https://openhome.alipay.com/platform/appDaily.htm?tab=tool

使用买家用户名密码登陆进行支付即可使用沙箱环境了
在这个页面下我们可以自由的为账户进行充值
最后附一张App的截图:

是不是特别爽

到这里,我们说了如何使用沙箱环境
其实支付宝正式环境的配置和沙箱环境基本是一致的
后面我们会说一下集成支付宝的方法以及逻辑上的注意事项
并且我们还有一套较为完善的支付宝监控的日志记录
此部分模块化已完成,后期会抽离成为一个Demo供调试使用


维护日志

20180314:
添加了支付宝AndroidApp接入沙箱环境注意事项,Android开启沙箱配置

支付宝-沙箱环境配置和使用相关推荐

  1. 免费沙箱软件模拟支付_支付(支付宝沙箱环境配置、测试支付Demo)

    1.注册沙箱环境 (1)概述 首先java的jdk中,并没有提供支付的功能,所以市面上用到的支付都属于第三方,而常用的第三方支付平台:支付宝sdk.微信sdk! 可以使用蚂蚁金服下的沙箱环境进行支付( ...

  2. 支付宝支付——沙箱环境配置

    支付宝沙箱环境配置 了解什么是沙箱环境 设置沙箱环境 准备工具 创建项目 配置依赖 SDK生成 创建Controller APP_ID APP_PRIVATE_KEY及商户私钥 CHARSET 编码一 ...

  3. 支付宝沙箱环境+SpringBoot+内网穿透整合开发

    目录 1.查看沙箱账号 2.内网穿透 3.沙箱环境整合SpringBoot开发 下面我将以实际案例详细介绍如何使用沙箱环境进行支付宝支付对接的开发 1.查看沙箱账号 首先什么是沙箱账号? 沙箱账号是指 ...

  4. 支付宝沙箱环境接口使用详解

    最近在做一个模拟支付宝的支付功能,用到了支付宝沙箱模拟环境,具体使用步骤如下,仅供参考: 一.注册支付宝沙箱环境账号 1.既然使用人家提供的东西,必须要注册一个他家的账号,使用万能的百度找到支付宝沙箱 ...

  5. 支付宝沙箱环境对接(当面付)

    支付宝沙箱环境对接(当面付) 第一步: 好好阅读以下的文档: 沙箱登录:https://openhome.alipay.com/platform/appDaily.htm 沙箱环境使用说明:https ...

  6. 支付宝沙箱环境的使用----详细教程

    支付宝沙箱环境的使用----详细教程 支付宝的沙箱环境不需要商家认证,相对于微信沙箱门槛比较低,开发的时候方便我们在本地测试 这个教程带大家完成客户端支付 手机准备环境 客户端调试----支付宝沙箱环 ...

  7. Vue对接支付宝沙箱环境

    文章目录 前言 一.支付宝沙箱环境是什么? 二.安装所需要的环境 1.引入环境以及工具 2.安装Express框架 3.对接支付宝沙箱环境 总结 前言 此文章仅供学习参考,这里我们对接的环境是Vue. ...

  8. python如何接入支付宝沙箱环境

    最近的项目需要对接支付宝,因为之前没有接触过支付宝支付的功能,折腾了好久才把问题测地解决了,现在把详细的过程贴出来让广大同学少走弯路. 目前,支付宝有两种状态,一种是用于支付的正式环境,也就是平时我们 ...

  9. android 支付宝沙箱测试环境,Android支付宝沙箱环境使用教程

    Android支付宝沙箱环境使用教程 网上好多支付宝教程,但是好像没看到支付宝沙箱环境的使用教程,尤其是在做Android支付宝测试的时候,沙箱拿来测试挺好的,正式使用的时候更换里面的个别数据就可以了 ...

  10. 支付宝沙箱环境 电脑支付

    项目场景: java语言,jdk1.8也可以使用 .支付宝沙箱环境电脑支付. 电脑端生成二维码,手机端扫描支付 AlipayConfig: APP 中接收数据代码: package com.hc;/* ...

最新文章

  1. html oninput的作用,html范围滑块 - oninput在IE 11中不起作用
  2. 数据库系统(五)——数据库设计
  3. MySQL索引背后的数据结构及算法原理----惊叹的深入
  4. Leetcode 9. 回文数(Palindrome Number)
  5. 计算机主机箱拆箱,开箱 篇一:拆戴尔3681 SFF 10代小主机
  6. linux内核 panic,linux 内核 panic
  7. 01-HTML基础与进阶-day4-录像250
  8. php中的数值型字符串相加 相比较( ==)
  9. 用char*作为map的key
  10. cron表达式 每个月的最后一个工作日的另一种解法
  11. 计算机大赛指导老师自评怎么写,教学大赛自我评价.docx
  12. 电脑计算机丢失msvcp140.dll,电脑缺少msvcp140.dll怎么办
  13. 关于2010年部分节假日安排
  14. C++刷题知识点总结2
  15. Befunky - 将图片卡通化的在线工具
  16. 设计模式汇总,对应Android系统源码举例,保你一次看个够
  17. 2021年中式烹调师(中级)考试题库及中式烹调师(中级)操作证考试
  18. 逻辑回归预测瘀血阻络证||LogRegression 二分类 python3|五折交叉验证
  19. 南通python 培训全栈培训班
  20. 我们都在努力奔跑,我们都是追梦人

热门文章

  1. QT 自定义UI控件自适应窗口大小
  2. Origin | 堆叠柱状图 | 多列(分组)堆积柱状图
  3. mysql多表格数据合并_mysql 如何实现两个表数据统计合并
  4. 【笔记】Opencv 绘制朱利亚(Julia)集合图形
  5. Navicat for MySQL 视图创建使用方法以及如何查看数据表创建语句
  6. 三阶魔方大中小魔公式_七步玩转三阶魔方还原公式及非公式步骤图解【新手适用超详细】...
  7. Windwos cwRsync 服务端及客户端安装配置全攻略
  8. 【Unity编辑器扩展】Unity发布资源到商店流程Unity Asset Store Publish
  9. USB转单串口、多串口芯片选型UART.TTL.RS-232等
  10. 加域电脑,如何脱域上网下载安装其他工具软件