- * 生成编辑地址请求 - *
- * - * err_msg edit_address:ok获取编辑收货地址成功 edit_address:fail获取编辑收货地址失败 - * userName 收货人姓名 telNumber 收货人电话 addressPostalCode 邮编 - * proviceFirstStageName 国标收货地址第一级地址 addressCitySecondStageName - * 国标收货地址第二级地址 addressCountiesThirdStageName 国标收货地址第三级地址 - * addressDetailInfo 详细收货地址信息 nationalCode 收货地址国家码 - * - * @param url - * 当前访问页的URL - * @param oauthToken - * oauth授权时产生的token - * @see com.foxinmy.weixin4j.api.PayApi - * @see - * 收货地址共享 - * @return 编辑地址请求JSON串 - */ - public String createAddressRequestJSON(String url, String oauthToken) { - return payApi.createAddressRequestJSON(url, oauthToken); - } + /** + *+ * 生成编辑地址请求 + *
+ * + * err_msg edit_address:ok获取编辑收货地址成功 + * edit_address:fail获取编辑收货地址失败 + * userName 收货人姓名 + * telNumber 收货人电话 + * addressPostalCode 邮编 + * proviceFirstStageName 国标收货地址第一级地址 + * addressCitySecondStageName 国标收货地址第二级地址 + * addressCountiesThirdStageName 国标收货地址第三级地址 + * addressDetailInfo 详细收货地址信息 + * nationalCode 收货地址国家码 + * + * @param url + * 当前访问页的URL + * @param oauthToken + * oauth授权时产生的token + * @see com.foxinmy.weixin4j.api.PayApi + * @see + * 收货地址共享 + * @return 编辑地址请求JSON串 + */ + public String createAddressRequestJSON(String url, String oauthToken) { + return payApi.createAddressRequestJSON(url, oauthToken); + } - /** - * 创建Native支付(扫码支付)链接【模式一】 - * - * @param productId - * 与订单ID等价 - * @return 支付链接 - * @see com.foxinmy.weixin4j.api.PayApi - * @see 扫码支付 - * - * @see 模式一 - * - */ - public String createNativePayRequest(String productId) { - return payApi.createNativePayRequest(productId); - } + /** + * 创建Native支付(扫码支付)链接【模式一】 + * + * @param productId + * 与订单ID等价 + * @return 支付链接 + * @see com.foxinmy.weixin4j.api.PayApi + * @see 扫码支付 + * + * @see 模式一 + * + */ + public String createNativePayRequest(String productId) { + return payApi.createNativePayRequest(productId); + } - /** - * 创建Native支付(扫码支付)回调对象【模式一】 - * - * @param productId - * 商品ID - * @param body - * 商品描述 - * @param outTradeNo - * 商户内部唯一订单号 - * @param totalFee - * 商品总额 单位元 - * @param notifyUrl - * 支付回调URL - * @param createIp - * 订单生成的机器 IP - * @param attach - * 附加数据 非必填 - * @return Native回调对象 - * @see com.foxinmy.weixin4j.api.PayApi - * @see com.foxinmy.weixin4j.payment.mch.NativePayResponse - * @see 扫码支付 - * - * @see 模式一 - * - * @throws WeixinException - */ - public NativePayResponse createNativePayResponse(String productId, - String body, String outTradeNo, double totalFee, String notifyUrl, - String createIp, String attach) throws WeixinException { - return payApi.createNativePayResponse(productId, body, outTradeNo, - totalFee, notifyUrl, createIp, attach); - } + /** + * 创建Native支付(扫码支付)回调对象【模式一】 + * + * @param productId + * 商品ID + * @param body + * 商品描述 + * @param outTradeNo + * 商户内部唯一订单号 + * @param totalFee + * 商品总额 单位元 + * @param notifyUrl + * 支付回调URL + * @param createIp + * 订单生成的机器 IP + * @param attach + * 附加数据 非必填 + * @return Native回调对象 + * @see com.foxinmy.weixin4j.api.PayApi + * @see com.foxinmy.weixin4j.payment.mch.NativePayResponse + * @see 扫码支付 + * + * @see 模式一 + * + * @throws WeixinException + */ + public NativePayResponse createNativePayResponse(String productId, String body, String outTradeNo, double totalFee, + String notifyUrl, String createIp, String attach) throws WeixinException { + return payApi.createNativePayResponse(productId, body, outTradeNo, totalFee, notifyUrl, createIp, attach); + } - /** - * 创建Native支付(扫码支付)链接【模式二】 - * - * @param productId - * 商品ID - * @param body - * 商品描述 - * @param outTradeNo - * 商户内部唯一订单号 - * @param totalFee - * 商品总额 单位元 - * @param notifyUrl - * 支付回调URL - * @param createIp - * 订单生成的机器 IP - * @param attach - * 附加数据 非必填 - * @return Native支付对象 - * @see com.foxinmy.weixin4j.api.PayApi - * @see com.foxinmy.weixin4j.payment.mch.NATIVEPayRequest - * @see com.foxinmy.weixin4j.payment.mch.MchPayRequest#toRequestString() - * @see 扫码支付 - * - * @see 模式二 - * - * @throws WeixinException - */ - public MchPayRequest createNativePayRequest(String productId, String body, - String outTradeNo, double totalFee, String notifyUrl, - String createIp, String attach) throws WeixinException { - return payApi.createNativePayRequest(productId, body, outTradeNo, - totalFee, notifyUrl, createIp, attach); - } + /** + * 创建Native支付(扫码支付)链接【模式二】 + * + * @param productId + * 商品ID + * @param body + * 商品描述 + * @param outTradeNo + * 商户内部唯一订单号 + * @param totalFee + * 商品总额 单位元 + * @param notifyUrl + * 支付回调URL + * @param createIp + * 订单生成的机器 IP + * @param attach + * 附加数据 非必填 + * @return Native支付对象 + * @see com.foxinmy.weixin4j.api.PayApi + * @see com.foxinmy.weixin4j.payment.mch.NATIVEPayRequest + * @see com.foxinmy.weixin4j.payment.mch.MchPayRequest#toRequestString() + * @see 扫码支付 + * + * @see 模式二 + * + * @throws WeixinException + */ + public MchPayRequest createNativePayRequest(String productId, String body, String outTradeNo, double totalFee, + String notifyUrl, String createIp, String attach) throws WeixinException { + return payApi.createNativePayRequest(productId, body, outTradeNo, totalFee, notifyUrl, createIp, attach); + } - /** - * 创建APP支付请求对象 - * - * @param body - * 商品描述 - * @param outTradeNo - * 商户内部唯一订单号 - * @param totalFee - * 商品总额 单位元 - * @param notifyUrl - * 支付回调URL - * @param createIp - * 订单生成的机器 IP - * @param attach - * 附加数据 非必填 - * @return APP支付对象 - * @see com.foxinmy.weixin4j.api.PayApi - * @see com.foxinmy.weixin4j.payment.mch.APPPayRequest - * @see com.foxinmy.weixin4j.payment.mch.MchPayRequest#toRequestString() - * @see - * APP支付 - * @throws WeixinException - */ - public MchPayRequest createAppPayRequest(String body, String outTradeNo, - double totalFee, String notifyUrl, String createIp, String attach) - throws WeixinException { - return payApi.createAppPayRequest(body, outTradeNo, totalFee, - notifyUrl, createIp, attach); - } + /** + * 创建APP支付请求对象 + * + * @param body + * 商品描述 + * @param outTradeNo + * 商户内部唯一订单号 + * @param totalFee + * 商品总额 单位元 + * @param notifyUrl + * 支付回调URL + * @param createIp + * 订单生成的机器 IP + * @param attach + * 附加数据 非必填 + * @return APP支付对象 + * @see com.foxinmy.weixin4j.api.PayApi + * @see com.foxinmy.weixin4j.payment.mch.APPPayRequest + * @see com.foxinmy.weixin4j.payment.mch.MchPayRequest#toRequestString() + * @see + * APP支付 + * @throws WeixinException + */ + public MchPayRequest createAppPayRequest(String body, String outTradeNo, double totalFee, String notifyUrl, + String createIp, String attach) throws WeixinException { + return payApi.createAppPayRequest(body, outTradeNo, totalFee, notifyUrl, createIp, attach); + } - /** - * 创建WAP支付请求对象 - * - * @param body - * 商品描述 - * @param outTradeNo - * 商户内部唯一订单号 - * @param totalFee - * 商品总额 单位元 - * @param notifyUrl - * 支付回调URL - * @param createIp - * 订单生成的机器 IP - * @param attach - * 附加数据 非必填 - * @return WAP支付对象 - * @see com.foxinmy.weixin4j.api.PayApi - * @see com.foxinmy.weixin4j.payment.mch.WAPPayRequest - * @see com.foxinmy.weixin4j.payment.mch.MchPayRequest#toRequestString() - * @see WAP支付 - * - * @throws WeixinException - */ - public MchPayRequest createWapPayRequest(String body, String outTradeNo, - double totalFee, String notifyUrl, String createIp, String attach) - throws WeixinException { - return payApi.createWapPayRequest(body, outTradeNo, totalFee, - notifyUrl, createIp, attach); - } + /** + * 创建WAP支付请求对象 + * + * @param body + * 商品描述 + * @param outTradeNo + * 商户内部唯一订单号 + * @param totalFee + * 商品总额 单位元 + * @param notifyUrl + * 支付回调URL + * @param createIp + * 订单生成的机器 IP + * @param attach + * 附加数据 非必填 + * @return WAP支付对象 + * @see com.foxinmy.weixin4j.api.PayApi + * @see com.foxinmy.weixin4j.payment.mch.WAPPayRequest + * @see com.foxinmy.weixin4j.payment.mch.MchPayRequest#toRequestString() + * @see WAP支付 + * + * @throws WeixinException + */ + public MchPayRequest createWapPayRequest(String body, String outTradeNo, double totalFee, String notifyUrl, + String createIp, String attach) throws WeixinException { + return payApi.createWapPayRequest(body, outTradeNo, totalFee, notifyUrl, createIp, attach); + } - /** - * 提交被扫支付 - * - * @param authCode - * 扫码支付授权码 ,设备读取用户微信中的条码或者二维码信息 - * @param body - * 商品描述 - * @param outTradeNo - * 商户内部唯一订单号 - * @param totalFee - * 商品总额 单位元 - * @param createIp - * 订单生成的机器 IP - * @param attach - * 附加数据 非必填 - * @return 支付的订单信息 - * @see com.foxinmy.weixin4j.api.PayApi - * @see com.foxinmy.weixin4j.payment.mch.Order - * @see com.foxinmy.weixin4j.payment.mch.MICROPayRequest - * @see com.foxinmy.weixin4j.payment.mch.MchPayRequest#toRequestString() - * @see - * 提交被扫支付API - * @throws WeixinException - */ - public MchPayRequest createMicroPayRequest(String authCode, String body, - String outTradeNo, double totalFee, String createIp, String attach) - throws WeixinException { - return payApi.createMicroPayRequest(authCode, body, outTradeNo, - totalFee, createIp, attach); - } + /** + * 提交被扫支付 + * + * @param authCode + * 扫码支付授权码 ,设备读取用户微信中的条码或者二维码信息 + * @param body + * 商品描述 + * @param outTradeNo + * 商户内部唯一订单号 + * @param totalFee + * 商品总额 单位元 + * @param createIp + * 订单生成的机器 IP + * @param attach + * 附加数据 非必填 + * @return 支付的订单信息 + * @see com.foxinmy.weixin4j.api.PayApi + * @see com.foxinmy.weixin4j.payment.mch.Order + * @see com.foxinmy.weixin4j.payment.mch.MICROPayRequest + * @see com.foxinmy.weixin4j.payment.mch.MchPayRequest#toRequestString() + * @see + * 提交被扫支付API + * @throws WeixinException + */ + public MchPayRequest createMicroPayRequest(String authCode, String body, String outTradeNo, double totalFee, + String createIp, String attach) throws WeixinException { + return payApi.createMicroPayRequest(authCode, body, outTradeNo, totalFee, createIp, attach); + } - /** - * 订单查询 - *- * 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知; 调用支付接口后,返回系统错误或未知交易状态情况; - * 调用被扫支付API,返回USERPAYING的状态; 调用关单或撤销接口API之前,需确认支付状态; - *
- * - * @param idQuery - * 商户系统内部的订单号, transaction_id、out_trade_no 二 选一,如果同时存在优先级: - * transaction_id> out_trade_no - * @since V3 - * @see com.foxinmy.weixin4j.payment.mch.Order - * @see com.foxinmy.weixin4j.api.PayApi - * @see - * 订单查询API - * @return 订单详情 - * @throws WeixinException - */ - public Order queryOrder(IdQuery idQuery) throws WeixinException { - return payApi.queryOrder(idQuery); - } + /** + * 订单查询 + *+ * 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知; + * 调用支付接口后,返回系统错误或未知交易状态情况; + * 调用被扫支付API,返回USERPAYING的状态; + * 调用关单或撤销接口API之前,需确认支付状态; + *
+ * + * @param idQuery + * 商户系统内部的订单号, transaction_id、out_trade_no 二 选一,如果同时存在优先级: + * transaction_id> out_trade_no + * @since V3 + * @see com.foxinmy.weixin4j.payment.mch.Order + * @see com.foxinmy.weixin4j.api.PayApi + * @see + * 订单查询API + * @return 订单详情 + * @throws WeixinException + */ + public Order queryOrder(IdQuery idQuery) throws WeixinException { + return payApi.queryOrder(idQuery); + } - /** - * 申请退款(请求需要双向证书) - *- * 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后, - * 按照退款规则将支付款按原路退到买家帐号上。 - *
- *- * 1.交易时间超过半年的订单无法提交退款; - * 2.微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。一笔退款失败后重新提交 - * ,要采用原来的退款单号。总退款金额不能超过用户实际支付金额。 - *
- * - * @param idQuery - * 商户系统内部的订单号, transaction_id 、 out_trade_no 二选一,如果同时存在优先级: - * transaction_id> out_trade_no - * @param outRefundNo - * 商户系统内部的退款单号,商 户系统内部唯一,同一退款单号多次请求只退一笔 - * @param totalFee - * 订单总金额,单位为元 - * @param refundFee - * 退款总金额,单位为元,可以做部分退款 - * @param refundFeeType - * 货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY - * @param opUserId - * 操作员帐号, 默认为商户号 - * @param refundAccountType - * 退款资金来源,默认使用未结算资金退款:REFUND_SOURCE_UNSETTLED_FUNDS - * @return 退款申请结果 - * @see com.foxinmy.weixin4j.payment.mch.RefundResult - * @see com.foxinmy.weixin4j.api.PayApi - * @see - * 申请退款API - * @since V3 - * @throws WeixinException - */ - public RefundResult applyRefund(IdQuery idQuery, String outRefundNo, - double totalFee, double refundFee, CurrencyType refundFeeType, - String opUserId, RefundAccountType refundAccountType) - throws WeixinException { - return payApi.applyRefund(idQuery, outRefundNo, totalFee, refundFee, - refundFeeType, opUserId, refundAccountType); - } + /** + * 申请退款(请求需要双向证书) + *+ * 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后, + * 按照退款规则将支付款按原路退到买家帐号上。 + *
+ *+ * 1.交易时间超过半年的订单无法提交退款; + * 2.微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。一笔退款失败后重新提交 + * ,要采用原来的退款单号。总退款金额不能超过用户实际支付金额。 + *
+ * + * @param idQuery + * 商户系统内部的订单号, transaction_id 、 out_trade_no 二选一,如果同时存在优先级: + * transaction_id> out_trade_no + * @param outRefundNo + * 商户系统内部的退款单号,商 户系统内部唯一,同一退款单号多次请求只退一笔 + * @param totalFee + * 订单总金额,单位为元 + * @param refundFee + * 退款总金额,单位为元,可以做部分退款 + * @param refundFeeType + * 货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY + * @param opUserId + * 操作员帐号, 默认为商户号 + * @param refundAccountType + * 退款资金来源,默认使用未结算资金退款:REFUND_SOURCE_UNSETTLED_FUNDS + * @return 退款申请结果 + * @see com.foxinmy.weixin4j.payment.mch.RefundResult + * @see com.foxinmy.weixin4j.api.PayApi + * @see + * 申请退款API + * @since V3 + * @throws WeixinException + */ + public RefundResult applyRefund(IdQuery idQuery, String outRefundNo, double totalFee, double refundFee, + CurrencyType refundFeeType, String opUserId, RefundAccountType refundAccountType) throws WeixinException { + return payApi.applyRefund(idQuery, outRefundNo, totalFee, refundFee, refundFeeType, opUserId, + refundAccountType); + } - /** - * 退款申请(全额退款) - * - * @throws IOException - * - * @see {@link #applyRefund(IdQuery, String, double, double, String,CurrencyType)} - */ - public RefundResult applyRefund(IdQuery idQuery, String outRefundNo, - double totalFee) throws WeixinException { - return payApi.applyRefund(idQuery, outRefundNo, totalFee); - } + /** + * 退款申请(全额退款) + * + * @throws IOException + * + * @see {@link #applyRefund(IdQuery, String, double, double, String,CurrencyType)} + */ + public RefundResult applyRefund(IdQuery idQuery, String outRefundNo, double totalFee) throws WeixinException { + return payApi.applyRefund(idQuery, outRefundNo, totalFee); + } - /** - * 退款查询 - *- * 提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。 - *
- * - * @param idQuery - * 单号 refund_id、out_refund_no、 out_trade_no 、 transaction_id - * 四个参数必填一个,优先级为: - * refund_id>out_refund_no>transaction_id>out_trade_no - * @return 退款记录 - * @see com.foxinmy.weixin4j.api.PayApi - * @see com.foxinmy.weixin4j.payment.mch.RefundRecord - * @see - * 退款查询API - * @since V3 - * @throws WeixinException - */ - public RefundRecord queryRefund(IdQuery idQuery) throws WeixinException { - return payApi.queryRefund(idQuery); - } + /** + * 退款查询 + *+ * 提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。 + *
+ * + * @param idQuery + * 单号 refund_id、out_refund_no、 out_trade_no 、 transaction_id + * 四个参数必填一个,优先级为: + * refund_id>out_refund_no>transaction_id>out_trade_no + * @return 退款记录 + * @see com.foxinmy.weixin4j.api.PayApi + * @see com.foxinmy.weixin4j.payment.mch.RefundRecord + * @see + * 退款查询API + * @since V3 + * @throws WeixinException + */ + public RefundRecord queryRefund(IdQuery idQuery) throws WeixinException { + return payApi.queryRefund(idQuery); + } - /** - * 下载对账单- * 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;系统下单后,用户支付超时,系统退出不再受理,避免用户继续 - * ,请调用关单接口,如果关单失败,返回已完 成支付请按正常支付处理。如果出现银行掉单,调用关单成功后,微信后台会主动发起退款。 - *
- * - * @param outTradeNo - * 商户系统内部的订单号 - * @return 执行结果 - * @see com.foxinmy.weixin4j.api.PayApi - * @since V3 - * @throws WeixinException - * @see - * 关闭订单API - */ - public MerchantResult closeOrder(String outTradeNo) throws WeixinException { - return payApi.closeOrder(outTradeNo); - } + /** + * 关闭订单 + *+ * 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;系统下单后,用户支付超时,系统退出不再受理,避免用户继续 + * ,请调用关单接口,如果关单失败,返回已完 成支付请按正常支付处理。如果出现银行掉单,调用关单成功后,微信后台会主动发起退款。 + *
+ * + * @param outTradeNo + * 商户系统内部的订单号 + * @return 执行结果 + * @see com.foxinmy.weixin4j.api.PayApi + * @since V3 + * @throws WeixinException + * @see + * 关闭订单API + */ + public MerchantResult closeOrder(String outTradeNo) throws WeixinException { + return payApi.closeOrder(outTradeNo); + } - /** - * native支付URL转短链接:用于扫码原生支付模式一中的二维码链接转成短链接(weixin://wxpay/s/XXXXXX),减小二维码数据量 - * ,提升扫描速度和精确度。 - * - * @param url - * 具有native标识的支付URL - * @return 转换后的短链接 - * @see com.foxinmy.weixin4j.api.PayApi - * @see - * 转换短链接API - * @since V3 - * @throws WeixinException - */ - public String getPayShorturl(String url) throws WeixinException { - return payApi.getShorturl(url); - } + /** + * native支付URL转短链接:用于扫码原生支付模式一中的二维码链接转成短链接(weixin://wxpay/s/XXXXXX),减小二维码数据量 + * ,提升扫描速度和精确度。 + * + * @param url + * 具有native标识的支付URL + * @return 转换后的短链接 + * @see com.foxinmy.weixin4j.api.PayApi + * @see + * 转换短链接API + * @since V3 + * @throws WeixinException + */ + public String getPayShorturl(String url) throws WeixinException { + return payApi.getShorturl(url); + } - /** - * 接口上报 - * - * @param interfaceUrl - * 上报对应的接口的完整 URL, 类似: https://api.mch.weixin.q - * q.com/pay/unifiedorder - * @param executeTime - * 接口耗时情况,单位为毫秒 - * @param outTradeNo - * 商户系统内部的订单号,商 户可以在上报时提供相关商户订单号方便微信支付更好 的提高服务质量。 - * @param ip - * 发起接口调用时的机器 IP - * @param time - * 商户调用该接口时商户自己 系统的时间 - * @param returnXml - * 调用接口返回的基本数据 - * @return 处理结果 - * @see com.foxinmy.weixin4j.api.PayApi - * @see - * 接口测试上报API - * @throws WeixinException - */ - public XmlResult reportInterface(String interfaceUrl, int executeTime, - String outTradeNo, String ip, Date time, XmlResult returnXml) - throws WeixinException { - return payApi.reportInterface(interfaceUrl, executeTime, outTradeNo, - ip, time, returnXml); - } + /** + * 接口上报 + * + * @param interfaceUrl + * 上报对应的接口的完整 URL, 类似: https://api.mch.weixin.q + * q.com/pay/unifiedorder + * @param executeTime + * 接口耗时情况,单位为毫秒 + * @param outTradeNo + * 商户系统内部的订单号,商 户可以在上报时提供相关商户订单号方便微信支付更好 的提高服务质量。 + * @param ip + * 发起接口调用时的机器 IP + * @param time + * 商户调用该接口时商户自己 系统的时间 + * @param returnXml + * 调用接口返回的基本数据 + * @return 处理结果 + * @see com.foxinmy.weixin4j.api.PayApi + * @see + * 接口测试上报API + * @throws WeixinException + */ + public XmlResult reportInterface(String interfaceUrl, int executeTime, String outTradeNo, String ip, Date time, + XmlResult returnXml) throws WeixinException { + return payApi.reportInterface(interfaceUrl, executeTime, outTradeNo, ip, time, returnXml); + } - /** - * 发放代金券(需要证书) - * - * @param couponStockId - * 代金券批次id - * @param partnerTradeNo - * 商户发放凭据号(格式:商户id+日期+流水号),商户侧需保持唯一性 - * @param openId - * 用户的openid - * @param opUserId - * 操作员帐号, 默认为商户号 可在商户平台配置操作员对应的api权限 可为空 - * @return 发放结果 - * @see com.foxinmy.weixin4j.api.CouponApi - * @see com.foxinmy.weixin4j.payment.coupon.CouponResult - * @see - * 发放代金券接口 - * @throws WeixinException - */ - public CouponResult sendCoupon(String couponStockId, String partnerTradeNo, - String openId, String opUserId) throws WeixinException { - return couponApi.sendCoupon(couponStockId, partnerTradeNo, openId, - opUserId); - } + /** + * 发放代金券(需要证书) + * + * @param couponStockId + * 代金券批次id + * @param partnerTradeNo + * 商户发放凭据号(格式:商户id+日期+流水号),商户侧需保持唯一性 + * @param openId + * 用户的openid + * @param opUserId + * 操作员帐号, 默认为商户号 可在商户平台配置操作员对应的api权限 可为空 + * @return 发放结果 + * @see com.foxinmy.weixin4j.api.CouponApi + * @see com.foxinmy.weixin4j.payment.coupon.CouponResult + * @see + * 发放代金券接口 + * @throws WeixinException + */ + public CouponResult sendCoupon(String couponStockId, String partnerTradeNo, String openId, String opUserId) + throws WeixinException { + return couponApi.sendCoupon(couponStockId, partnerTradeNo, openId, opUserId); + } - /** - * 查询代金券批次 - * - * @param couponStockId - * 代金券批次ID - * @return 代金券批次信息 - * @see com.foxinmy.weixin4j.api.CouponApi - * @see com.foxinmy.weixin4j.payment.coupon.CouponStock - * @see - * 查询代金券批次信息接口 - * @throws WeixinException - */ - public CouponStock queryCouponStock(String couponStockId) - throws WeixinException { - return couponApi.queryCouponStock(couponStockId); - } + /** + * 查询代金券批次 + * + * @param couponStockId + * 代金券批次ID + * @return 代金券批次信息 + * @see com.foxinmy.weixin4j.api.CouponApi + * @see com.foxinmy.weixin4j.payment.coupon.CouponStock + * @see + * 查询代金券批次信息接口 + * @throws WeixinException + */ + public CouponStock queryCouponStock(String couponStockId) throws WeixinException { + return couponApi.queryCouponStock(couponStockId); + } - /** - * 查询代金券详细 - * - * @param couponId - * 代金券ID - * @return 代金券详细信息 - * @see com.foxinmy.weixin4j.api.CouponApi - * @see com.foxinmy.weixin4j.payment.coupon.CouponDetail - * @see - * 查询代金券详细信息接口 - * @throws WeixinException - */ - public CouponDetail queryCouponDetail(String couponId) - throws WeixinException { - return couponApi.queryCouponDetail(couponId); - } + /** + * 查询代金券详细 + * + * @param openId + * 用户ID + * @param couponId + * 代金券ID + * @return 代金券详细信息 + * @see com.foxinmy.weixin4j.api.CouponApi + * @see com.foxinmy.weixin4j.payment.coupon.CouponDetail + * @see + * 查询代金券详细信息接口 + * @throws WeixinException + */ + public CouponDetail queryCouponDetail(String openId, String couponId) throws WeixinException { + return couponApi.queryCouponDetail(openId, couponId); + } - /** - * 发放红包 企业向微信用户个人发现金红包 - * - * @param redpacket - * 红包信息 - * @return 发放结果 - * @see com.foxinmy.weixin4j.api.CashApi - * @see com.foxinmy.weixin4j.payment.mch.Redpacket - * @see com.foxinmy.weixin4j.payment.mch.RedpacketSendResult - * @see - * 发放现金红包接口 - * @see - * 发放裂变红包接口 - * @throws WeixinException - */ - public RedpacketSendResult sendRedpack(Redpacket redpacket) - throws WeixinException { - return cashApi.sendRedpack(redpacket); - } + /** + * 发放红包 企业向微信用户个人发现金红包 + * + * @param redpacket + * 红包信息 + * @return 发放结果 + * @see com.foxinmy.weixin4j.api.CashApi + * @see com.foxinmy.weixin4j.payment.mch.Redpacket + * @see com.foxinmy.weixin4j.payment.mch.RedpacketSendResult + * @see + * 发放现金红包接口 + * @see + * 发放裂变红包接口 + * @throws WeixinException + */ + public RedpacketSendResult sendRedpack(Redpacket redpacket) throws WeixinException { + return cashApi.sendRedpack(redpacket); + } - /** - * 批量发放红包 企业向微信用户个人发现金红包 - * - * @param redpacket - * 多个红包信息 - * @return 发放结果 - * @see com.foxinmy.weixin4j.api.CashApi - * @see #sendRedpacks(Redpacket...) - * @throws WeixinException - */ - public List- * 接口调用规则: - *
- *
+ * 接口调用规则: + *
+ *