赞
踩
1.先获取当前用户的user_id ,这个简单直接文档里面有
在支付宝前段获得用户授权,得到authCode
调用支付宝接口传递授权码,得到用户其他信息(userid access_token)
2. 调用支付的方法,会返回body这个就是支付信息的包
- public String getTradeNO(String fee, String authcode,String phone) {
- AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliPayConfig.getAPP_ID(), aliPayConfig.getAPP_PRIVATE_KEY(), "json", "UTF-8", aliPayConfig.getALIPAY_PUBLIC_KEY(), "RSA2");
- //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.create.
- AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
- //SDK已经封装掉了公共参数,这里只需要传入业务参数。
- AlipayTradeCreateModel model = new AlipayTradeCreateModel();
- model.setBuyerId(buyerId);//这里是刚刚获得的userid
- model.setOutTradeNo(out_trade_no);//这个是我们自己创建的订单号,便于处理后面的回调函数
- model.setSubject("geek small program recharge");
- model.setTotalAmount(fee);//支付宝后端单位为元
- request.setNotifyUrl(aliPayConfig.getNotifyUrl());//用户支付成功后,支付宝会给notifyurl发送请求
- request.setBizModel(model);
- // request.setBizContent("{" +
- // "\"out_trade_no\":" + out_trade_no + ',' +
- // "\"total_amount\":" + fee + ',' +
- // "\"subject\":\"极市,小程序充值\"," +
- // "\"buyer_id\":" + buyerId + ',' +
- // " }");不能使用这种方式支付,不然会出现参数无效错误
- try {
- //使用的是execute
- AlipayTradeCreateResponse response = alipayClient.execute(request);
- String trade_no = response.getTradeNo();//获取返回的tradeNO。
- System.out.println(response.getBody());
- return trade_no;
- } catch (AlipayApiException e) {
- e.printStackTrace();
- System.out.println("获取订单号失败");
- return "获取订单号失败";
- }
- }
3. 前端调用,第二步接口返回的body信息就是对应下面的订单信
- // 调用支付宝支付接口
- AlipayJSBridge.call("tradePay", {
- tradeNO: "", // 支付宝交易号(可选)
- bizContent: JSON.stringify(orderInfo), // 订单信息
- }, function (result) {
- if (result.resultCode == "9000") {
- // 支付成功,需要跳转的页面
-
- } else {
- // 支付失败
- }
- });
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。