微信公众号发红包

踩过很多坑,希望这篇文可以为大家开发公众号领取红包,做个引导。更重要的是,我发现我有点忘了,所以为了下次再用到这方面的功能,特此,来做个记录

PS:可以多看看api文档,吐槽一下,微信开发api文档很坑,相比之下,支付宝api看着就舒服多了。

前期准备,公众号+有红包功能的商户号

因为没有可用的域名,所有我用了菜单点击事件

简单直接上代码,可以自己下载一个官方提供的源码对比着看。

   @RequestMapping(method = RequestMethod.POST)
    @ResponseBody
    public void weChatConnect(HttpServletRequest req, HttpServletResponse resp, HttpSession session) throws IOException{

        req.getInputStream();
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=utf-8");

        PrintWriter out=resp.getWriter();

        Map<String ,String> map= MessageUtil.xmlToMap(req);
        String fromUserName = map.get("FromUserName");
        String toUserName = map.get("ToUserName");
        String msgType = map.get("MsgType");
        String content = map.get("Content");

        session.setAttribute("requestMap",map);

        String message=null;

        System.out.println(msgType+",,,,"+map.get("Event"));

        try{

            //事件,消息自动推送
            if(Const.MsgType.MESSAGE_EVNET.equals(msgType)){
                //获取推送事件
                String eventType=map.get("Event");

                //菜单点击
                if(Const.MsgType.MESSAGE_CLICK.equals(eventType)){
                    String key=map.get("EventKey");
                    if(key.equals("sendredpack")){
                        //红包事件

                        sendRedPackController.sendRedPack(req,resp,map);
                    }

                }

            }
            out.print(message);

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            out.close();
        }

    }

 

红包领取controller

@Controller
@RequestMapping("/redhandle/")
public class SendRedPackController {

    private Logger logger = LoggerFactory.getLogger(SendRedPackController.class);

    @Autowired
    private ISendRedPackService iSendRedPackService;

    @RequestMapping(value = "sendredpack.do")
    @ResponseBody
    public void sendRedPack(HttpServletRequest req,HttpServletResponse resp,Map map) throws IOException {

       //开始发送红包
       System.out.println("红包发送开始");

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java微信公众号现金红包是一种通过在Java代码中调用微信支付接口实现的支付功能,用户可以使用现金红包来给其他用户发送一定金额的红包。以下是具体实现步骤: 首先,我们需要在微信公众平台上注册一个公众号,并进行相关设置和认证。然后,通过微信支付开发文档了解相关的API接口和参数,获取到自己的AppID、商户号和商户密钥等信息。 接下来,在Java项目中引入微信支付的SDK,可以使用第三方开源的SDK如weixin-java-pay等,或者通过HTTP请求自行实现。 然后,编写Java代码调用微信支付接口实现现金红包的功能。首先需要构建请求参数,包括发送红包的接口URL、请求方式(一般为POST)、AppID、商户号、商户密钥、随机字符串、签名等信息。可以使用Java中的HttpURLConnection类发送HTTP请求,并添加请求头信息和请求体参数。其中,签名的生成需要根据微信支付的签名规则进行加密计算,确保数据的安全性。 最后,接收到微信支付接口返回的结果后,可以对返回的数据进行解析和处理,判断红包发送状态是否成功。根据业务需求,可以将红包发送结果进行持久化存储,以备后续查询和记录使用。 需要注意的是,微信支付的红包功能需要满足一定的条件和规则,例如红包的最低金额、发送频率等,开发者需要仔细阅读微信支付文档,并根据实际需求进行相应的调整。 总的来说,通过Java编写代码调用微信支付接口实现现金红包功能需要按照微信支付的接口规范进行开发和调试,确保支付接口的安全性和稳定性,同时可以根据具体业务需求进行功能的扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值