# 小程序红包前期准备
对于小程序红包坑是真的多。看官网的文档,对商户号的要求就一堆了,本身的接口也是坑巨多。
## 小程序发红包的方式比较顺利的有两种方式
1.使用企业付款到零钱(常用) 2.使用公众号付款
千万不要使用小程序红包功能,对应的支付接口是现金红包接口,这个接口中,有个字段是红包类型字段,
我在商户设置这个红包类型字段根本设置不成功,它要设置一个支付调用的IP地址,然后你会发现这个IP根本设置不成功。
## 小程序发红包-企业付款到零钱
申请一个小程序,然后申请一个可用的商户号,且该商户号如果要使用支付功能还要满足以下要求:
然后在商户号的产品中心-企业付款到零钱-开通 ,设置好秘钥证书和appKey
# 小程序红包后台开发
开发就直接按照文档的来写就可以了,<https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2>
因为微信的接口要求使用HTTPS协议,所以需要引用okHttp3,而okHttp3要用到okoi,项目引入以下两个jar包,使用lib形式导入
代码如下:
```
import com.tecsun.access.modules.common.config.WechatConfig;
import com.tecsun.access.modules.common.enums.SignTypeEnum;
import com.tecsun.access.modules.dto.redpack.my.MyRedPack;
import com.tecsun.access.modules.dto.redpack.my.RedPackStatusDTO;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import okhttp3.internal.platform.Platform;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.ssl.SSLContexts;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.net.ssl.*;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.security.*;
import java.security.cert.CertificateException;
import java.util.*;
/**
* @Author echo
* @Date 2020/7/30 14:51
* @Description 红包工具类
*/
@Component
@Slf4j
public class MyRedPackUtil {
@Autowired
private WechatConfig wechatConfig;
/**
* @Author echo
* @Description //红包发送
* @Date 10:21 2020/7/31
**/
public String sendRedPack(MyRedPack redPack)throws Exception{
//配置公共参数
redPack.setNonce_str(getRandom