ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2021-07-10 java实现支付宝的H5支付和单笔支付退款

2021-07-10 16:02:46  阅读:186  来源: 互联网

标签:alipay 10 java String 支付 import com response out


逻辑参数属性什么的了不多说,自己去支付宝开发文档上看,博主这边只使用了那些必需的参数,其他要加的自己后续加上。上代码

首先导入支付宝

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

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>23.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.53</version>
        </dependency>

接着实现方法

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradeRefundRequest;
import com.alipay.api.request.AlipayTradeWapPayRequest;
import com.alipay.api.response.AlipayTradeRefundResponse;
import com.alipay.api.response.AlipayTradeWapPayResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class H5PayDto {

    @ResponseBody
    @GetMapping("/zfbpay")
    public String pay() throws AlipayApiException {
      String appid ="APPID";
      String privateKey ="开发者私钥";
      String Ali_publicKey ="支付宝公钥";     
      //这里的参数属性根据自己的实际配置来填
      AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",appid,privateKey,"json","utf-8",Ali_publicKey,"RSA");
      AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
      request.setBizContent("{"  +
              "\"body\":\"Iphone6 16G\"," +
              "\"subject\":\"标题\"," +
              "\"out_trade_no\":\"2021070922001473791438611504\"," +
              "\"total_amount\":1.00," +
              "\"quit_url\":\"回调地址\"," +
              "\"product_code\":\"QUICK_WAP_PAY\"}");  //默认

      AlipayTradeWapPayResponse response = alipayClient.pageExecute(request);
       System.out.println(response.getBody());
      if(response.isSuccess()){
          System.out.println("调用成功");
      } else {
          System.out.println("调用失败");
      }
      return response.getBody();
  }

    @ResponseBody
    @GetMapping("/Zfbrefund")
     public String Zfbrefund() throws AlipayApiException {
         String appid ="APPID";
         String privateKey ="开发者私钥";
         String Ali_publicKey ="支付宝公钥";
         AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",appid,privateKey,"json","utf-8",Ali_publicKey,"RSA");
         AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
         request.setBizContent("{" +
                 "\"out_trade_no\":\"2021070922001473791438611503\"," +  //订单日期一定要记得
             //    "\"trade_no\":\"2014112611001004680073956707\"," +
                 "\"refund_amount\":1.00," +
                 "\"refund_reason\":\"正常退款\" }");
         AlipayTradeRefundResponse response = alipayClient.execute(request);
         System.out.println(response.getMsg()+"  ----------  "+response.getBody()+"-------- "+response.getSubMsg());
         if(response.isSuccess()){
             System.out.println("调用成功");
         } else {
             System.out.println("调用失败");
         }
        return "ok";
     }

}

其他一些小问题列下 先是密钥私钥这些。
在这里插入图片描述
然后在我们请求返回的支付宝信息中,如果直接打开,他会提示你签名错误,公钥和私钥不匹配,这个是有个原因在于你直接使用浏览器打开,需要将这个信息写入html中,从html中打开。如何还提示参数或者啥的问题,再可以一个个的去排除。

项目地址:添加链接描述

标签:alipay,10,java,String,支付,import,com,response,out
来源: https://blog.csdn.net/qq_42729674/article/details/118635991

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有