1 配置沙箱环境1.1 入驻开放平台

1.进入蚂蚁金服开放平台登录界面,入口:link,使用支付宝扫码支付。

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝

2.登录成功后,选择自由开发者->开始入驻。

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_02

3.完善信息。

Android 支付宝沙箱6001 支付宝沙箱使用_java_03

4.同意协议

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_04

5.开发者中心->研发服务

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_05

6.可以看到系统给我们提供了沙箱应用,沙箱账号,沙箱工具等服务

Android 支付宝沙箱6001 支付宝沙箱使用_html_06

7.点击沙箱账号,这里有个系统提供的商家信息、买家信息,到时候测试能用到

8.点击沙箱工具,点击沙箱版钱包(目前只有安卓版),扫描后安装到手机上,使用上一步说账号登录试试

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝沙箱支付_07

1.2 下载官方DEMO

1.点击沙箱应用页面中的沙箱当面付接入引导,下载SDK

Android 支付宝沙箱6001 支付宝沙箱使用_java_08

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_09

2.下载好DEMO后解压,使用Eclipse进行导入

如果导入eclipse中参考一下博客进行设置

1.3 配置DEMO中的zfbinfo.properties

1.先配置1、2、3项。

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝_10

配置文件中1、2、3对应沙箱应用截图中1、2、3。

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_11

2、配置RSA私钥、公钥和支付宝公钥

第一、点击设置应用公匙。

Android 支付宝沙箱6001 支付宝沙箱使用_html_12

第二、点击设置应用公匙。

Android 支付宝沙箱6001 支付宝沙箱使用_html_13

第三、点击查看密钥生成方法

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_14

第四、点击下载对应工具。

Android 支付宝沙箱6001 支付宝沙箱使用_html_15

第五、解压下载好的工具,点击以下运行程序。

Android 支付宝沙箱6001 支付宝沙箱使用_html_16

第六、点击生成密匙。

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_17

复制私钥到  zfbinfo.properties 中的  private_key,复制公钥到 zfbinfo.properties 中的  public_key 

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝沙箱支付_18

复制公钥到沙箱应用应用公钥,点击保存

Android 支付宝沙箱6001 支付宝沙箱使用_html_19

然后页面会刷新,点击查看支付宝公钥

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝_20

复制查看内容,填写到 alipay_public_key

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝_21

至此,zfbinfo.properties配置文件修改好了。

3、商户部分应用网关跟支付宝网关保持一致,授权回调地址后期添加

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_22

2 测试2.1 运行Main.java,控制台输出如下,测试成功

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝沙箱支付_23

返回信息

{"alipay_trade_precreate_response":
{"code":"10000","msg":"Success","out_trade_no":"tradeprecreate15609492738847371851",
"qr_code":"https:\/\/qr.alipay.com\/bax03181aw1b7mszjlec0063"},
"sign":"CLoFVHw/knaWqmmIytHI+2FEanc8pmVQrs+w9HYGoFcSvxh9lHl4OFGRVerKVFqeRq+
7PgRRCZWznczXzTjsJZFeVEYqJZfsP54vVv6VhktcQkhmcO2z+NwqCxo7GCBLOkik4bGR5dO4Bfwr
DQ1B4IUKroEpYmMPc/Cl+B53uu8+fa7Cy1H6z/T0Z2vxRt8WuqJpiCLKVcsU1RgkbM6zpOyZpB9z6
vBR5O3MQQ+pAY66SjkQumSN9wXt3lAH7Fza/8brrYXdfolsnlaPy7cNyj5tfAOtAYumnvX9c7zMsj0a
+QuT4DG89JyoitMj2Cj+9sxCq2K/DWiphtdi9YCRqQ=="}
3.设置回调地址

1.使用内网穿透工具进行内网穿透  比如  ngrok

ngrok的使用参考博客:

2.在下载的工程中创建一个pay.jsp文件,用于模拟一个回调接口,这样我们就可以测试支付宝的回调了,代码如下:

<%@ page import="java.util.Enumeration" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
	System.out.print("测试支付宝回调,回调参数如下:");
    Enumeration enu = request.getParameterNames();
    while (enu.hasMoreElements()) {
        String paraName = (String) enu.nextElement();
        System.out.println(paraName + " : " + request.getParameter(paraName));
    }
    
%>
</body>
</html>

3.在工程中的trade_precreate.jsp(二维码支付页面)文件中加入回调接口的地址:

Android 支付宝沙箱6001 支付宝沙箱使用_Android 支付宝沙箱6001_24

4.然后在支付宝沙箱环境管理页面里,配置这个回调地址:

Android 支付宝沙箱6001 支付宝沙箱使用_java_25

完上如上配置后,启动支付宝demo工程的Tomcat服务器,访问index.html

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝沙箱支付_26

选择二维码支付,进入如下页面

Android 支付宝沙箱6001 支付宝沙箱使用_支付宝沙箱支付_27

输入相关信息 点击确定,会显示二维码

用沙箱应用扫描成功后 会自动调用回调地址显示如下信息

测试支付宝回调,回调参数如下:gmt_create : 2019-06-19 21:24:36
charset : utf-8
seller_email : nfgwqa5621@sandbox.com
subject : test
sign : HIuOdbOeXWMb74HzNElDkNvMRDzrWa9rp2Nn0cC5UfkO2E5j9xEL0J3GMUVk68FAdTZ4Be1cYZiAIGSO3kq8cr1WMfce6R3oy9EAVzh05OF5Oo+uyMyepE22dF6smf6rh500IgN3b5L58ZPJSs6n8iHvn3sgXFdwft+zzxi11Fl6ogZrQvOPpnAn8Z1BtxpuKtQlJHSWKlMJqoUhSITziMYKMPkzegs7RvwBBO4VcJQg2sXXgxfkRzjAFv3XDDMhkNHYDID19XBqw87+k19Nx5cll+HoJnnTuQCLdRyjGDCqsX+9xq40V+niJyKoW17geMPxel91PGWfeWUGpBSfOQ==
body : 购买商品2件共15.00元
buyer_id : 2088102178233580
invoice_amount : 1.00
notify_id : 2019061900222212443033581000281742
fund_bill_list : [{"amount":"1.00","fundChannel":"ALIPAYACCOUNT"}]
notify_type : trade_status_sync
trade_status : TRADE_SUCCESS
receipt_amount : 1.00
buyer_pay_amount : 1.00
app_id : 2016092900627007
sign_type : RSA2
seller_id : 2088102177865702
gmt_payment : 2019-06-19 21:24:43
notify_time : 2019-06-19 21:24:44
version : 1.0
out_trade_no : 115
total_amount : 1.00
trade_no : 2019061922001433581000023687
auth_app_id : 2016092900627007
buyer_logon_id : fse***@sandbox.com
point_amount : 0.00

至此,测试成功