Spring Boot 集成支付宝沙箱测试

Spring Boot集成支付宝网页支付

一.在支付宝开放平台申请开通研发服务
登录https://openhome.alipay.com/platform/home.htm后选择开发服务列表中的研发服务,使用沙箱环境进行开发,因为正式环境需要通过企业认证。

二.代码配置
1.需要的依赖

      <dependency>
        <groupId>com.alipay.sdk</groupId>
        <artifactId>alipay-sdk-java</artifactId>
        <version>3.7.4.ALL</version>
    </dependency>
  1. 配置类
	@Configuration
public class AlipayConfig {
    public static String app_id = "2016102200741273";

    // 商户私钥,您的PKCS8格式RSA2私钥
    public static String merchant_private_key = "MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQCVExLcvJmUd0LMfD8yhWlEoa5zJBslDESIZtmudpBPEI/pJDWgYewIszogx1jpJ5bdFrU3AIQQqMh2QkiX5ppLK9tupyUgLyDdT0LR0f3+2qKDD/uifLj+9kK79riPeTirTaxDAQuMSGFlpUwBcRFfex/SOiN0AfjWQxyEnIrPH+XZ4/kjU4A+sGfQEhivdjjlRbHvdabRh6VPs6oX57SaYFDEXNbdKUzdigFEcxs4GR56MZIR0EQuT5f8pcUEOZa47TkXjyANTVDju5wZVIHb08YZk96ltdwDrISya7JPmQj1cYdbMBZ++LU7/ICWdbsXrneWmefZqzZBQu3s78dvAgMBAAECggEBAIyvgHiTALmNR5wlkZrDLxJXJ4SASaHQDwlPTxYHzK7hKX9T7cwbPZ8ETdJLb4wyEX07BfAPa5MxRmXcrhe0yF4y2JZ35WCXOYPCXoQXkoYmnYHk3ox8+jWcAGTVNV4pf6Ki3fQqE1Tjpg9ATRd7NnMOhnxm47iCd+z1Tv+ToKhQuA3L3reXIqUkNWAS9IfurPRxfwtOuw+aZ3xEtp4svSMb9GKgVy1QfRzkPqt8pMH2f6EkAWAYUvZbEGZzME8cZJR3VReGTrKkOqnY+Tkk/TZQKYtA7tw9uUXA+QsRPk19et0DhkJh/VtyF9VUn6Ixq90BrLUqtHPikH3J8evV2GkCgYEAzBJhFcbz2UGvy+1hg+MdPcf4hh3oav9OYISrLRROn30U7KjJuBh02OsCiQqZWCdARibwuCHEWqlXL/Fae2DZM32MZqk+ctUC8Cp7bOF3G2qE9VpvgJb55yjfu3iwapis2PcwOopewGIKRTUmNYDV5kprHyBzYS8UdOFlfrzoxhMCgYEAuwIRUBj6IZzNPYqiBo7eVMihQEdtIRKmtey4d6NHgv3wudJ7tL8V2k5amnyNF5it5BgdfR4eyDvnCAw01o2UyCPUxuVTTdaf1Bv/wTVY7jZpL7EpjJJ60S6Mu+42VqylZh5KSxCzI3PeEgWE2i2yN4qruQYHSzr7VZHfNyDc1LUCgYEAko2MbVBApMB4mFH0mvuKb2jhwKdP1y9cQRJlv+z6fa0dTsv0eaIOoA09997FuzoM/ZRPgVy2n4lHVOXWXg5yTXkXUE6wy1TQVFud4daVa/n2XCFDPCywcWK4MfD9eMAGOZZja1cdrrl5uLPvqbLJaiX9ghAS7DMcVMfd1MOjw0MCgYEAoNjxbTReiGSm/4TrQbrGrqP2ViRZT/YL4DRgob6V9qxWzm2lK1yj/iYgtfnlHWOcRbEcRA6RKWakm35sQBJ84vw2unBrC2tMA5OlklhBSnsQVA4Mj7U54AwqzkXhBQHwLXpmKlSN0DOL0XJfx41AWZdzhmwR//oWTY5vMKqaZnUCgYEAgxGRdzAuUeFb4wLagq1HZrOwDMTBrMmVqK5isgQ2UZ9xJEpfaLWws9Rmq7nT9C2Sz6JKi1+jSTPoulq9+lyunNlU5gqvY+a4ArWWdr/a84s+ql4PlQwWwTIOr3aaPYNa5AhZ4VJZFKOH8nqzpyFxVe5smM6x0nGEHbnjOaTqKFg=";
    // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsPzHWfLVWvKr3aAVXtlp2Cpm3QF9Oh+dM7hpFe+XWJviPw8HZOGKTX/DzYUs9ZGc4rfjeAVHT/UIH2ZpF3LZp3DXi4VqFHcGO29cRaYCMfghZHwSBpRaEmkAMgi+eVQmDe/yf0Tj2pe3H/Sjc8QEtyus6EfAbD4RNgH00WEIGbITlxywtuGIrvL668SiP8N/pSeMQ7PyT8lwZVtnsXwnSyfZSmlTg62l+dgb9LE40a/8X1fHl4QPvk8Elpq2XYm6WO+XbSpfAdJVDst489HkEvEnxdeqn/BCfYG/YVy0GLbRiQit6yq3biJkdn60T6gAnxCve95PFBimf5LBPdd89QIDAQAB";

    // 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
    public static String notify_url = "http://localhost:8090/haha";

    // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
    public static String return_url = "http://localhost:8090/static/ok.html";

    // 签名方式
    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:\\";


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

3.controller层

@RequestMapping(value = "/goAlipay", produces = "text/html; charset=UTF-8")
@ResponseBody          /*jsp页面传过来的订单号,该商品的ID*/
public String goAlipay(@RequestBody Map map ) throws Exception {
    //获得初始化的AlipayClient
    AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
    //设置请求参数
    AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
    alipayRequest.setReturnUrl(AlipayConfig.return_url);
    alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
    String test = "111";
    //设置订单号
    SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyyMMddhhmmss");
    String format = sDateFormat.format(new Date());
    //商户订单号,商户网站订单系统中唯一订单号,必填
    String out_trade_no = map.get("orderId").toString().trim();
    //付款金额,必填
    String total_amount = map.get("price").toString().trim();
    //订单名称,必填
    String subject = "测试";
    //商品描述,可空
    String body = "用户订购商品个数:" + 1;

    /*
     *
     * 这里向数据库中添加数据,购买的这条商品信息
     * 名称,数量,单价,付款金额,订单号(唯一),支付状态(未支付)
     *
     *
     * */
    // 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。
    String timeout_express = "1c";

    alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\","
            + "\"total_amount\":\""+ total_amount +"\","
            + "\"subject\":\""+ subject +"\","
            + "\"body\":\""+ body +"\","
            + "\"timeout_express\":\""+ timeout_express +"\","
            + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");

    //请求
    String result = alipayClient.pageExecute(alipayRequest).getBody();

    return result;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值