springboot项目实现App支付宝支付

springboot项目实现App支付宝支付

1.前戏

1.1、请先在支付宝开发者平台创建app应用并获取APPID,配置密钥等。
1.2、详细可参照蚂蚁金服官方文档:https://open.alipay.com

2.maven在pom.xml中引入对应的jar依赖
<!--支付宝-->
<dependency>
	<groupId>com.alipay.sdk</groupId>
	<artifactId>alipay-sdk-java</artifactId>
	<version>3.7.26.ALL</version>
 </dependency>
3.application.yml文件的配置如下
#支付宝支付配置
alipayconfig:
  #商户APPID
  appId: 122334444
  #私钥 pkcs8格式的
  rsaPrivateKey: qwertyuiop
  #请求网关地址
  url: https://openapi.alipay.com/gateway.do
  #编码
  charset: UTF-8
  #返回格式
  format: JSON
  #支付宝公钥
  alipayPublicKey: asdfghjkl
  #签名方式
  signType: RSA2
4.配置文件对应的AlipayConfig,若没集成lombok请自行生成get/set方法
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import lombok.Data;
/**
 * 支付包支付配置类
 * @author: zengXianKang
 */
@Data
@Component
@ConfigurationProperties(prefix = "alipayconfig")
public class AlipayConfig {
    //appId
    private String appId;
    //私钥
    private String rsaPrivateKey;
    //请求网关地址
    private String url;
    //编码格式
    private String charset;
    //返回格式
    private String format;
    //支付宝公钥
    private String alipayPublicKey;
    //签名方式
    private String signType;
 }    
4.1新建一个AliPayVO
 import lombok.Data;
 
/** 
 * @Description: AliPayVO
 * @Param: 
 * @return: 
 * @Author: zengXianKang
 * @Date: 2019/7/28 
 */
@Data
public class AliPayVO {
    //商户订单号
    private String outTradeNo;
    //交易状态
    private String tradeStatus;
    //交易流水号
    private String tradeNo;
    //资金总额
    private String totalAmount;
    //卖家支付宝账户
    private String sellerId;
    //买家支付宝账户
    private String buyerLogoinId;
    //签名方式
    private String signType;
    //签名
    private String sign;
}
5.请求支付宝支付

在很多电商的项目中都有类似保存订单,充值等一系列支付宝支付场景;我们需要发起支付返回给前端支付sdk;该篇博文为支付宝支付的博文,稍后我会更新微信支付的博文

5.1发起支付请求
    /** 
     * @Description: 支付请求
     * @Param: [payType, outTradeNo, totalAmount]
     * @return: java.util.Map<java.lang.String,java.lang.String>
     * @Author: zengXianKang
     * @Date: 2019/7/28 
     */
    @Override
    public Map<String, String> payRequest(String payType, String outTradeNo, BigDecimal totalAmount) throws Exception {
        Map<String, String> map = new HashMap<String, String>();
        switch (PayTypeEnum.valueOf(payType)) {
            case ALIPAY://支付宝
                //实例化客户端
                AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig.getUrl(), alipayConfig.getAppId(),
                        alipayConfig.getRsaPrivateKey(), alipayConfig.getFormat(), alipayConfig.getCharset(),
                 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值