PickPayAction.java 2.3 KB
package com.cjs.site.action.user.fund;

import com.cjs.site.biz.user.pick.PickPayBiz;
import com.cjs.site.model.union.QueryBill;
import com.cjs.site.model.union.UnionResponse;
import com.cjs.site.util.lang.DateEnum;
import com.cjs.site.util.lang.DateUtil;
import com.cjs.site.util.lang.JsonUtil;
import com.cjs.site.util.union.UnionConstants;
import com.cjs.site.util.union.UnionPayUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;

/**
 * Created by bruce on 2019-05-14 13:41
 */
@Controller
@RequestMapping("/pick/unionPay")
public class PickPayAction {

    @Autowired
    private PickPayBiz pickPayBiz;

    //创建订单
    @RequestMapping(value = "createOrder", method = RequestMethod.GET)
    @ResponseBody
    public Object createOrder(HttpSession session) {
        return pickPayBiz.createOrder(session);
    }

    //支付通知
    @RequestMapping(value = "notify", method = RequestMethod.POST)
    @ResponseBody
    public String notify(HttpServletRequest request) {
        Map<String, String> params = UnionPayUtil.getRequestParams(request);
        System.out.println("银联支付推送回调参数:" + JsonUtil.toJson(params));
        if (pickPayBiz.isValidNotify(params)) {
            return "SUCCESS";
        }
        return "FAILED";
    }

    @RequestMapping(value = "query", method = RequestMethod.GET)
    @ResponseBody
    public Object returnPage(String billNo) {
        QueryBill queryBill = new QueryBill();
        queryBill.setBillDate(DateUtil.getNow(DateEnum.DATE));
        queryBill.setRequestTimestamp(DateUtil.getNow());
        queryBill.setBillNo(billNo);
        @SuppressWarnings("unchecked")
        Map<String, String> params = JsonUtil.fromJson(JsonUtil.toJson(queryBill), Map.class);
        String result = UnionPayUtil.sendPost(UnionConstants.CREATE_ORDER, params);
        UnionResponse response = JsonUtil.fromJson(result, UnionResponse.class);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("status", response.getBillStatus());
        map.put("code", response.getErrCode());
        return map;
    }

}