2025年支付宝支付

支付宝支付yml 文件 alipay gatewayUrl https openapi alipaydev com gateway do appid 37579 privateKey MIIEvQIBADAN WZIfrCR6HKV

大家好,我是讯享网,很高兴认识大家。

yml文件

alipay:
    gatewayUrl: https://openapi.alipaydev.com/gateway.do
    appid: 2016100100637579
    privateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCEbvTDkcm/WZIfrCR6HKV+j4rXqGFeSud2ta1Cj7L34AO+YZ+ZEhFlj8BqhKL7209YeTsQf20fKG0EiIYtdV3e0Vzd/+8PxGgt3HL4Kv/Ilc2hPsJdaiVZxTuWxyOZkuizz2N5W/tTlTGM+h8dfAy2Z2PIT4Bba62LkB5kK42w//3eQs7BPRlpUmTxSznpYJcF70/P1HsBxHniE7APK/ZgY1TPxta+38gfcLl1F1PzmfB333lYZXDKNRHZVWQfOsBIKaSRablE+gtm17GkAIp0SEse3HdVBRvH5KtQXRovmoX7ra0PW8W5E6rAFF3W99a6N1/PhQ7eiPbHpY/MtB/1AgMBAAECggEAQ5RnXMExhW7MzVLHznR90yamwEQRY8+va/lrr7KqrijnYChrC+6XaA9CLlj+3qzcQZajmFieM68qaozMg7gHreOCk1q+AHrGetiq5o7ytcYUB7uB7a9z3epy7Q8z0HOSQeeLqGtSxiU1Au7EIASkbBQ4bAh9xKkfB0AE8jLzfCV50LpLEJH7pLabSvf+ldo6jqoWudFeOosqjzdqs1GuWKrspYp9NLIHRthVpT5iEpdcs5WtZjCB0G6eugJQA+iWnSS47Lsz92v3i/EEX2oVyyoSO6zG24tpKOfjFLMHuMK7pbQ7u/x+rEe6ftWNE2pnYDhLWTPFdfHwMA0qSvgtxQKBgQC7ccBVf+rLnjXbe3lBXnVS9bxFPbMJkPvbES0mHoJ6/v+wTtOkf+tuyWmxRoXxfL/rJ6hNSiDXBA/BsS/WdgJRfKkTjPnDdBPOTe/pgAs0UqHnKm2AlNsD807LzpOP+C+z3uCLK9eorYtrKv+K2/E9BS5ScYkpqr1hthRGxBUVKwKBgQC03pS1gdvf5UInFXOXJNni5NR0lUS1YLKobXMJNBM4ca016y624xw3KIPRJ5gaZussRtnMfINqg33weXan7EmNeEbHnZv2YLAcmHvgimwVgfDgXOIiV6S9pYfrH1xdG7YEvup4TWFi29MHrMfBkuLQ1RauXAITSVcqtnMVm4tPXwKBgB1/G/4YYBFktyLvvjgMLjg81UCsIeVqfEeP32P1PyEtyXysGt/zBVBsv4YXC/LhZ64Qkop/FMXhLL2VLWr5LQo3rL+X2qHoPUmkuBEthhXYvwOKiKrIQeLeEOg+gO7SrH8tvTrV8s2BioLohibgblLtHobeYxqRWcOnqcVpj7AoGBAIdL+PHNsixJ0rJp2Y22g0a25jZPcpY7P2m+dc7spXQTlP5AbzFfsjuQkwpiE+WsFz+HwGS2v5dtxUedlKUIm/y3fDrWK1Sh/xtk9UWCRlfQW995m68U4Kb8rC+1xeHgWMg0CDD1sWPCDJoxJTwoJIMS42SKbwL+WbYZxPzk3dEBAoGAfOvJWI7JHHEfI7k+Tk2rCUEO0eHE5LPXLub5N6KtYYmyAhAcGTCbgU1Sj6ROXab9G6jAdzktSI1QFy003uNHTnbwbvHwTkottDsE+3h9LMFdmS1qrkLvP50kZlpqgqIyY1W6hvIRUThkPzrF4Q69+tuiHrlN5LBukHXIWI0wsW0=
    alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhG70w5HJv1mSH6wkehylfo+K16hhXkrndrWtQo+y9+ADvmGfmRIRZY/AaoSi+9tPWHk7EH9tHyhtBIiGLXVd3tFc3f/vD8RoLdxy+Cr/yJXNoT7CXWolWcU7lscjmZLos89jeVv7U5UxjPofHXwMtmdjyE+AW2uti5AeZCuNsP/93kLOwT0ZaVJk8Us56WCXBe9Pz9R7AcR54hOwDyv2YGNUz8bWvt/IH3C5dRdT85nwd995WGVwyjUR2VVkHzrASCmkkWm5RPoLZtexpACKdEhLHtx3VQUbx+SrUF0aL5qF+62tD1vFuROqwBRd1vfWujdfz4UO3oj2x6WPzLQf9QIDAQAB
    returnUrl: https://www.taobao.com/   #支付成功跳转的商家url
    notifyUrl: https://www.baidu.com/       #异常跳转页面
spring:
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML5
    encoding: UTF-8



讯享网

pom文件

讯享网<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.freesky</groupId> <artifactId>spring-boot-aplipay</artifactId> <version>0.0.1-SNAPSHOT</version> <name>spring-boot-aplipay</name> <description>Demo project for Spring Boot plipay</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>3.4.27.ALL</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.8.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

 

config配置

 

package com.freesky.config; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; / * @author: wll * @modifiedBy: * @date: Create In 11:04 2019/5/17 * @description: */ @Configuration @EnableConfigurationProperties(AlipayProperties.class) public class AlipayConfig{ @Autowired private AlipayProperties properties; / * alipay-sdk-java * @return */ @Bean public AlipayClient alipayClient(){ return new DefaultAlipayClient(properties.getGatewayUrl(), properties.getAppid(), properties.getPrivateKey(), properties.getFormate(), properties.getCharset(), properties.getAlipayPublicKey(), properties.getSignType()); } } 

  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------


讯享网

讯享网package com.freesky.config; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.boot.context.properties.ConfigurationProperties; import javax.annotation.PostConstruct; import java.util.logging.Logger; / * 支付宝支付的参数配置 * * @author wll */ @Data @Slf4j @ConfigurationProperties(prefix = "alipay") public class AlipayProperties { / 支付宝gatewayUrl */ private String gatewayUrl; / 商户应用id */ private String appid; / RSA私钥,用于对商户请求报文加签 */ private String privateKey; / 支付宝RSA公钥,用于验签支付宝应答 */ private String alipayPublicKey; / 签名类型 */ private String signType = "RSA2"; / 格式 */ private String formate = "json"; / 编码 */ private String charset = "UTF-8"; / 同步地址 */ private String returnUrl; / 异步地址 */ private String notifyUrl; / 最大查询次数 */ private static int maxQueryRetry = 5; / 查询间隔(毫秒) */ private static long queryDuration = 5000; / 最大撤销次数 */ private static int maxCancelRetry = 3; / 撤销间隔(毫秒) */ private static long cancelDuration = 3000; public String getGatewayUrl() { return gatewayUrl; } public void setGatewayUrl(String gatewayUrl) { this.gatewayUrl = gatewayUrl; } public String getAppid() { return appid; } public void setAppid(String appid) { this.appid = appid; } public String getPrivateKey() { return privateKey; } public void setPrivateKey(String privateKey) { this.privateKey = privateKey; } public String getAlipayPublicKey() { return alipayPublicKey; } public void setAlipayPublicKey(String alipayPublicKey) { this.alipayPublicKey = alipayPublicKey; } public String getSignType() { return signType; } public void setSignType(String signType) { this.signType = signType; } public String getFormate() { return formate; } public void setFormate(String formate) { this.formate = formate; } public String getCharset() { return charset; } public void setCharset(String charset) { this.charset = charset; } public String getReturnUrl() { return returnUrl; } public void setReturnUrl(String returnUrl) { this.returnUrl = returnUrl; } public String getNotifyUrl() { return notifyUrl; } public void setNotifyUrl(String notifyUrl) { this.notifyUrl = notifyUrl; } public static int getMaxQueryRetry() { return maxQueryRetry; } public static void setMaxQueryRetry(int maxQueryRetry) { AlipayProperties.maxQueryRetry = maxQueryRetry; } public static long getQueryDuration() { return queryDuration; } public static void setQueryDuration(long queryDuration) { AlipayProperties.queryDuration = queryDuration; } public static int getMaxCancelRetry() { return maxCancelRetry; } public static void setMaxCancelRetry(int maxCancelRetry) { AlipayProperties.maxCancelRetry = maxCancelRetry; } public static long getCancelDuration() { return cancelDuration; } public static void setCancelDuration(long cancelDuration) { AlipayProperties.cancelDuration = cancelDuration; } private AlipayProperties() {} / * PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。 */ /* @PostConstruct public void init() { Logger log=new Logger("AlipayProperties"); log.info(description()); }*/ public String description() { StringBuilder sb = new StringBuilder("\nConfigs{"); sb.append("支付宝网关: ").append(gatewayUrl).append("\n"); sb.append(", appid: ").append(appid).append("\n"); sb.append(", 商户RSA私钥: ").append(getKeyDescription(privateKey)).append("\n"); sb.append(", 支付宝RSA公钥: ").append(getKeyDescription(alipayPublicKey)).append("\n"); sb.append(", 签名类型: ").append(signType).append("\n"); sb.append(", 查询重试次数: ").append(maxQueryRetry).append("\n"); sb.append(", 查询间隔(毫秒): ").append(queryDuration).append("\n"); sb.append(", 撤销尝试次数: ").append(maxCancelRetry).append("\n"); sb.append(", 撤销重试间隔(毫秒): ").append(cancelDuration).append("\n"); sb.append("}"); return sb.toString(); } private String getKeyDescription(String key) { int showLength = 6; if (StringUtils.isNotEmpty(key) && key.length() > showLength) { return new StringBuilder(key.substring(0, showLength)).append("") .append(key.substring(key.length() - showLength)).toString(); } return null; } } 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

controller

package com.freesky.controller;

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.domain.AlipayTradePagePayModel;
import com.alipay.api.domain.AlipayTradePayModel;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.api.request.AlipayTradePayRequest;
import com.alipay.api.response.AlipayTradePayResponse;
import com.freesky.config.AlipayProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;


import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.UUID;

/
 * @author: wll
 * @modifiedBy:
 * @date: Create In 11:13 2019/5/17
 * @description:
 */
@Slf4j
@Controller
public class AlipayF2FPayController {
    @Autowired
    private AlipayClient alipayClient;

    @Autowired
    private AlipayProperties aliPayProperties;

    @Autowired
    private HttpServletResponse response;

    @PostMapping("alipay/page/gotoPayPage")
    public void gotoPayPage() throws AlipayApiException, IOException {
        // 订单模型
        String productCode = "FAST_INSTANT_TRADE_PAY";
        AlipayTradePagePayModel model = new AlipayTradePagePayModel();
        model.setOutTradeNo(UUID.randomUUID().toString());
        model.setSubject("支付测试");
        model.setTotalAmount("10");
        model.setBody("支付测试,共10元");
        model.setProductCode(productCode);

        AlipayTradePagePayRequest pagePayRequest = new AlipayTradePagePayRequest();
        pagePayRequest.setReturnUrl(aliPayProperties.getReturnUrl());
        pagePayRequest.setNotifyUrl(aliPayProperties.getNotifyUrl());
        pagePayRequest.setBizModel(model);

        // 调用SDK生成表单, 并直接将完整的表单html输出到页面
        String form = alipayClient.pageExecute(pagePayRequest).getBody();
        response.setContentType("text/html;charset=" + aliPayProperties.getCharset());
        response.getWriter().write(form);
        response.getWriter().flush();
        response.getWriter().close();
    }


    /
     * 当面付-扫码付
     * <p>
     * 扫码支付,指用户打开支付宝钱包中的“扫一扫”功能,扫描商户针对每个订单实时生成的订单二维码,并在手机端确认支付。
     * <p>
     * 发起预下单请求,同步返回订单二维码
     * <p>
     * 适用场景:商家获取二维码展示在屏幕上,然后用户去扫描屏幕上的二维码
     *
     * @return
     * @throws AlipayApiException
     */
    @PostMapping("/alipay/f2fpay/precreate")
    public void precreate() throws Exception {
        AlipayTradePayRequest request = new AlipayTradePayRequest();
        AlipayTradePayModel model = new AlipayTradePayModel();
        request.setBizModel(model);

        model.setOutTradeNo(System.currentTimeMillis() + "");
        model.setSubject("Iphone6 16G");
        model.setTotalAmount("0.01");
        model.setAuthCode("xxxxx");//沙箱钱包中的付款码
        model.setScene("bar_code");

        AlipayTradePayResponse response = null;
        try {
            response = alipayClient.execute(request);
            System.out.println(response.getBody());
            System.out.println(response.getTradeNo());
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
    }
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

html 

讯享网<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="font-size: 30px">

<form method="post" action="/alipay/page/gotoPayPage">
    <h3>支付测试</h3>
    <h3>价格:10</h3>
    <button style="width: 100%; height: 60px; alignment: center; background: #b49e8f" type="submit">去支付</button>
</form>

</body>
</html>

 

小讯
上一篇 2025-01-08 23:02
下一篇 2025-03-12 13:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/70465.html