Java接入支付宝

接入支付宝的几个基本步骤:

1、申请沙箱环境;

2、生成签名,并在沙箱环境中设置好签名;

3、在自己项目中进行编码。

准备工作:

申请沙箱环境:沙箱

秘钥生成工具:

windows版本(注:老版本不要安装在有空格的目录下)

mac_osx

下载工具后生成秘钥并按照文档在支付宝平台上进行设置

Java接入支付宝_第1张图片

在项目中进行相关配置:

# 商户UID
alipay.uid=XXX
# 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
alipay.app_id=XXX
# 商户私钥,您的PKCS8格式RSA2私钥
alipay.merchant_private_key=XXX
# 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
alipay.alipay_public_key=XXX
# 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问!!
alipay.notify_url=XXX
# 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数
alipay.return_url=XXX
# 签名方式
alipay.sign_type=RSA2
# 支付宝网关
# 沙箱:https://openapi.alipaydev.com/gateway.do
# 正式:https://openapi.alipay.com/gateway.do
alipay.gateway_url=https://openapi.alipaydev.com/gateway.do

下单时序图(少画了一步,异步通知后的处理,验证订单):

 Java接入支付宝_第2张图片

下单支付code:

// 1、设置请求参数
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        // 页面跳转同步通知页面路径
        alipayRequest.setReturnUrl(aliPayConfig.getReturnUrl());
        // 服务器异步通知页面路径
        alipayRequest.setNotifyUrl(aliPayConfig.getNotifyUrl());

        // 2、SDK已经封装掉了公共参数,这里只需要传入业务参数,请求参数查阅开头Wiki
        Map map = new HashMap<>(16);
        map.put("out_trade_no", orderInfo.getOrderId());
        map.put("total_amount", String.valueOf(money));
        map.put("subject", subject);
        map.put("body",body);
        // 销售产品码
        map.put("product_code","FAST_INSTANT_TRADE_PAY");

        alipayRequest.setBizContent(JsonUtils.objectToJson(map));

        response.setContentType("text/html;charset=utf-8");
        // 3、生成支付表单
        AlipayTradePagePayResponse alipayResponse = alipayClient.pageExecute(alipayRequest);

没有错误的话就会跳转到支付表单如下

Java接入支付宝_第3张图片

使用沙箱钱包支付成功后,就会跳转到之前配置的同步页面。

支付订单基本结束,后续的查询退款与之类似。

 

你可能感兴趣的:(支付)