Java订单支付接入支付宝一订单支付实现

官方SDK- Demo

官方文档链接:https://opendocs.alipay.com/open/54/106370#JAVA%20%E8%B0%83%E7%94%A8%E7%A4%BA%E4%BE%8B

1.接入逻辑

商家后台:指的是我们自己的项目后台
商家App:指的是我们自己的项目的app 端
这里的

2.如何进行SDK的调用

①先初始化 AlipayClient 对象:

AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);

②参数说明:(具体的参数就参照文章顶部的链接,按照官方说明获取即可)

配置参数示例值解释获取方式/示例值
URL支付宝网关(固定)https://openapi.alipay.com/gateway.do
APP_ID开发者应用私钥,由开发者自己生成创建应用并获取 APPID
APP_PRIVATE_KEYAPPID 即创建应用后生成
FORMAT参数返回格式,只支持 jsonjson(固定)
CHARSET请求和签名使用的字符编码格式,支持 GBK 和 UTF-8据实际工程编码配置
ALIPAY_PUBLIC_KEY支付宝公钥,由支付宝生成
SIGN_TYPE商户生成签名字符串所使用的签名算法类型,目前支持 RSA2 和 RSA,推荐使用 RSA2RSA2

③注意:
接下来,就可以用 alipayClient 来调用具体的 API 了。alipayClient 只需要初始化一次,后续调用不同的API都可以使用同一个 alipayClient 对象

3.订单支付

项目中订单支付调用的支付接口(直接上代码):

// 订单支付接口:

public Result alipayAppPay(Order order) {	//  这里的参数是对应的订单信息
	//实例化客户端--参数要一一对应
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();

model.setSubject("App支付测试Java");  //付款后支付宝消息通知中的商品说明
model.setOutTradeNo("202012101123");//我们自己项目中的订单号-保证唯一 ,从订单参数中取
model.setTotalAmount("0.01");		//订单实际支付价格,从订单参数中取	
model.setProductCode("QUICK_MSECURITY_PAY");
request.setBizModel(model);
request.setNotifyUrl("商户外网可以访问的异步地址");// 支付成功后回调地址, 下文有说明
AlipayTradeAppPayResponse response = null;
        try {
            response = alipayClient.sdkExecute(request);
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        if (response.isSuccess()) {
            Order order1 = new Order();
            order1.setPayType(ConstantUtil.PAY_TYPE_2);
            Example example = new Example(Order.class);
            example.createCriteria().andEqualTo("orderSn", order.getOrderSn());
            orderMapper.updateByExampleSelective(order1, example);
            System.out.println(response.getBody());
            result.setData(response.getBody());
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
        }
}
	 return result;		 // 到这里支付就完成了,上述代码可结合自己实际进行修改使用	

4.支付回调

上述 3 中还涉及到支付的一个回调通知可以理解为:支付完成后,支付宝通知我们,然后我们对自己系统中的对应订单数据做相应的处理:

下一篇接着淦支付回调

5.如果觉得对你有帮助就点个赞吧

这也算是我自己真正接触支付宝支付的一个心路历程,完整的记录下来,希望能帮助更多的人,一起进步……就是淦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值