栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot整合支付宝沙箱支付——一个简单的demo

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot整合支付宝沙箱支付——一个简单的demo

 一、登录支付宝开发者平台:支付宝开放平台

 二、启用自定义密钥 三、点击冒号,生成密钥

有两种生成密钥方式,我是点击windows下载的支付宝开放平台开发助手,现在好像可以在线生成了。  四、打开开发助手,会有如下页面,按步骤进行密钥生成。   五、然后把复制生成的应用密钥到前面启动自定义密钥的地方,会自动生成支付宝公钥 六、创建 AlipayConfig,配置好自己的APPID、应用私钥、支付宝公钥
package com.pay.config;

import java.io.FileWriter;
import java.io.IOException;



public class AlipayConfig {

    //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
    // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
    public static String app_id = "你的appid";

    // 商户私钥,您的PKCS8格式RSA2私钥
    public static String merchant_private_key = "你的应用私钥";
    // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    public static String alipay_public_key = "你的支付宝公钥";

    // 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问,假设这里的公网IP和端口为:49.269.31.237:8081
    public static String notify_url = " http://49.269.31.237:8081 /pay/synnotify";

    // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问,假设这里的公网IP和端口为:49.269.31.237:8081
    public static String return_url = "http://localhost:8080/pay/pay_success";

    // 签名方式
    public static String sign_type = "RSA2";

    // 字符编码格式
    public static String charset = "utf-8";

    // 支付宝网关
    public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";

    // 支付宝网关
    public static String log_path = "C:\";


//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

    
    public static void logResult(String sWord) {
        FileWriter writer = null;
        try {
            writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");
            writer.write(sWord);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (writer != null) {
                try {
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
七、PayController 
package com.pay.controller.pay;

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.pay.config.AlipayConfig;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
@RequestMapping("/pay")
public class PayController {

    
    @ResponseBody
    @PostMapping("/aliPay")
    public String aliPay(String orderId,
                         String amount,
                         String product,
                         String body) throws AlipayApiException {

//获得初始化的AlipayClient
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl,
                AlipayConfig.app_id,
                AlipayConfig.merchant_private_key,
                "json",
                AlipayConfig.charset,
                AlipayConfig.alipay_public_key,
                AlipayConfig.sign_type);
//        page
        AlipayTradePagePayRequest alipayPageRequest = new AlipayTradePagePayRequest();
        alipayPageRequest.setReturnUrl(AlipayConfig.return_url);
        alipayPageRequest.setNotifyUrl(AlipayConfig.notify_url);


        //拼接参数
        alipayPageRequest.setBizContent("{"out_trade_no":"" + orderId + "","
                + ""total_amount":"" + amount + "","
                + ""subject":"" + product + "","
                + ""body":"" + body + "","
                + ""product_code":"FAST_INSTANT_TRADE_PAY"}");

        //请求
        return alipayClient.pageExecute(alipayPageRequest).getBody();
    }
    @RequestMapping("/test")
    public String sub(){
        return "test";
    }
}

结构如下图所示  

test.html 




    
    测试支付




    
订单id 订单名称 付款金额 描述
 pay.html 



    
    跳转的中转页面







要配置application.yml ,不然会启动失败
server:
  port: 8080
  servlet:
    context-path: /
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///minsu?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: 123456



#mybatis-plush配置
mybatis-plus:
  type-aliases-package: com.jt.pojo
  mapper-locations: classpath:/mappers/*.xml
  configuration:
    map-underscore-to-camel-case: true

logging:
  level:
    com.jt.mapper: debug
输入请求地址:localhost/pay/test,输入对应的订单信息,进行提交 

提交后会自动跳转到支付宝支付页面,输入开发平台给出的账号和 密码进行支付,或者下载沙箱版支付宝,输入开发平台提供的账密登录后就可以扫码支付了,如下图

 一个简单的支付宝demo就是这样了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号