java接入支付宝支付接口沙箱环境测试(傻瓜式,有手就行版本)

一、开始前说明

1、这就是测试一个虚拟环境的支付,只调用了一个简单的API,并不复杂也不高大上,但是很有意思
2、简单高效,参考官方
3、Windows环境,手机APP支付,服务端接口
4、适用任何版本

一、下载工具

(1)工具一:支付宝开放平台开发助手下载
到支付宝开放平台官网,选择网络&移动应用,点击了解更多
在这里插入图片描述
在这里插入图片描述
电脑上安装,图标是这样的
在这里插入图片描述

(2)工具二:客户端调试
手机上安装
在这里插入图片描述
(3)工具三:进入沙箱环境,下载安装沙箱支付宝,就上面那个
安装到手机
在这里插入图片描述
在这里插入图片描述

二、准备一个基本的Maven项目

(1)导入一个依赖包,这里有历史到现在的版本
(2)找到交易接口
在这里插入图片描述
(3)项目里随便创建一个类,里面创建一个方法,把接口复制过来
在这里插入图片描述
(4)这里对几个参数进行说明,你也可以看官网的.

复制接口过来发现代码有点不对,你没有这几个参数,那么我们找一下这几个参数。
先贴出我的参数:
在这里插入图片描述
AppID、网关在这(因为是测试环境所以需要加上dev后缀)
在这里插入图片描述
秘钥和公钥的获取,打开开发助手,生成秘钥,复制公钥
在这里插入图片描述
回到沙箱应用,点击设置/查看
在这里插入图片描述
我这里是已经加签了,你加一下签就有了,复制这个公钥就是java中的参数,只有这三个参数需要变更,其他的和我这一样就行了。
在这里插入图片描述

public class AliPayController {
    /**
     * APP_ID
     */
    private final static String APP_ID = "20210001364680516";
    /**
     * 私钥
     */
    private final static String APP_PRIVATE_KEY = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCAZDxQ69tcpfbBd5fvKrnAgn9wrv2yjsSqKl+QaiVKjaJzzDTMZQ93Qag8XPvET96Y8u5blpbIhE5gOefcel/KUp8yn1B4aY0103nUpajGqandkJT0STOMPAVfXz0TtwMoxwC9JgeEYwDZSg38Tu9GrT9Wj5lk3Nj1zZhHuCb/A75EHVJa3OZI0601E3h/3bh+BfAti1wyCHndcZRXgfqKnEObJQIykeHbvUrZFKtCmKgnCdpDgODnuKptHSExnoQR+hfDVWlFO1M7REo4NbF5WvxNq//a+zS1/dyScLRlnSlUpW1k06EAame16qkK9iI3/ASX/JgnfLzdEA1dIRGnAgMBAAECggEAV/zZfRd1+LNgPMvp2qTsMar9DUtPX7wJuRha74xezA3ug+8xS9YCWFctpViPzcRyp1zszuWPphFN6RIl/On8lZozsayOqEal2Hp6Jqn01VjWqZn5CsTTx8omYGrTX5xvVNW0guv6ANcccM0Yco3h2wzFuFum4wGaygaesi86YzHNYPgCk/OzIMEeURQQCNa/YvxJepu2atA9NnnaDwnCF+xXjmhWA8EmtTBlw0DFK1g/vY11kZaJlOstIKHubBwLUVXj4EZ6n/r2oVf1wagN0k9rDbmSK4jpkgLCpDjof2QKuk4KNoLvJ29tHPPdJobAloore6WKflGVwPxHqKCQKBgQDAuQ2xZaepom4mBd+3jpxE3Ntb6E89e2zbNmBAyZUkXRG1HOJ2xlrgrjgOTfuYKDVQBURw5yCi8zoJ1wJSpStABPjpWe5H0gatwrvcqQ4B84ldDqr+RBUW6Yn9B2tfXfRoJ25OfihcQPtIP6eSm/glv3Zj9h1smWtg2RyDo11WtQKBgQCqi/AW15NYivYaz/Yrx/X/49WuOqXM1XErjqQkYbsHi13o58RiBFo+nQf9aEJBDvYMp81rwmeXMFhldGt0hkz+LzMFV49YdLmoTpmaL9xLMXB8Na+DUcTBr7FUuFmG7wy7c0d4eq1LBAL9jTSak58qtixUMKtkTRIELasEb5cEawKBgQCQ0z+P/OVG29JMboOU6+1Q7mtFoMjTWgoOncktRo72OZ5R7Pfd6+dlCmcDkOStjiGqFZs+AOIMshz+Qf3z3z0mKdZnfXZLsG/maf1EsCHfo4SpUpl64+y5QBy68bVlgDRnhKInCDUKRqbOv08NJHoQ29V6/vtTneMMb3s3DS/aNQKBgH16PAjyTwyEIRIVE8+ebVX58QshRz9vgrZDWm0SIqMoXM2xSAG9phAPRQOio6xuL4WcKD0yaTkJbuAmSbEP5rHVVDqH84VnS/mS6txQfkosc9BPR3TcwmCmvVfR0ry+QKXh6SGxULKynuih7aQVHLQ2GGNQ86j2M10zpHG9EGVFAoGAYhI944Ufq48cQdgbtyMWcMyDq0vzywjfWIE9kEwp5unjz9zGPEbD+sbYyKT0pjD2NzsJOoVtGLrW3e1/A55qT2bN41ko+7qvCk9p3SRyU9Q4RUlmT70JitHYxu5EeUrpK7skt6/7rHSGfPeadedFDA05Rn9Y/6HPnfoMe6c8opM=";
    /**
     * 编码格式
     */
    private final static String CHARSET = "UTF-8";
    /**
     * 公钥
     */
    private final static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArZAotoX2PwyDlz5CX6p5sViDzUdUY5J6X80mmhD+6rgY9FZaBFgvgT9c8sL0/qhWgu64VXagessMICQ2glcEDMWeikwfyKJ7nJ69M7xql2xVkewPTXFcEmg48X11x55QWUbKXbTIsDokXw4Oi7UOggrAhx/QLM7GegbfNIdHoZNioK8TBxASKR+304+A7Txbh6udTnuwtrFcS27L1LgBRuJ7talprVPx1IBLP/FcXN++NAhlbe81F4sSiB9dsoijJffIaKC6+83lYYiiadm6vPWol4yjgH7Gj0gcvVRZn/WolN7BSQ1Tp/ipCb/cVYeLgKawf0B48dcZUm5eMqZvwIDAQAB";
    /**
     * 网关
     */
    private final static String SERVER_URL = "https://openapi.alipaydev.com/gateway.do";
    /**
     * 数据格式
     */
    private final static String FORMAT = "json";
    /**
     * 签名类型
     */
    private final static String SIGN_TYPE = "RSA2";

    public String pay(){
        //实例化客户端
        AlipayClient alipayClient = new DefaultAlipayClient(SERVER_URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);
        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
        model.setBody("我是测试数据");
        model.setSubject("App支付测试Java");
        model.setOutTradeNo("1232233");
        model.setTimeoutExpress("30m");
        model.setTotalAmount("0.01");
        model.setProductCode("QUICK_MSECURITY_PAY");
        request.setBizModel(model);
        request.setNotifyUrl("商户外网可以访问的异步地址");
        try {
            //这里和普通的接口调用不同,使用的是sdkExecute
            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
            System.out.println("支付 = " + response.getBody());
            return response.getBody();//就是orderString 可以直接给客户端请求,无需再做处理。
        } catch (
                AlipayApiException e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
        String pay = new AliPayController().pay();
    }
 }

程序中的outTradeNo这个参数随便写一个订单号就行了,但是每次支付成功了下次需要重写一个不一样的订单号,不然会提示订单已支付,请勿重复提交。

三、准备支付

(1)启动main方法获取控制台打印的这串代码,你如果使用的是IDEA,控制台不要换行,避免这串代码出现不必要的空格。
在这里插入图片描述

(2)复制这串代码到你手机上下载的客户端调试软件,选择沙箱环境,粘贴代码,点击支付,密码是六个1,支付成功以后,就是测试成功了!
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值