700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java实现支付宝网页扫码支付

java实现支付宝网页扫码支付

时间:2021-03-08 17:45:17

相关推荐

java实现支付宝网页扫码支付

java实现支付宝网页扫码支付

接口文档

https://docs./270

1.蚂蚁金服注册

1.注册自由开发者身份

2.打开开发中心![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UF8prDqn-1604249305004)(image\1566459805321.png)]

2.选择沙箱操作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UwXLO2Jo-1604249305006)(image\156646043.png)]

3.点击设置公钥

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6I83QCDl-1604249305008)(image\1566460270289.png)]

4.查看密钥生成方法,选择版本下载密钥生成器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yxojqKgV-1604249305010)(image\1566460341470.png)]

5.解压并按说明文档操作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EdyhhRo9-1604249305011)(image\1566460386012.png)]

6.如图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sime20ES-1604249305013)(image\1566460523406.png)]

7.设置密钥

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hfNNp7Oq-1604249305014)(image\1566460621536.png)]

将生成的公钥复制粘贴到设置公钥处[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1OW1qIpx-1604249305014)(image\1566460661502.png)]

8.下载沙箱版支付宝,登陆买家账号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rVzOedNC-1604249305015)(image\1566460797509.png)]

2.代码环节

新建springcloud工程

1.导入依赖

<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>3.3.49.ALL</version></dependency>

2.创建配置信息类,其中配置信息为在沙箱环境中配置的密钥等信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9GSSGxcp-1604249305016)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566462078852.png)]

package com.alipay.config;import java.io.FileWriter;import java.io.IOException;/* **类名:AlipayConfig*功能:基础配置类*详细:设置帐户有关信息及返回路径*修改日期:-04-05*说明:*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。*/public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号public static String app_id = "101400681640";// 商户私钥,您的PKCS8格式RSA2私钥public static String merchant_private_key = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCPLoHDYEr++A495u5HgDq8K5eEu45ctoAci/veJEwI2q+UveqUEB9ne6hwUtx85iJM8c7CfGmwQSwH+lctQE3OzenCBr/jRvmD+4CAE7aO09Bpc054Jftk5hGNHdESgj1PMSIIDkDdnJMjhEsi5ogY675gcTA6vPsDRGNgCfa/L+qLnnafkRcqKZngK/NQ56iOdFWFE7eJrJgrOaB9FNJg4wV0Dcvkp8ya9EAbas3dc4gLVzt7xYZzY5ALvnJTbfOCgD22sjf0+ZKGNH1TrzxNX6RiYE3q+tEnj/3G4v1kpY1nwmwCjKuBcFk2rGEZpSjqKDLUtNz0o+odlLrS8xVVAgMBAAECggEAW/tulYso4r+MtqvCa+Cu2u/OOREclecQSkaLmdwLlKyYm5+eMVxiMGK6hN5Wk05svq2hPEQcyYQ0uzNSCdoDolWaVHFtmJ6h8O4DUURYxUzB2NygjoMoC1vZ7qQ3CgLtTBCuYip19Wh/BhQZCOS8jfX0qZRNfY6mWyT2Cl6cS5mIWCmwbo4roGmQ2OxwOkDLifCc2RF5eCvQpzOs/jpP4UoXmJt1rlRBMGneegwS3FVzanqlh7ssmOShFU5gsJcDjv2eJVmiuQ97ztb0wdT3ZWn9l/9rFR+SPyBadubGomKeOcoEbJYmZtsMr7/YPsHNsdtiYirSqvordXz/ZcJeQQKBgQD4e4FeDM+gjwtTcmJ5Bf7+1YFzhK6oqWGXUcZ8wnE2jC2luNi/JvwheCBt905KjTVsXndQgXx8ZtuLD8q35pkEuE13L3lAMrzUv48LcwAP6LXY9Nb2iLIood0fHd/Ios1uEJtkzugPqxZF7ESx79eeHM9S4OJFw79rfnhdDzT27QKBgQCTg3KlBLyPs9vImLtNnwtPjofNCbt+rID+LhNlMSbWN87k9loEbJHUVVAvdvLIgbk9Ok5Z8aiu3aS4LRLJjCXjI76PAfO8MLGgg8ff+mHMS439FMFlj270+U8j7veFsYEkxh6ciNCTon0gP9V8RB5vHR3LpXl4WiAOZwWSPyQjCQKBgQCmgbxy1YrcQH6KcH/kMUxqX4/bZPHVO4uV5spnF7TdpJmCD5fOn8UceG7iwXHJK069S6AQZnSQuCwtx2tESFYJf6cJUtqhVl6LAcJNHcbQ4lPZClhx46/e4nhWPaKTw+R8+MvohW2j8jV+rZBq3BlUbmHPW7rEnSNMWPc3BNWtEQKBgE7Odrz6HtKWv+AW2FnLkftapepAPM6b0f35F5uD+r+O6RUhF04twmqxeTkiTuoXg6LWN22N0RQ6jPln+xV5rfP+8Jrt7Ayp5vtd67YYyY6e/qgqInfjfN+bIVCNJediwR+oSEpQPT3iHP7Rm3fb3HZ4E6bsLEzDuUR4fV14JhIhAoGBALUg0eY0ODMfCtvmg5Zp4fEW5GJOM2aQmxiZj0RMLByfgKsYWD+mn/eEMDgaT6KGc/MsUQo//402ZOCM4TXNrPaKYyNkyqLfyhl3KibooPNB5DPGsj0ff4MQxfryPlT24sDBNZmMSUzMVqYVdRZSM5Ersdmu+vZ7bTZio3Q3Ym96";// 支付宝公钥,查看地址:/platform/keyManage.htm 对应APPID下的支付宝公钥。public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlz9GS8eINNVDD0t4ervFT+ifYaq1gPPpNHJXOpTeEEeNPYa6WO5ahvjtcydzvZot3nuWwlj4qBIgQLxbkShHoTzXqsvS0fkVmhtekcdcUp9zIGhf/woDeaDVsXXJ/NrCZa6DbQLMv5kF2ojI2Xa+Akon/uyn77SI1xOrWLOicLz+xje7s6VQ8JGh6a+JYc6Q7nprDLIKj1588PENsFrKFmbQS8lsqvr9LycKL1N1NpoUv6EWaelblCITAGCI4N6WBjLqwwbbZzpjNHxO54dAJndTyLgFt8KXKGMi+c0LOF6in265x7xYCL+R9v4X7RXuhHdFS/ouaCnMiAZIl747qwIDAQAB";// 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问//public static String notify_url = "http://localhost:8080/pay/notify_url.jsp";// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问//public static String return_url = "http://localhost:8080/pay/return_url.jsp";// 签名方式public static String sign_type = "RSA2";// 字符编码格式public static String charset = "utf-8";// 支付宝网关public static String gatewayUrl = "/gateway.do";// 支付宝网关public static String log_path = "C:\\";//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑/** * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)* @param sWord 要写入日志里的文本内容*/public static void logResult(String sWord) {FileWriter writer = null;try {writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");writer.write(sWord);} catch (Exception e) {e.printStackTrace();} finally {if (writer != null) {try {writer.close();} catch (IOException e) {e.printStackTrace();}}}}}

3.创建请求方法,方法请求接口alipay.trade.page.pay ,参数说明文档https://docs./api_1/alipay.trade.page.pay

@Componentpublic class AlipayUtils {public String pay() throws AlipayApiException {AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl,AlipayConfig.app_id,AlipayConfig.merchant_private_key,"json","utf-8",AlipayConfig.alipay_public_key,"RSA2");AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();//创建API对应的requestalipayRequest.setBizContent("{" +" \"out_trade_no\":\"0320013333\"," + " \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +" \"total_amount\":88.88," + " \"subject\":\"Iphone6 16G\"," +" \"body\":\"Iphone6 16G\"," +" \"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d010101111\"," +" \"extend_params\":{" +" \"sys_service_provider_id\":\"2088511833207846\"" +" }"+" }");String form="";form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单 System.out.println(response.getBody());return form;}}

4.创建controler层

@RestControllerpublic class PayController {@Autowiredprivate AlipayUtils alipayUtils;@RequestMapping("/pay")public String pay(){String pay="";try {pay = alipayUtils.pay();} catch (AlipayApiException e) {e.printStackTrace();}System.out.println(pay);return pay;}}

启动springboot启动类,访问localhost:8080/pay,使用沙箱钱包扫码支付,对比支付完成前后金额

} catch (AlipayApiException e) {e.printStackTrace();}System.out.println(pay);return pay;}

}

启动springboot启动类,访问localhost:8080/pay,使用沙箱钱包扫码支付,对比支付完成前后金额若金额不足,前往沙箱充值,想充多少充多少

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