PC端支付宝支付测试(沙箱环境)
前言
支付宝提供的沙箱环境,入门门槛非常低,不需要商家认证那一套,这一点对开发者是非常友好的,可以直接在本地运行测试,跟最终的产品上线效果是一样的,好了,废话不说,进入正题。
1. 登陆支付宝开放平台
支付宝开放平台链接:https://open.alipay.com
右侧直接支付宝扫码支付就完事了。
登陆之后需要填写入驻信息,如果是个人开发者的话可以切换一下信息,默认为系统服务商,可自行切换到开发者身份。如下图所示。


2. 进入沙箱环境
登陆成功后,如下图所示,页面往下拉,找到 开发服务 > 研发服务

这就是沙箱环境的入口了,接下来就是需要设置一下参数了。
补充:为保证沙箱长期稳定,每周日中午12点至每周一中午12点沙箱环境进行维护,期间可能出现不可用,敬请谅解。
3. 设置必要参数
第一个需要设置的参数为 RSA2(SHA256)密钥(推荐)

点击设置后,可以根据自己情况选择加密方式,下面我采用的是公钥:

下载安装支付宝开放平台开放助手,点击生成秘钥,公钥私钥都有用注意保存一下:

将生成的公钥复制到支付宝窗口中:

第二个需要设置的参数为 应用网关
开发环境网关链接为:https://openapi.alipaydev.com/gateway.do

4. 体验测试账户
沙箱环境提供了测试账户,包含商户号跟买家号,但是该账户只能在支付宝提供的测试APK上使用。
界面继续往下拉,找到测试APK的下载地址:「或者是在左侧的沙箱工具中下载」

账户信息在左侧的 沙箱账户 中。

5. 下载官方提供的测试Demo
当面付
APP支付客户端
APP支付服务端
分享到支付宝
手机网站支付
生活号(原服务窗)
JS-API
我们就以 手机网站支付 为例,测试一下(java)。
6. 运行测试Demo
下载手机网站支付 Demo 后导入 IDEA 中,需要调整的参数如下:
AlipayConfig.java
public class AlipayConfig {
/** 商户appid **/
public static String APPID = "2016101700705301";
/** 私钥 pkcs8格式的 **/
public static String RSA_PRIVATE_KEY = "";
/** 服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 **/
public static String notify_url = "http://ngrok.sscai.club/alipay_trade_wap_pay_java_utf_8_war_exploded/notify_url.jsp";
/** 页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址 **/
public static String return_url = "http://ngrok.sscai.club/alipay_trade_wap_pay_java_utf_8_war_exploded/return_url.jsp";
/** 请求网关地址 **/
public static String URL = "https://openapi.alipaydev.com/gateway.do";
/** 编码 **/
public static String CHARSET = "UTF-8";
/** 返回格式 **/
public static String FORMAT = "json";
/** 支付宝公钥 **/
public static String ALIPAY_PUBLIC_KEY = "";
/** 日志记录目录 **/
public static String log_path = "/log";
/** RSA2 **/
public static String SIGNTYPE = "RSA2";
}
简单说一下几个参数吧。
RSA_PRIVATE_KEY:私钥,这个参数就是通过 支付宝开放平台开放助手 生成的应用公钥、应用私钥 中的应用私钥
notify_url:异步通知,当你支付成功时,支付宝回调你本地启动项目的接口,必须是外网可以访问的,否则支付宝请求不到,但是又得是你本地的方法「不讨论线上测试」,所以这就需要用到内网映射,推荐使用免费版的 natapp(自行百度)。
粗糙理解:内网映射就是将内网映射到外网,实现通过外网链接访问本地的效果。
例如上方的:http://ngrok.sscai.club 指向我本地的 http://127.0.0.1:port
ALIPAY_PUBLIC_KEY:支付宝公钥,注意这个参数不是你上边生成的应用公钥,而是下方截图中的支付宝公钥。

运行启动项目后如下图所示「PC端」:

由于是手机网站支付,所以我们在手机浏览器进行测试。
