All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hn.pay.alipay.AliPayApi Maven / Gradle / Ivy

There is a newer version: 1.0.18
Show newest version
package com.hn.pay.alipay;

import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alipay.api.AlipayApiException;
import com.alipay.api.domain.*;
import com.alipay.api.request.*;
import com.alipay.api.response.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * 

IJPay 让支付触手可及,封装了微信支付、支付宝支付、银联支付常用的支付方式以及各种常用的接口。

*

支付宝支付相关接口

* * @author Javen */ public class AliPayApi { /** * 支付宝提供给商户的服务接入网关URL(新) */ private static final String GATEWAY_NEW = "https://mapi.alipay.com/gateway.do?"; /** * APP支付 * @param model model * @param notifyUrl notifyUrl * @return {String} string * @throws AlipayApiException 支付异常 */ public static String startAppPay(AlipayTradeAppPayModel model, String notifyUrl) throws AlipayApiException{ AlipayTradeAppPayResponse response = appPayToResponse(model,notifyUrl); return response.getBody(); } /** * APP支付 * * @param model {@link AlipayTradeAppPayModel} * @param notifyUrl 异步通知 URL * @return {@link AlipayTradeAppPayResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeAppPayResponse appPayToResponse(AlipayTradeAppPayModel model, String notifyUrl) throws AlipayApiException { AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); request.setBizModel(model); request.setNotifyUrl(notifyUrl); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().sdkExecute(request); } /** * WAP支付 * * @param response {@link HttpServletResponse} * @param model {@link AlipayTradeWapPayModel} * @param returnUrl 异步通知URL * @param notifyUrl 同步通知URL * @throws AlipayApiException 支付宝 Api 异常 * @throws IOException IO 异常 */ public static void wapPay(HttpServletResponse response, AlipayTradeWapPayModel model, String returnUrl, String notifyUrl) throws AlipayApiException, IOException { String form = wapPayStr(model, returnUrl, notifyUrl); response.setContentType("text/html;charset=" + AliPayApiConfigKit.getAliPayApiConfig().getCharset()); PrintWriter out = response.getWriter(); out.write(form); out.flush(); out.close(); } /** *

WAP支付

* *

为了解决 Filter 中使用 OutputStream getOutputStream() 和 PrintWriter getWriter() 冲突异常问题

* * @param response {@link HttpServletResponse} * @param model {@link AlipayTradeWapPayModel} * @param returnUrl 异步通知URL * @param notifyUrl 同步通知URL * @throws AlipayApiException 支付宝 Api 异常 * @throws IOException IO 异常 */ public static void wapPayByOutputStream(HttpServletResponse response, AlipayTradeWapPayModel model, String returnUrl, String notifyUrl) throws AlipayApiException, IOException { String form = wapPayStr(model, returnUrl, notifyUrl); response.setContentType("text/html;charset=" + AliPayApiConfigKit.getAliPayApiConfig().getCharset()); OutputStream out = response.getOutputStream(); out.write(form.getBytes(AliPayApiConfigKit.getAliPayApiConfig().getCharset())); response.getOutputStream().flush(); } /** * WAP支付 * * @param model {@link AlipayTradeWapPayModel} * @param returnUrl 异步通知URL * @param notifyUrl 同步通知URL * @return {String} * @throws AlipayApiException 支付宝 Api 异常 */ public static String wapPayStr(AlipayTradeWapPayModel model, String returnUrl, String notifyUrl) throws AlipayApiException { AlipayTradeWapPayRequest aliPayRequest = new AlipayTradeWapPayRequest(); aliPayRequest.setReturnUrl(returnUrl); aliPayRequest.setNotifyUrl(notifyUrl); aliPayRequest.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().pageExecute(aliPayRequest).getBody(); } /** * 统一收单交易支付接口接口
* 适用于:条形码支付、声波支付等
* * @param model {@link AlipayTradePayModel} * @param notifyUrl 异步通知URL * @return {@link AlipayTradePayResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradePayResponse tradePayToResponse(AlipayTradePayModel model, String notifyUrl) throws AlipayApiException { AlipayTradePayRequest request = new AlipayTradePayRequest(); // 填充业务参数 request.setBizModel(model); request.setNotifyUrl(notifyUrl); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单交易支付接口接口
* 适用于:条形码支付、声波支付等
* * @param model {AlipayTradePayModel} * @param notifyUrl 异步通知URL * @param appAuthToken 应用授权token * @return {AlipayTradePayResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradePayResponse tradePayToResponse(AlipayTradePayModel model, String notifyUrl, String appAuthToken) throws AlipayApiException { AlipayTradePayRequest request = new AlipayTradePayRequest(); request.setBizModel(model); request.setNotifyUrl(notifyUrl); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 统一收单线下交易预创建
* 适用于:扫码支付等
* * @param model {@link AlipayTradePrecreateModel} * @param notifyUrl 异步通知URL * @return {@link AlipayTradePrecreateResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradePrecreateResponse tradePrecreatePayToResponse(AlipayTradePrecreateModel model, String notifyUrl) throws AlipayApiException { AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); request.setBizModel(model); request.setNotifyUrl(notifyUrl); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单线下交易预创建
* 适用于:扫码支付等
* * @param model {@link AlipayTradePrecreateModel} * @param notifyUrl 异步通知URL * @param appAuthToken 应用授权token * @return {@link AlipayTradePrecreateResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradePrecreateResponse tradePrecreatePayToResponse(AlipayTradePrecreateModel model, String notifyUrl, String appAuthToken) throws AlipayApiException { AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); request.setBizModel(model); request.setNotifyUrl(notifyUrl); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 单笔转账到支付宝账户 * * @param model {@link AlipayFundTransToaccountTransferModel} * @return 转账是否成功 * @throws AlipayApiException 支付宝 Api 异常 */ public static boolean transfer(AlipayFundTransToaccountTransferModel model) throws AlipayApiException { AlipayFundTransToaccountTransferResponse response = transferToResponse(model); String result = response.getBody(); if (response.isSuccess()) { return true; } else { // 调用查询接口查询数据 JSONObject jsonObject = JSONUtil.parseObj(result); String outBizNo = jsonObject.getJSONObject("alipay_fund_trans_toaccount_transfer_response").getStr("out_biz_no"); AlipayFundTransOrderQueryModel queryModel = new AlipayFundTransOrderQueryModel(); model.setOutBizNo(outBizNo); return transferQuery(queryModel); } } /** * 单笔转账到支付宝账户 * * @param model {@link AlipayFundTransToaccountTransferModel} * @return {@link AlipayFundTransToaccountTransferResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundTransToaccountTransferResponse transferToResponse(AlipayFundTransToaccountTransferModel model) throws AlipayApiException { AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 转账查询接口 * * @param model {@link AlipayFundTransOrderQueryModel} * @return 是否存在此 * @throws AlipayApiException 支付宝 Api 异常 */ public static boolean transferQuery(AlipayFundTransOrderQueryModel model) throws AlipayApiException { AlipayFundTransOrderQueryResponse response = transferQueryToResponse(model); return response.isSuccess(); } /** * 转账查询接口 * * @param model {@link AlipayFundTransOrderQueryModel} * @return {@link AlipayFundTransOrderQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundTransOrderQueryResponse transferQueryToResponse(AlipayFundTransOrderQueryModel model) throws AlipayApiException { AlipayFundTransOrderQueryRequest request = new AlipayFundTransOrderQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单线下交易查询接口 * * @param model {@link AlipayTradeQueryModel} * @return {@link AlipayTradeQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeQueryResponse tradeQueryToResponse(AlipayTradeQueryModel model) throws AlipayApiException { AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单线下交易查询接口 * * @param model {@link AlipayTradeQueryModel} * @param appAuthToken 应用授权token * @return {@link AlipayTradeQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeQueryResponse tradeQueryToResponse(AlipayTradeQueryModel model, String appAuthToken) throws AlipayApiException { AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 统一收单交易撤销接口 * * @param model {@link AlipayTradeCancelModel} * @param appAuthToken 应用授权token * @return {@link AlipayTradeCancelResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeCancelResponse tradeCancelToResponse(AlipayTradeCancelModel model, String appAuthToken) throws AlipayApiException { AlipayTradeCancelRequest request = new AlipayTradeCancelRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 统一收单交易撤销接口 * * @param model {@link AlipayTradeCancelModel} * @return {@link AlipayTradeCancelResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeCancelResponse tradeCancelToResponse(AlipayTradeCancelModel model) throws AlipayApiException { AlipayTradeCancelRequest request = new AlipayTradeCancelRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单交易关闭接口 * * @param model {@link AlipayTradeCloseModel} * @param appAuthToken 应用授权token * @return {@link AlipayTradeCloseResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeCloseResponse tradeCloseToResponse(AlipayTradeCloseModel model, String appAuthToken) throws AlipayApiException { AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 统一收单交易关闭接口 * * @param model {@link AlipayTradeCloseModel} * @return {@link AlipayTradeCloseResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeCloseResponse tradeCloseToResponse(AlipayTradeCloseModel model) throws AlipayApiException { AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单交易创建接口 * * @param model {@link AlipayTradeCreateModel} * @param notifyUrl 异步通知URL * @return {@link AlipayTradeCreateResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeCreateResponse tradeCreateToResponse(AlipayTradeCreateModel model, String notifyUrl) throws AlipayApiException { AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); request.setBizModel(model); request.setNotifyUrl(notifyUrl); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单交易创建接口 * * @param model {@link AlipayTradeCreateModel} * @param notifyUrl 异步通知URL * @param appAuthToken 应用授权token * @return {@link AlipayTradeCreateResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeCreateResponse tradeCreateToResponse(AlipayTradeCreateModel model, String notifyUrl, String appAuthToken) throws AlipayApiException { AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); request.setBizModel(model); request.setNotifyUrl(notifyUrl); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 统一收单交易退款接口 * * @param model {@link AlipayTradeRefundModel} * @return {@link AlipayTradeRefundResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeRefundResponse tradeRefundToResponse(AlipayTradeRefundModel model) throws AlipayApiException { AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单交易退款接口 * * @param model {@link AlipayTradeRefundModel} * @param appAuthToken 应用授权token * @return {@link AlipayTradeRefundResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeRefundResponse tradeRefundToResponse(AlipayTradeRefundModel model, String appAuthToken) throws AlipayApiException { AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 统一收单交易退款查询 * * @param model {@link AlipayTradeFastpayRefundQueryModel} * @return {@link AlipayTradeFastpayRefundQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeFastpayRefundQueryResponse tradeRefundQueryToResponse(AlipayTradeFastpayRefundQueryModel model) throws AlipayApiException { AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单交易退款查询 * * @param model {@link AlipayTradeFastpayRefundQueryModel} * @param appAuthToken 应用授权token * @return {@link AlipayTradeFastpayRefundQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeFastpayRefundQueryResponse tradeRefundQueryToResponse(AlipayTradeFastpayRefundQueryModel model, String appAuthToken) throws AlipayApiException { AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 查询对账单下载地址 * * @param model {@link AlipayDataDataserviceBillDownloadurlQueryModel} * @return 对账单下载地址 * @throws AlipayApiException 支付宝 Api 异常 */ public static String billDownloadurlQuery(AlipayDataDataserviceBillDownloadurlQueryModel model) throws AlipayApiException { AlipayDataDataserviceBillDownloadurlQueryResponse response = billDownloadUrlQueryToResponse(model); return response.getBillDownloadUrl(); } /** * 查询对账单下载地址 * * @param model {@link AlipayDataDataserviceBillDownloadurlQueryModel} * @return {@link AlipayDataDataserviceBillDownloadurlQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayDataDataserviceBillDownloadurlQueryResponse billDownloadUrlQueryToResponse(AlipayDataDataserviceBillDownloadurlQueryModel model) throws AlipayApiException { AlipayDataDataserviceBillDownloadurlQueryRequest request = new AlipayDataDataserviceBillDownloadurlQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 统一收单交易结算接口 * * @param model {@link AlipayTradeOrderSettleModel} * @param appAuthToken 应用授权token * @return {@link AlipayTradeOrderSettleResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeOrderSettleResponse tradeOrderSettleToResponse(AlipayTradeOrderSettleModel model, String appAuthToken) throws AlipayApiException { AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken); } /** * 统一收单交易结算接口 * * @param model {@link AlipayTradeOrderSettleModel} * @return {@link AlipayTradeOrderSettleResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayTradeOrderSettleResponse tradeOrderSettleToResponse(AlipayTradeOrderSettleModel model) throws AlipayApiException { AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 电脑网站支付(PC支付) * * @param response {@link HttpServletResponse} * @param model {@link AlipayTradePagePayModel} * @param notifyUrl 异步通知URL * @param returnUrl 同步通知URL * @throws AlipayApiException 支付宝 Api 异常 * @throws IOException IO 异常 */ public static void tradePage(HttpServletResponse response, AlipayTradePagePayModel model, String notifyUrl, String returnUrl) throws AlipayApiException, IOException { AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); request.setBizModel(model); request.setNotifyUrl(notifyUrl); request.setReturnUrl(returnUrl); String form = AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().pageExecute(request).getBody();// 调用SDK生成表单 response.setContentType("text/html;charset=" + AliPayApiConfigKit.getAliPayApiConfig().getCharset()); PrintWriter out = response.getWriter(); out.write(form); out.flush(); out.close(); } /** * 资金预授权冻结接口 * * @param model {@link AlipayFundAuthOrderFreezeModel} * @return {@link AlipayFundAuthOrderFreezeResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundAuthOrderFreezeResponse authOrderFreezeToResponse(AlipayFundAuthOrderFreezeModel model) throws AlipayApiException { AlipayFundAuthOrderFreezeRequest request = new AlipayFundAuthOrderFreezeRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 资金授权解冻接口 * * @param model {@link AlipayFundAuthOrderUnfreezeModel} * @return {@link AlipayFundAuthOrderUnfreezeResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundAuthOrderUnfreezeResponse authOrderUnfreezeToResponse(AlipayFundAuthOrderUnfreezeModel model) throws AlipayApiException { AlipayFundAuthOrderUnfreezeRequest request = new AlipayFundAuthOrderUnfreezeRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 资金预授权冻结接口 * * @param model {@link AlipayFundAuthOrderVoucherCreateModel} * @return {@link AlipayFundAuthOrderVoucherCreateResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundAuthOrderVoucherCreateResponse authOrderVoucherCreateToResponse(AlipayFundAuthOrderVoucherCreateModel model) throws AlipayApiException { AlipayFundAuthOrderVoucherCreateRequest request = new AlipayFundAuthOrderVoucherCreateRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 资金授权撤销接口 * * @param model {@link AlipayFundAuthOperationCancelModel} * @return {@link AlipayFundAuthOperationCancelResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundAuthOperationCancelResponse authOperationCancelToResponse(AlipayFundAuthOperationCancelModel model) throws AlipayApiException { AlipayFundAuthOperationCancelRequest request = new AlipayFundAuthOperationCancelRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 资金授权操作查询接口 * * @param model {@link AlipayFundAuthOperationDetailQueryModel} * @return {@link AlipayFundAuthOperationDetailQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundAuthOperationDetailQueryResponse authOperationDetailQueryToResponse(AlipayFundAuthOperationDetailQueryModel model) throws AlipayApiException { AlipayFundAuthOperationDetailQueryRequest request = new AlipayFundAuthOperationDetailQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 红包无线支付接口 * * @param model {@link AlipayFundCouponOrderAppPayModel} * @return {@link AlipayFundCouponOrderAppPayResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundCouponOrderAppPayResponse fundCouponOrderAppPayToResponse(AlipayFundCouponOrderAppPayModel model) throws AlipayApiException { AlipayFundCouponOrderAppPayRequest request = new AlipayFundCouponOrderAppPayRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 红包页面支付接口 * * @param model {@link AlipayFundCouponOrderPagePayModel} * @return {@link AlipayFundCouponOrderPagePayResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundCouponOrderPagePayResponse fundCouponOrderPagePayToResponse(AlipayFundCouponOrderPagePayModel model) throws AlipayApiException { AlipayFundCouponOrderPagePayRequest request = new AlipayFundCouponOrderPagePayRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 红包协议支付接口 * * @param model {@link AlipayFundCouponOrderAgreementPayModel} * @return {@link AlipayFundCouponOrderAgreementPayResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundCouponOrderAgreementPayResponse fundCouponOrderAgreementPayToResponse(AlipayFundCouponOrderAgreementPayModel model) throws AlipayApiException { AlipayFundCouponOrderAgreementPayRequest request = new AlipayFundCouponOrderAgreementPayRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 红包打款接口 * * @param model {@link AlipayFundCouponOrderDisburseModel} * @return {@link AlipayFundCouponOrderDisburseResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundCouponOrderDisburseResponse fundCouponOrderDisburseToResponse(AlipayFundCouponOrderDisburseModel model) throws AlipayApiException { AlipayFundCouponOrderDisburseRequest request = new AlipayFundCouponOrderDisburseRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 红包退回接口 * * @param model {@link AlipayFundCouponOrderRefundModel} * @return {@link AlipayFundCouponOrderRefundResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundCouponOrderRefundResponse fundCouponOrderRefundToResponse(AlipayFundCouponOrderRefundModel model) throws AlipayApiException { AlipayFundCouponOrderRefundRequest request = new AlipayFundCouponOrderRefundRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 红包退回接口 * * @param model {@link AlipayFundCouponOperationQueryModel} * @return {@link AlipayFundCouponOperationQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayFundCouponOperationQueryResponse fundCouponOperationQueryToResponse(AlipayFundCouponOperationQueryModel model) throws AlipayApiException { AlipayFundCouponOperationQueryRequest request = new AlipayFundCouponOperationQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 应用授权 URL 拼装 * * @param appId 应用编号 * @param redirectUri 回调 URI * @return 应用授权 URL * @throws UnsupportedEncodingException 编码异常 */ public static String getOauth2Url(String appId, String redirectUri) throws UnsupportedEncodingException { return new StringBuffer().append("https://openauth.alipay.com/oauth2/appToAppAuth.htm?app_id=").append(appId).append("&redirect_uri=").append(URLEncoder.encode(redirectUri, "UTF-8")).toString(); } /** * 使用 app_auth_code 换取 app_auth_token * * @param model {@link AlipayOpenAuthTokenAppModel} * @return {@link AlipayOpenAuthTokenAppResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayOpenAuthTokenAppResponse openAuthTokenAppToResponse(AlipayOpenAuthTokenAppModel model) throws AlipayApiException { AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 查询授权信息 * * @param model {@link AlipayOpenAuthTokenAppQueryModel} * @return {@link AlipayOpenAuthTokenAppQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayOpenAuthTokenAppQueryResponse openAuthTokenAppQueryToResponse(AlipayOpenAuthTokenAppQueryModel model) throws AlipayApiException { AlipayOpenAuthTokenAppQueryRequest request = new AlipayOpenAuthTokenAppQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 地铁购票发码 * * @param model {@link AlipayCommerceCityfacilitatorVoucherGenerateModel} * @return {@link AlipayCommerceCityfacilitatorVoucherGenerateResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayCommerceCityfacilitatorVoucherGenerateResponse voucherGenerateToResponse(AlipayCommerceCityfacilitatorVoucherGenerateModel model) throws AlipayApiException { AlipayCommerceCityfacilitatorVoucherGenerateRequest request = new AlipayCommerceCityfacilitatorVoucherGenerateRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 地铁购票发码退款 * * @param model {@link AlipayCommerceCityfacilitatorVoucherRefundModel} * @return {@link AlipayCommerceCityfacilitatorVoucherRefundResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayCommerceCityfacilitatorVoucherRefundResponse metroRefundToResponse(AlipayCommerceCityfacilitatorVoucherRefundModel model) throws AlipayApiException { AlipayCommerceCityfacilitatorVoucherRefundRequest request = new AlipayCommerceCityfacilitatorVoucherRefundRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 地铁车站数据查询 * * @param model {@link AlipayCommerceCityfacilitatorStationQueryModel} * @return {@link AlipayCommerceCityfacilitatorStationQueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayCommerceCityfacilitatorStationQueryResponse stationQueryToResponse(AlipayCommerceCityfacilitatorStationQueryModel model) throws AlipayApiException { AlipayCommerceCityfacilitatorStationQueryRequest request = new AlipayCommerceCityfacilitatorStationQueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } /** * 核销码批量查询 * * @param model {@link AlipayCommerceCityfacilitatorVoucherBatchqueryModel} * @return {@link AlipayCommerceCityfacilitatorVoucherBatchqueryResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayCommerceCityfacilitatorVoucherBatchqueryResponse voucherBatchqueryToResponse(AlipayCommerceCityfacilitatorVoucherBatchqueryModel model) throws AlipayApiException { AlipayCommerceCityfacilitatorVoucherBatchqueryRequest request = new AlipayCommerceCityfacilitatorVoucherBatchqueryRequest(); request.setBizModel(model); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } public static void batchTrans(Map params, String privateKey, String signType, HttpServletResponse response) throws IOException { params.put("service", "batch_trans_notify"); params.put("_input_charset", "UTF-8"); params.put("pay_date", DateUtil.format(new Date(), "YYYYMMDD")); Map param = AliPayCore.buildRequestPara(params, privateKey, signType); response.sendRedirect(GATEWAY_NEW.concat(AliPayCore.createLinkString(param))); } /** * 将异步通知的参数转化为Map * * @param request {HttpServletRequest} * @return 转化后的Map */ public static Map toMap(HttpServletRequest request) { Map params = new HashMap(); Map requestParams = request.getParameterMap(); for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) { String name = iter.next(); String[] values = requestParams.get(name); String valueStr = ""; for (int i = 0; i < values.length; i++) { valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ","; } // 乱码解决,这段代码在出现乱码时使用 // valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); params.put(name, valueStr); } return params; } /** * 生活缴费查询账单 * * @param orderType 支付宝订单类型 * @param merchantOrderNo 业务流水号 * @return {@link AlipayEbppBillGetResponse} * @throws AlipayApiException 支付宝 Api 异常 */ public static AlipayEbppBillGetResponse ebppBillGet(String orderType, String merchantOrderNo) throws AlipayApiException { AlipayEbppBillGetRequest request = new AlipayEbppBillGetRequest(); request.setOrderType(orderType); request.setMerchantOrderNo(merchantOrderNo); return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy