Java商户发送微信红包给用户

本文记录使用Java按照微信支付的开发者文档,实现向用户发送微信红包的过程。涉及红包产品说明、操作指导,以及关键参数的封装和XML消息转换。
摘要由CSDN通过智能技术生成

在一定的逻辑下执行发送微信红包给用户,为了加深印象记录一下,友好的方法欢迎提出!

在微信支付-->开发者文档中,能看到  现金红包-->产品说明/操作指导的文档,如下


然后,这里需要注意的地方


在这里有请求的参数,根据这个封装需要的实体类,如下:

/**
 * 微信现金红包实体类
 * @author apple
 *
 */
public class WeixinRedPacket {
	private String nonce_str;//随机字符串,不长于32位
	private String sign;//签名
	private String mch_billno;//商户订单号	
	private String mch_id;//商户号	
	private String wxappid;//公众账号appid	
	private String nick_name;//必填字段
	private String send_name;//商户名称
	private String re_openid;//用户openid	
	private String total_amount;//付款金额	
	private String total_num;//红包发放总人数 必须为1
	private String wishing;//红包祝福语	
	private String client_ip;//Ip地址
	private String act_name;//活动名称
	private String remark;//备注
	private String consume_mch_id;//资金授权商户号 服务商替特约商户发放时使用
	public String getNonce_str() {
		return nonce_str;
	}
	public void setNonce_str(String nonce_str) {
		this.nonce_str = nonce_str;
	}
	public String getSign() {
		return sign;
	}
	public void setSign(String sign) {
		this.sign = sign;
	}
	public String getMch_billno() {
		return mch_billno;
	}
	public void setMch_billno(String mch_billno) {
		this.mch_billno = mch_billno;
	}
	public String getMch_id() {
		return mch_id;
	}
	public void setMch_id(String mch_id) {
		this.mch_id = mch_id;
	}
	public String getWxappid() {
		return wxappid;
	}
	public void setWxappid(String wxappid) {
		this.wxappid = wxappid;
	}
	public String getNick_name() {
		return nick_name;
	}
	public void setNick_name(String nick_name) {
		this.nick_name = nick_name;
	}
	public String getSend_name() {
		return send_name;
	}
	public void setSend_name(String send_name) {
		this.send_name = send_name;
	}
	public String getRe_openid() {
		return re_openid;
	}
	public void setRe_openid(String re_openid) {
		this.re_openid = re_openid;
	}
	public String getTotal_amount() {
		return total_amount;
	}
	public void setTotal_amount(String total_amount) {
		this.total_amount = total_amount;
	}
	public String getTotal_num() {
		return total_num;
	}
	public void setTotal_num(String total_num) {
		this.total_num = total_num;
	}
	public String getWishing() {
		return wishing;
	}
	public void setWishing(String wishing) {
		this.wishing = wishing;
	}
	public String getClient_ip() {
		return client_ip;
	}
	public void setClient_ip(String client_ip) {
		this.client_ip = client_ip;
	}
	public String getAct_name() {
		return act_name;
	}
	public void setAct_name(String act_name) {
		this.act_name = act_name;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	public String getConsume_mch_id() {
		return consume_mch_id;
	}
	public void setConsume_mch_id(String consume_mch_id) {
		this.consume_mch_id = consume_mch_id;
	}

}
随后,需要生成32位字符串

import java.net.InetAddress;

/**
 * 生成32位字符串
 * */
public class UUIDHexGeneratorutil {
	private String sep = "";


	private static final int IP;


	private static short counter = (short) 0;


	private static final int JVM = (int) (System.currentTimeMillis() >>> 8);


	private static UUIDHexGeneratorutil uuidgen = new UUIDHexGeneratorutil();


	static {
		int ipadd;
		try {
			ipadd = toInt(InetAddress.getLocalHost().getAddress());
		} catch (Exception e) {
			ipadd = 0;
		}
		IP = ipadd;
	}


	public static UUIDHexGeneratorutil getInstance() {
		return uuidgen;
	}


	public static int toInt(byte[] bytes) {
		int result = 0;
		for (int i = 0; i < 4; i++) {
			result = (result << 8) - Byte.MIN_VALUE + (int) bytes[i];
		}
		return result;
	}


	protected String format(int intval) {
		String formatted = Integer.toHexString(intval);
		StringBuffer buf = new StringBuffer("00000000");
		buf.replace(8 - formatted.length(), 8, formatted);
		return buf.toString();
	}


	protected String format(short shortval) {
		String formatted = Integer.toHexString(shortval);
		StringBuffer buf = new StringBuffer("0000");
		buf.replace(4 - formatted.length(), 4, formatted);
		return buf.toString();
	}


	protected int getJVM() {
		return JVM;
	}


	protected synchronized short getCount() {
		i
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值