最简单的springboot集成支付宝
1 注册沙箱
沙箱是一个模拟环境登录,百度蚂蚁金服开放平台,支付宝扫码登录如下
选择沙箱应用 上传公钥即可。。沙箱到这里就基本完成了,里面还有沙箱版本的的android app可以下载下来。
java 程序
1 新建一个springboot项目
因为我们创建的是一个web工程,所以,仅仅演示支付宝的demo,只需要勾选web就足够了。
2 添加alipay-sdk-java和fastjson
fastjson 的作用是用到了其中的JSON.toString方法。
alipay-sdk-java的作用不用说自然是支付宝的sdk,是必不可少的。
<dependency> <groupId>com.alipay.api</groupId> <artifactId>alipay-sdk-java</artifactId> <version>20170615110434</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency>
3 Config
新建一个支付宝的config文件,如下
因为支付宝支付完成以后会有一个回调函数返回商家页面
该页面完成过一会儿结束以后会有一个回调,,因为回调地址必须是公网可以直接访问,这也就是下面用到了netapp映射的原因neturl即为映射的公网地址。
package com.example.pay.config.pay; import org.springframework.context.annotation.Configuration; import java.io.FileWriter; import java.io.IOException; /** * @author ligen * @title: AliPayConfig * @projectName demo * @description: * @date 2019/6/1014:20 */ @Configuration public class AliPayConfig { //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ // netapp映射的地址,,,根据自己的需要修改 private static String neturl = "http://g5kike.natappfree.cc"; // 应用ID,您的<span>本文来源gaodai#ma#com搞*!代#%^码$网*</span>APPID,收款账号既是您的APPID对应支付宝账号 按照我文章图上的信息填写 public static String app_id = "2016092800619078"; // 商户私钥,您的PKCS8格式RSA2私钥 刚刚生成的私钥直接复制填写 public static String merchant_private_key ="粘贴生成的私钥"; // 支付宝公钥,对应APPID下的支付宝公钥。 按照我文章图上的信息填写支付宝公钥,别填成商户公钥 public static String alipay_public_key = "粘贴生成的公钥"; // 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,其实就是你的一个支付完成后返回的页面URL public static String notify_url = neturl+"/alipay/notify_url"; // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,其实就是你的一个支付完成后返回的页面URL public static String return_url = neturl+"/alipay/return_url"; // 签名方式 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:\\"; //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ /** * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库) * @param sWord 要写入日志里的文本内容 */ 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(); } } } } }