场景
最近在做支付宝的接口对接,之前做过一个版本,但是由于申请了新的账号以前旧的的接口对接就不能使用了
所以就开始对接新的版本接口对接,在这里也记录一下让那些还没有对接的兄弟少走点弯路。
准备
先申请一个企业账户
https://memberprod.alipay.com/account/reg/enterpriseIndex.htm
创建应用
去支付宝的开放平台
https://open.alipay.com/platform/home.htm
添加应用:
https://docs.open.alipay.com/200/105310
按照这个链接的文档一步一步操作;
账号准备好之后,就可以了解相关的接口了,以(即时到账)支付接口为例。
阅读接口文档
https://docs.open.alipay.com/270/alipay.trade.page.pay/
下载SDK
https://docs.open.alipay.com/54/103419
选择java版本
将sdk集成进入项目中
sdk中有一个jar包
将这个jar包上传到私服上去。
参考这个:
http://blog.youkuaiyun.com/huchunlinnk/article/details/17789175
项目引入sdk中的关键jar包
这里的gav的写法取决于你上传私服的时候的填写
<dependency>
<groupId>com.alipay</groupId>
<artifactId>alipay-api</artifactId>
<version>1.0.0</version>
</dependency>
处理AlipayConfig对象
取消AlipayConfig配置文件中的部分常量
打开下载sdk应该可以找到
将这个类中的前几个静态常量变成非静态的,以便可以支持多个配置对象。
/* *
*类名:AlipayConfig
*功能:基础配置类
*详细:设置帐户有关信息及返回路径
*修改日期:2017-04-05
*说明:
*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
*/
@Data
public class AlipayConfig {
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
public String app_id = "";
// 商户私钥,您的PKCS8格式RSA2私钥
public String merchant_private_key = "";
// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
public String alipay_public_key = "";
// 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public String notify_url = "";
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public String return_url = "";
// 签名方式
public static String sign_type = "RSA2";
// 字符编码格式
public static String charset = "utf-8";
// 支付宝网关
public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";
//日志路径
public static String log_path = "C:\\";
}
编写请求支付的接口
后端向支付宝发起支付的请求,在这个同时需要传递必要参数,下面我们就来编写如何向支付宝发起支付。
编写conroller层
/**
* 阿里支付控制器
*
* @author WangSen(wangsenhehe@126.com)
* @Date 2017年8月16日
*/
@Controller
@RequestMapping("/alipay")
public class AliPayController {
@Autowired
private AlipayViewService alipayViewService;
/**
* 跳转到去支付的jsp页面
*
* @param orderId 订单号