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

海康域名网站上海十大知名装修公司

海康域名网站,上海十大知名装修公司,wordpress验证,wordpress插件登录公众号下面为你详细介绍使用 Spring Boot 对接支付宝支付&#xff0c;实现支付与退款功能的具体步骤和代码示例。 添加依赖 在 pom.xml 里添加支付宝 SDK 依赖&#xff1a; <dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframewo…

下面为你详细介绍使用 Spring Boot 对接支付宝支付,实现支付与退款功能的具体步骤和代码示例。

  1. 添加依赖
    在 pom.xml 里添加支付宝 SDK 依赖:
<dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 支付宝 SDK --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.10.103.ALL</version></dependency>
</dependencies>
  1. 配置支付宝信息
    在 application.yml 中配置支付宝相关信息:
alipay:app-id: your_app_idmerchant-private-key: your_merchant_private_keyalipay-public-key: your_alipay_public_keysign-type: RSA2gateway-url: https://openapi.alipay.com/gateway.donotify-url: your_notify_url
  1. 配置支付宝客户端
    创建配置类来初始化支付宝客户端:
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class AlipayConfig {@Value("${alipay.app-id}")private String appId;@Value("${alipay.merchant-private-key}")private String merchantPrivateKey;@Value("${alipay.alipay-public-key}")private String alipayPublicKey;@Value("${alipay.sign-type}")private String signType;@Value("${alipay.gateway-url}")private String gatewayUrl;@Beanpublic AlipayClient alipayClient() {return new DefaultAlipayClient(gatewayUrl, appId, merchantPrivateKey, "json", "UTF-8", alipayPublicKey, signType);}
}
  1. 实现支付功能
    创建服务类来处理支付业务逻辑:
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;@Service
public class AlipayService {@Autowiredprivate AlipayClient alipayClient;@Value("${alipay.notify-url}")private String notifyUrl;public String pay(String outTradeNo, String totalAmount, String subject, String body) throws AlipayApiException {AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();request.setReturnUrl(null);request.setNotifyUrl(notifyUrl);request.setBizContent("{\"out_trade_no\":\"" + outTradeNo + "\","+ "\"total_amount\":\"" + totalAmount + "\","+ "\"subject\":\"" + subject + "\","+ "\"body\":\"" + body + "\","+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");return alipayClient.pageExecute(request).getBody();}
}
  1. 实现退款功能
    在服务类中添加退款方法:
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.request.AlipayTradeRefundRequest;
import com.alipay.api.response.AlipayTradeRefundResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class AlipayService {@Autowiredprivate AlipayClient alipayClient;public AlipayTradeRefundResponse refund(String outTradeNo, String refundAmount) throws AlipayApiException {AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();request.setBizContent("{\"out_trade_no\":\"" + outTradeNo + "\","+ "\"refund_amount\":\"" + refundAmount + "\"}");return alipayClient.execute(request);}
}
  1. 创建控制器
    创建控制器来处理支付和退款请求:
import com.alipay.api.AlipayApiException;
import com.alipay.api.response.AlipayTradeRefundResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@RestController
@RequestMapping("/alipay")
public class AlipayController {@Autowiredprivate AlipayService alipayService;@GetMapping("/pay")public void pay(@RequestParam String outTradeNo, @RequestParam String totalAmount, @RequestParam String subject, @RequestParam String body, HttpServletResponse response) throws AlipayApiException, IOException {String form = alipayService.pay(outTradeNo, totalAmount, subject, body);response.setContentType("text/html;charset=" + "UTF-8");response.getWriter().write(form);response.getWriter().flush();response.getWriter().close();}@GetMapping("/refund")public AlipayTradeRefundResponse refund(@RequestParam String outTradeNo, @RequestParam String refundAmount) throws AlipayApiException {return alipayService.refund(outTradeNo, refundAmount);}
}

代码解释
依赖添加:引入 Spring Boot Web 和支付宝 SDK 依赖,以支持 Web 开发和支付宝支付功能。
配置信息:在 application.yml 中配置支付宝所需的关键信息,如应用 ID、商户私钥、支付宝公钥等。
支付宝客户端配置:创建 AlipayConfig 类初始化支付宝客户端。
支付服务类:AlipayService 类包含支付和退款的业务逻辑,调用支付宝客户端的方法完成相应操作。
控制器:AlipayController 处理前端的支付和退款请求,调用服务类的方法完成支付和退款操作。
注意事项
要保证私钥和公钥的正确性与安全性。
处理支付和退款回调时,要对签名进行验证,防止数据被篡改。
严格按照支付宝的开发文档进行开发,及时处理可能出现的异常情况。

http://www.dtcms.com/a/408317.html

相关文章:

  • 黄圃网站建设做网站找模版好吗
  • 做网站图片路径做缓存吗网站建设包括哪些
  • 腾讯风铃怎么做网站怎么建设只要注册就赚钱的网站
  • 滨州做网站的杭州网站优化效果
  • 投资网站建设公司多少钱自贡网站推广
  • 上海建设网站浦东新区污水管网工程域名注册服务商网站
  • 荥阳市网站建设wordpress新建的页面不存在
  • 浦口区教育局网站集约化建设优化推广服务商
  • sched_ext调度器task stall分析
  • 公司网站销售怎么做的珠宝首饰网站建设规划书
  • 湖州外贸网站建设信誉好的盐城网站开发
  • 小白怎么做网站赚钱自己做网站怎么做的
  • 网站里弹窗怎么做简历模板免费下载word 文档
  • 网站技术培训班有哪些种类现货平台在中国合法吗
  • 找it工作有什么好的招聘网站做网站销售需要注意的
  • 天安节能科技园公司做网站有ip怎么用自己的主机做网站
  • 企业网站要怎么做企业员工管理系统
  • 外贸建网站哪家好网站怎么做json数据
  • 基于51单片机的气压检测及远程报警系统
  • 论前端对网站建设的重要性搜索引擎营销案例
  • 企业局域网站建设模板宁波seo外包服务商
  • 模板网站源码书店网站建设的设计报告
  • K8s中的键值对
  • 网站备案的核验单网站备案不能访问
  • 四川平昌县建设局网站电商直播系统
  • 传奇网站发布网家具行业建设网站
  • 计算机软件工程毕设项目——基于协同过滤算法的电影推荐系统(Python-Django-Vue-Mysql,基于用户的协同过滤余弦相似度计算推荐,B/S 架构)
  • 一个超链接 多个网站深圳十大品牌策划公司
  • 支持企业网站发布要怎么做电商类网站有哪些
  • 蓝色主题的网站模板深圳网站建设找智恒网络