实现支付宝支付,开发其实不难,主要是申请和配置一些秘钥麻烦
- 先申请一个应用,应用对应了不同的功能,需要进行审核才能通过。
为了开放方便,我申请了一个沙箱应用
其中箭头所示的为这个应用的公钥 需要在代码中配置
私钥的生成需要参考官方链接,下载到本地生成: https://docs.open.alipay.com/291/105971
下面进行开发的配置:
引入依赖
<!-- 实现支付宝支付接口-->
<!-- 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>
配置支付的客户端 属性信息
#支付宝配置
#支付同步返回地址
ali_return_url =http://106.13xxxx251:8080/tr/send/r1eg3sister/code111 这是get请求的地址,在支付完成之后有支付宝在浏览器中跳转
#支付异步通知地址
ali_notify_url =http://106.13.zzzz1:8080/tr/send/register/code 这是post请求的地址由支付宝异步调用服务器程序,不要设置登录拦截的接口,这也是支付完成的一个确认接口,需要给支付宝返回一个success 字段,否则支付宝会分时间段不断请求接口。具体参考其他博客。 这里可以做一些业务处理
#产品码
product_no = FAST_INSTANT_TRADE_PAY
#超时时间
time_express = 15m
#支付网关
url =https://openapi.alipaydev.com/gateway.do (沙箱网关)
#商户号
appid =201657142222 (这是应用的ID)
#私钥
private_key =MIIEvAIBADATQ==(此处的一堆秘钥,是生成在本地的秘钥)
#公钥
ali_public_key =MIIBIjANBgkqhkiG9w0QAB (这是一个应用对应的公钥,是上面截图箭头指示的内容)
#加密方式
sign_type = RSA2
/**
* 支付操作业务
* Created by huangch on 2019/1/20 19:33
*/
@Transactional
@Service
public class AlipayServiceImpl implements AlipayService {
@Value("${ali_return_url}")
private String ali_return_url;
@Value("${ali_notify_url}")
private String ali_notify_url;
@Value("${product_no}")
private String product_no;
@Value("${time_express}")
private String time_express;
@Value("${url}")
private