package com.github.binarywang.wxpay.service;
import java.io.File;
import java.util.Date;
import java.util.Map;
import com.github.binarywang.wxpay.bean.WxPayApiData;
import com.github.binarywang.wxpay.bean.coupon.WxPayCouponInfoQueryRequest;
import com.github.binarywang.wxpay.bean.coupon.WxPayCouponInfoQueryResult;
import com.github.binarywang.wxpay.bean.coupon.WxPayCouponSendRequest;
import com.github.binarywang.wxpay.bean.coupon.WxPayCouponSendResult;
import com.github.binarywang.wxpay.bean.coupon.WxPayCouponStockQueryRequest;
import com.github.binarywang.wxpay.bean.coupon.WxPayCouponStockQueryResult;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult;
import com.github.binarywang.wxpay.bean.notify.WxScanPayNotifyResult;
import com.github.binarywang.wxpay.bean.request.*;
import com.github.binarywang.wxpay.bean.result.*;
import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.exception.WxPayException;
/**
* <pre>
* 微信支付相关接口.
* Created by Binary Wang on 2016/7/28.
* </pre>
*
* @author <a href="https://github.com/binarywang">Binary Wang</a>
*/
public interface WxPayService {
/**
* 获取微信支付请求url前缀,沙箱环境可能不一样.
*
* @return the pay base url
*/
String getPayBaseUrl();
/**
* 发送post请求,得到响应字节数组.
*
* @param url 请求地址
* @param requestStr 请求信息
* @param useKey 是否使用证书
* @return 返回请求结果字节数组 byte [ ]
* @throws WxPayException the wx pay exception
*/
byte[] postForBytes(String url, String requestStr, boolean useKey) throws WxPayException;
/**
* 发送post请求,得到响应字符串.
*
* @param url 请求地址
* @param requestStr 请求信息
* @param useKey 是否使用证书
* @return 返回请求结果字符串 string
* @throws WxPayException the wx pay exception
*/
String post(String url, String requestStr, boolean useKey) throws WxPayException;
/**
* 获取企业付款服务类.
*
* @return the ent pay service
*/
EntPayService getEntPayService();
/**
* 设置企业付款服务类,允许开发者自定义实现类.
*
* @param entPayService the ent pay service
*/
void setEntPayService(EntPayService entPayService);
/**
* <pre>
* 查询订单.
* 详见https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2
* 该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。
* 需要调用查询接口的情况:
* ◆ 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
* ◆ 调用支付接口后,返回系统错误或未知交易状态情况;
* ◆ 调用被扫支付API,返回USERPAYING的状态;
* ◆ 调用关单或撤销接口API之前,需确认支付状态;
* 接口地址:https://api.mch.weixin.qq.com/pay/orderquery
* </pre>
*
* @param transactionId 微信订单号
* @param outTradeNo 商户系统内部的订单号,当没提供transactionId时需要传这个。
* @return the wx pay order query result
* @throws WxPayException the wx pay exception
*/
WxPayOrderQueryResult queryOrder(String transactionId, String outTradeNo) throws WxPayException;
/**
* <pre>
* 查询订单(适合于需要自定义子商户号和子商户appid的情形).
* 详见https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2
* 该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。
* 需要调用查询接口的情况:
* ◆ 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
* ◆ 调用支付接口后,返回系统错误或未知交易状态情况;
* ◆ 调用被扫支付API,返回USERPAYING的状态;
* ◆ 调用关单或撤销接口API之前,需确认支付状态;
* 接口地址:https://api.mch.weixin.qq.com/pay/orderquery
* </pre>
*
* @param request 查询订单请求对象
* @return the wx pay order query result
* @throws WxPayException the wx pay exception
*/
WxPayOrderQueryResult queryOrder(WxPayOrderQueryRequest request) throws WxPayException;
/**
* <pre>
* 关闭订单.
* 应用场景
* 以下情况需要调用关单接口:
* 1. 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;
* 2. 系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。
* 注意:订单生成后不能马上调用关单接口,最短调用时间间隔为5分钟。
* 接口地址:https://api.mch.weixin.qq.com/pay/closeorder
* 是否需要证书: 不需要。
* </pre>
*
* @param outTradeNo 商户系统内部的订单号
* @return the wx pay order close result
* @throws WxPayException the wx pay exception
*/
WxPayOrderCloseResult closeOrder(String outTradeNo) throws WxPayException;
/**
* <pre>
* 关闭订单(适合于需要自定义子商户号和子商户appid的情形).
* 应用场景
* 以下情况需要调用关单接口:
* 1. 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;
* 2. 系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。
* 注意:订单生成后不能马上调用关单接口,最短调用时间间隔为5分钟。
* 接口地址:https://api.mch.weixin.qq.com/pay/closeorder
* 是否需要证书: 不需要。
* </pre>
*
* @param request 关闭订单请求对象
* @return the wx pay order close result
* @throws WxPayException the wx pay exception
*/
WxPayOrderCloseResult closeOrder(WxPayOrderCloseRequest request) throws WxPayException;
/**
* 调用统一下单接口,并组装生成支付所需参数对象.
*
* @param <T> 请使用{@link com.github.binarywang.wxpay.bean.order}包下的类
* @param request 统一下单请求参数
* @return 返回 {@link com.github.binarywang.wxpay.bean.order}包下的类对象
* @throws WxPayException the wx pay exception
*/
<T> T createOrder(WxPayUnifiedOrderRequest request) throws WxPayException;
/**
* 统一下单(详见https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1)
* 在发起微信支付前,需要调用统一下单接口,获取"预支付交易会话标识"
* 接口地址:https://api.mch.weixin.qq.com/pay/unifiedorder
*
* @param request 请求对象,注意一些参数如appid、mchid等不用设置,方法内会自动从配置对象中获取到(前提是对应配置中已经设置)
* @return the wx pay unified order result
* @throws WxPayException the wx pay exception
*/
WxPayUnifiedOrderResult unifiedOrder(WxPayUnifiedOrderRequest request) throws WxPayException;
/**
* 该接口调用“统一下单”接口,并拼装发起支付请求需要的参数.
* 详见https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
*
* @param request 请求对象,注意一些参数如appid、mchid等不用设置,方法内会自动从配置对象中获取到(前提是对应配置中已经设置)
* @return the pay info
* @throws WxPayException the wx pay exception
* @deprecated 建议使用 {@link com.github.binarywang.wxpay.service.WxPayService#createOrder(WxPayUnifiedOrderRequest)}
*/
@Deprecated
Map<String, String> getPayInfo(WxPayUnifiedOrderRequest request) throws WxPayException;
/**
* 获取配置.
*
* @return the config
*/
WxPayConfig getConfig();
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
WxJava项目是一款基于Java语言的微信开发SDK,其源码包含922个文件,涵盖850个Java源文件、26个XML配置文件、9个Markdown文件、7个JPG图片文件、3个YAML配置文件、3个PNG图片文件、3个Shell脚本文件、2个Git忽略文件、2个属性文件和2个工厂配置文件。该SDK支持微信支付、开放平台、小程序、企业微信和企业号等功能,适用于微信相关后端开发。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java语言的微信开发SDK设计源码-WxJava (919个子文件)
mm.amr 38KB
mvnw.cmd 5KB
.editorconfig 230B
spring.factories 134B
spring.factories 124B
.gitignore 682B
.gitignore 6B
WxPayService.java 32KB
WxCpErrorMsgEnum.java 32KB
BaseWxPayServiceImpl.java 31KB
WxOpenComponentServiceImpl.java 20KB
BaseWxMpServiceImpl.java 20KB
BaseWxPayServiceImplTest.java 20KB
WxMpXmlMessage.java 19KB
WxMpErrorMsgEnum.java 18KB
WxMpService.java 18KB
WxPayBillResult.java 15KB
WxPayErrorCode.java 15KB
BaseWxCpServiceImpl.java 14KB
WxOpenInMemoryConfigStorage.java 14KB
WxMpMaterialService.java 14KB
WxMpXmlMessageTest.java 13KB
WxMpMaterialServiceImplTest.java 13KB
WxMpMemberCardServiceImpl.java 13KB
WxCpXmlMessage.java 13KB
WxMpCardServiceImpl.java 12KB
WxMaServiceImpl.java 12KB
WxOpenMaServiceImpl.java 12KB
WxMaErrorMsgEnum.java 11KB
WxMpDataCubeService.java 11KB
WxConsts.java 11KB
WxMpKefuService.java 11KB
DefaultApacheHttpClientBuilder.java 11KB
WxPayUnifiedOrderRequest.java 11KB
WxMpMessageRouterTest.java 11KB
WxCpService.java 10KB
WxOpenComponentService.java 10KB
ApacheHttpDnsClientBuilder.java 10KB
WxCpMessageRouterTest.java 10KB
WxOpenMaService.java 10KB
WxCpUserGsonAdapter.java 9KB
WxPayRefundQueryResult.java 9KB
WxCryptUtil.java 9KB
WxPayOrderNotifyResult.java 9KB
WxMaQrcodeService.java 9KB
StandardSession.java 9KB
WxCpXmlMessageTest.java 9KB
WxMpMessageRouter.java 9KB
WxCpMessage.java 9KB
WxOpenFastMaServiceImpl.java 8KB
WxCpJedisConfigStorage.java 8KB
StringManager.java 8KB
WxMpMessageRouterRule.java 8KB
WxCpMessageRouter.java 8KB
StandardSessionManager.java 8KB
WxMpKefuServiceImplTest.java 8KB
WxPayRefundNotifyResult.java 8KB
WxCpMessageRouterRule.java 8KB
BaseWxPayResult.java 8KB
WxMpCurrentAutoReplyInfoTest.java 8KB
WxPayOrderQueryResult.java 8KB
WxMpMenuServiceImplTest.java 8KB
WxMpCardServiceImplTest.java 8KB
WxMpMassMessageServiceImplTest.java 8KB
WxMaMessageRouterRule.java 7KB
WxMpMemberCardServiceImplTest.java 7KB
WxMpMaterialServiceImpl.java 7KB
WxMpCardService.java 7KB
WxMpDataCubeServiceImplTest.java 7KB
WxMaAnalysisService.java 7KB
EntPayServiceImpl.java 7KB
BaseWxPayRequest.java 7KB
WxCpUserServiceImpl.java 7KB
WxOpenInRedisConfigStorage.java 7KB
WxMpKefuServiceImpl.java 7KB
WxPayServiceApacheHttpImpl.java 6KB
WxMpKefuMessageTest.java 6KB
WxMaService.java 6KB
WxCpMessageTest.java 6KB
SignUtils.java 6KB
WxMaAnalysisServiceImplTest.java 6KB
WxPayRedpackQueryResult.java 6KB
WxMaCodeService.java 6KB
WxMaMessageRouter.java 6KB
WxMaInMemoryConfig.java 6KB
WxCpInMemoryConfigStorage.java 6KB
WxMpStoreService.java 6KB
WxCpChatServiceImplTest.java 6KB
WxOpenFastMaService.java 6KB
WxMpQrcodeServiceImpl.java 6KB
WxPayConstants.java 6KB
WxMaDemoServer.java 6KB
WxMaCodeServiceImpl.java 6KB
WxPayMicropayRequest.java 6KB
WxPayRefundRequest.java 6KB
WxMpStoreBaseInfo.java 6KB
WxCpOAServiceImpl.java 6KB
WxCpUserExternalContactInfoTest.java 6KB
WxMpDataCubeServiceImpl.java 6KB
WxCpUserService.java 6KB
共 919 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
lsx202406
- 粉丝: 2240
- 资源: 5546
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MATLAB的车牌识别实现车牌定位人机界面.zip
- emulator-demo.zip
- djangoRESTFramework
- 毕业设计:基于springBoot的相册管理系统-后端代码
- 非常好的语音识别源代码100%好用.zip
- 水质模拟与结果处理:python代码主要实现了对供水网络的水质模拟,并对模拟结果进行一系列处理
- 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展 现已开放源代码并接入多家公司线上产品线,开箱即用
- 基于SpringBoot、SpringCloud&Alibaba的分布式微服务架构权限管理系统,同时提供了Vue3 的版本
- 微信小程序跃动小子保卫主公自动通关之执行计划
- 朋友圈防折叠系统源码,简单使用的小工具,众多营销老板都需要
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功