700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java接入支付宝支付接口沙箱环境测试(傻瓜式 有手就行版本)

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

时间:2023-03-04 14:39:30

相关推荐

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 = "0001364680516";/*** 私钥*/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 = "/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.payAlipayTradeAppPayRequest 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 {//这里和普通的接口调用不同,使用的是sdkExecuteAlipayTradeAppPayResponse 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,支付成功以后,就是测试成功了!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。