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

cn.ipokerface.weixin.proxy.CouponProxy Maven / Gradle / Ivy

There is a newer version: 1.5.0
Show newest version
package cn.ipokerface.weixin.proxy;

import cn.ipokerface.weixin.exception.WeixinException;
import cn.ipokerface.weixin.model.WeixinPayAccount;
import cn.ipokerface.weixin.proxy.coupon.CouponDetail;
import cn.ipokerface.weixin.proxy.coupon.CouponResult;
import cn.ipokerface.weixin.proxy.coupon.CouponStock;
import cn.ipokerface.weixin.request.WeixinApis;
import cn.ipokerface.weixin.request.WeixinResponse;
import cn.ipokerface.weixin.utils.StringUtil;
import cn.ipokerface.weixin.xml.XmlFormatter;
import com.alibaba.fastjson.TypeReference;

import java.util.Map;

/**
 * Created by       PokerFace
 * Create Date      2019-12-28.
 * Email:           [email protected]
 * Version          1.0.0
 * 

* Description: */ public class CouponProxy extends MerchantProxy { public CouponProxy(WeixinPayAccount weixinAccount) { super(weixinAccount); } /** * 发放代金券(需要证书) * * @param couponStockId * 代金券批次id * @param partnerTradeNo * 商户发放凭据号(格式:商户id+日期+流水号),商户侧需保持唯一性 * @param openId * 用户的openid * @param opUserId * 操作员帐号, 默认为商户号 可在商户平台配置操作员对应的api权限 可为空 * @return 发放结果 * @see CouponResult * @see 发放代金券接口 * @throws WeixinException */ public CouponResult sendCoupon(String couponStockId, String partnerTradeNo, String openId, String opUserId) throws WeixinException { Map map = createBaseRequestMap(null); map.put("coupon_stock_id", couponStockId); map.put("partner_trade_no", partnerTradeNo); map.put("openid", openId); // openid记录数(目前支持num=1) map.put("openid_count", "1"); // 操作员帐号, 默认为商户号 可在商户平台配置操作员对应的api权限 if (StringUtil.isBlank(opUserId)) { opUserId = weixinPayAccount.getMchId(); } map.put("op_user_id", opUserId); map.put("version", "1.0"); map.put("type", "XML"); map.put("sign", weixinSignature.sign(map)); String param = XmlFormatter.map2xml(map); WeixinResponse response = getWeixinSSLExecutor().post( WeixinApis.coupon_send_uri, param); return response.getAsObject(new TypeReference() { }); } /** * 查询代金券批次 * * @param couponStockId * 代金券批次ID * @return 代金券批次信息 * @see CouponStock * @see 查询代金券批次信息接口 * @throws WeixinException */ public CouponStock queryCouponStock(String couponStockId) throws WeixinException { Map map = createBaseRequestMap(null); map.put("coupon_stock_id", couponStockId); map.put("sign", weixinSignature.sign(map)); String param = XmlFormatter.map2xml(map); WeixinResponse response = weixinRequestClient.post( WeixinApis.coupon_stock_query_uri, param); return response.getAsObject(new TypeReference() { }); } /** * 查询代金券详细 * * @param openId * 用户ID * @param couponId * 代金券ID * @param stockId * 代金劵对应的批次号 * @return 代金券详细信息 * @see CouponDetail * @see 查询代金券详细信息接口 * @throws WeixinException */ public CouponDetail queryCouponDetail(String openId, String couponId, String stockId) throws WeixinException { Map map = createBaseRequestMap(null); map.put("openid", openId); map.put("coupon_id", couponId); map.put("stock_id", stockId); map.put("sign", weixinSignature.sign(map)); String param = XmlFormatter.map2xml(map); WeixinResponse response = weixinRequestClient.post( WeixinApis.coupon_detail_query_uri, param); return response.getAsObject(new TypeReference() { }); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy