当前位置: 首页 > news >正文

SpringBoot集成沙箱支付

前言

支付宝沙箱支付(Alipay Sandbox Payment)是支付宝提供的一个模拟支付环境,用于开发和测试支付宝支付功能的开发者工具。在真实的支付宝环境中进行支付开发和测试可能涉及真实资金和真实用户账户,而沙箱环境则提供了一个安全、隔离的环境,使开发者能够模拟支付过程,测试支付功能,而不会使用真实资金。

一.沙箱支付

1.准备工作

(1)进入支付宝开放平台

支付宝开放平台icon-default.png?t=N7T8https://openhome.alipay.com/

(2)下载安装支付宝开放平台密钥工具

根据自己电脑系统下载对应版本

小程序文档 - 支付宝文档中心

(3)生成密钥

(4)生成支付宝公钥

密钥生成完成后重新回到支付宝开放平台进入控制台

下滑找到沙箱

设置自定义密钥的公钥模式

将我们刚刚在工具中生成的应用公钥填写 

(4).配置沙箱账号

在沙箱账号中可以直接看到我们的商家信息和卖家信息,也可手动对其进行充值

 (5)下载沙箱支付宝

当前版本只支持安卓

登录 - 支付宝欢迎登录支付宝,支付宝-全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验以及转账收款/水电煤缴费/信用卡还款等生活服务应用;为广大为从事电子商务的网站提供支付产品/支付服务的在线订购和技术支持等服务,帮助商家快速接入支付工具,高效、安全、快捷地开展电子商务。icon-default.png?t=N7T8https://open.alipay.com/develop/sandbox/tool/alipayclint

到这里我们的准备工作就完成了,更详细参考快速接入 - 支付宝文档中心 (alipay.com)

二.SpringBoot集成

1.导入依赖

<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-easysdk</artifactId><version>2.0.1</version>
</dependency>

2.配置 AlipayConfig

package com.yu.NewPowerCart.config;import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
import com.yu.NewPowerCart.pojo.Order;
import org.springframework.stereotype.Component;@Component
public class AlipayConfig {private Config aliconfig() {Config config = new Config();//沙箱支付宝地址config.gatewayHost = "openapi-sandbox.dl.alipaydev.com";//协议httpsconfig.protocol = "https";//应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号config.appId = "";//支付宝公钥config.alipayPublicKey = "";//签名方式config.signType = "RSA2";//商户私钥(应用私钥),您的PKCS8格式RSA2私钥config.merchantPrivateKey = "";return config;}public String goAlipay(Order order) {try {// 1. 设置参数(全局只需设置一次)Factory.setOptions(aliconfig());// 2. 发起API调用(subject商品标题、outTradeNo订单编号、totalAmount总金额、returnUrl异步通知地址)AlipayTradePagePayResponse response = Factory.Payment.Page().pay("商城项目收款",order.getOid().toString(),order.getTotal().toString(),//支付成功之后的异步通知(跳出到自己系统的哪个位置)"http://localhost:8080/order/payDone");return response.body;} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}}

 注:代码中空的地方需要填写自己的信息

查看地址:支付宝开放平台 (alipay.com)

 公钥在这里查看,注意:不是应用公钥是支付宝公钥!!!

商户私钥(应用私钥) 在我们的密钥生成工具中

3.编写对应Controller控制支付及跳转

@RequestMapping("/pay")@ResponseBodypublic String pay(User user, String oid){//根据订单id获取订单Order order = orderService.getById(oid);//调用支付宝的支付功能String body = new AlipayConfig().goAlipay(order);System.out.println(body);return body;}@RequestMapping("/payDone")public String payDone(@RequestParam Map<String,String> ms) throws Exception {//验签Boolean f = Factory.Payment.Common().verifyNotify(ms);if(!f){throw new BusinessException(JsonResponseStatus.UN_KNOWN);}String oid = ms.get("out_trade_no");//调用支付宝的支付功能orderService.update(new UpdateWrapper<Order>().eq("oid",oid).set("status",1).set("pay_date",new Date()));return "ok";}

 

http://www.lryc.cn/news/273817.html

相关文章:

  • BUUCTF--gyctf_2020_borrowstack1
  • 图像分割-Grabcut法(C#)
  • C# WPF上位机开发(Web API联调)
  • c语言:用结构体求平均分|练习题
  • echarts 仪表盘进度条 相关配置
  • Simpy:Python之离散时间序列仿真
  • 连接GaussDB(DWS)报错:Invalid or unsupported by client SCRAM mechanisms
  • 汽车标定技术(十四)--标定数据固化方法简介
  • 2024年关键技术发展战略趋势前瞻
  • Java程序设计——GUI设计
  • three.js Raycaster(鼠标点击选中模型)
  • Springboot整合RocketMQ 基本消息处理
  • 红外传感器深入解析
  • 18、Kubernetes核心技术 - InitContainer(初始化容器)
  • electron进程通信之预加载脚本和渲染进程对主进程通信
  • 如何有效使用 .gitignore 文件
  • 大数据毕设分享 flink大数据淘宝用户行为数据实时分析与可视化
  • 大语言模型训练数据集
  • python的课后练习总结4(while循环)
  • Flink Connector 开发
  • Golang leetcode707 设计链表 (链表大成)
  • Django和Vue项目运行过程中遇到的问题及解决办法
  • Single-Image Crowd Counting via Multi-Column Convolutional Neural Network
  • el-cascader隐藏某一级的勾选框及vue报错Error in callback for watcher “options“的解决办法
  • 2024美赛数学建模思路A题B题C题D题E题F题思路汇总 选题分析
  • C++ 常用设计模式
  • 高性价比的高速吹风机/高速风筒解决方案,基于普冉单片机开发
  • toRefs的用法
  • MySQL基础篇(三)约束
  • Java进阶 1-2 枚举