`

微信红包发送问题

阅读更多

         微信红包发送准备条件

  • 公众号支持发送红包功能
  • 每次发送红包不能低于1元
  • 公众号支付证书下载
  • 获取到要发送红包的微信的openID/金额
        $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
        $body = [
            'nonce_str' => sprintf('%10d%10d', rand(0, 9999999999), rand(0, 9999999999)),
            'mch_billno' => sprintf('%s%s2%09d', $mchid, date('Ymd'), $hongBaoLog->getId()),
            'mch_id' => $mchid,
            'wxappid' => $appid,
            'nick_name' => $data['nickname'],
            'send_name' => $data['send_name'],
            're_openid' => $data['openid'],
            'total_amount' => $data['amount'],
            'min_value' => $data['amount'],
            'max_value' => $data['amount'],
            'total_num' => 1,
            'wishing' => $data['wishing'],
            'client_ip' => '115.155.155.155',
            'act_name' => $data['act_name'],
            'remark' => $data['remark'],
        ];
        ksort($body);
        $query = urldecode(http_build_query($body));
        $stringSign = sprintf('%s&key=%s', $query, $key);
        $sign = md5($stringSign);
        $sign = strtoupper($sign);
        $body['sign'] = $sign;

        $xml = new \SimpleXMLElement('<xml></xml>');
        foreach ($body as $k => $v) {
            $xml->addChild($k, $v);
        }

        $certPath = sprintf('%s/misc/all.pem', $this->container->getParameter('kernel.root_dir'));

            $xml = $guzzle->post($url, [
                'body' => $xml->asXml(),
                'cert' => $certPath,
            ])->xml();

 

           请求返回处理

  • 返回是XML文件,需要解析xml文件拿到返回的数据
  • 涉及金额问题,根据返回值,如果有异常发送,必定要发送报错原因告诉给维护人员,并且要注意写日志!

 

            if (!isset($xml->result_code)) {
                return new JsonResponse(Commons::getResult('wechat api response result_code is null','500'));

            }

            if ('SUCCESS' != $xml->result_code) {
                $message = \Swift_Message::newInstance()
                    ->setSubject('红包接口通知!')
                    ->setFrom($this->getParameter('mailer_user'))
                    ->setTo($this->getParameter('app_error_receipants'))
                    ->setBody("$xml->return_msg"."红包发送失败,请知悉!");

                $this->get('mailer')->send($message);
                //将报错信息发送出去
                return new JsonResponse(Commons::getResult("$xml->return_msg",'500'));
            }
            $hongBaoLog->send();

 

 大笑求赞,留言

 

1
1
分享到:
评论
1 楼 DemonLi 2017-03-16  
   走过路过  谈一谈

相关推荐

    html+css+js 仿微信红包

    在仿微信红包的项目中,HTML将用于创建红包发送界面、红包接收列表以及用户交互的各个组件,如输入框、按钮等。例如,我们需要一个发送红包的按钮,一个输入金额的地方,以及显示红包信息的容器等。 接着,CSS...

    Java代码实现微信红包功能

    在Java编程环境中,微信红包功能的实现涉及到一系列的面向对象设计、接口定义、类继承以及事件处理等技术。下面将详细解析这个项目的关键知识点。 首先,我们要理解微信红包的核心功能,包括红包发放、红包领取、...

    微信红包助手_Android版1.2.zip

    微信红包是微信支付推出的一项功能,允许用户在聊天窗口中发送一定金额的钱包,接收者可以在规定时间内领取。微信红包分为普通红包和拼手气红包两种,前者每个红包金额固定,后者则随机分配给领取人。红包助手需要...

    php微信红包发送类简单实例

    php微信红包发送类简单实例,只有一个文件,类和调用都在里面,只要修改参数就可以了 特点是有发送的xml和返回的xml数据生成,方便查看发送失败的错误原因是什么。 经测试阿里云免费主机是不支持发红包的,一直提示...

    weixin, 微信裂变红包&微信红包接口&企业付款.zip

    4. 查询红包记录:获取红包发送、接收及使用情况的数据,用于统计分析。 调用微信红包接口需要完成以下步骤: - 注册成为微信支付商户并获得API密钥。 - 使用商户号、API密钥进行签名,确保请求的安全性。 - 调用...

    .net版微信红包开发Demo

    例如,调用“统一下单”接口创建红包订单,然后通过“发放红包”接口将红包发送到指定用户。 2. **配置参数**:描述中提到,配置文件(config文件)用于存储商户信息,包括AppID、商户号、支付密钥等关键数据。这些...

    微信发送红包证书

    微信发送红包功能是微信支付平台提供的一项服务,它允许用户向其他微信用户发送电子红包作为礼物...开发者需要具备扎实的技术基础,同时对金融交易的安全规范有深入的理解,才能成功地开发出稳定、安全的微信红包功能。

    PHP微信红包生成代码分享

    主要介绍了PHP微信红包API接口,针对PHP微信公众号自动发送红包API,PHP微信红包API接口的主要代码进行分析,感兴趣的小伙伴们可以参考一下

    微信公众号发送红包

    微信公众号向用户发送微信红包程序,通过Java实现

    微信红包API事例

    微信红包API事例是微信支付服务中的一个重要组成部分,它允许开发者在自己的应用程序中集成发送和接收红包的功能。这个API主要用于企业或商家与用户之间进行互动,例如节日促销、奖励用户或者进行抽奖活动等。要使用...

    微信企业红包发送

    微信红包,发送微信企业红包。用户领取后,直接存到用户零钱!

    微信支付 微信红包 JAVA 几行代码搞定

    微信支付、扫码支付和微信红包是微信提供的便捷移动支付功能,对于开发者来说,能够快速集成这些功能至关重要。本文将详细讲解如何使用JAVA实现微信支付、扫码支付和微信红包的接口调用,以及如何进行验签操作,使得...

    微信发送红包 亲测可用SendWexinRedBag.zip

    "SendWexinRedBag.zip"中的代码应该包含了一个基本的红包发送流程,但你可能需要根据实际需求进行适当的扩展和优化。 总之,微信发送红包功能的实现涉及到与微信支付API的交互,理解并熟练掌握C#和微信支付SDK的...

    微信发红包开发接口ThinkPHP3.1版本

    微信红包是微信支付推出的一种社交互动方式,用户可以通过发送红包给个人或群聊中的其他用户。红包分为普通红包(随机金额分配给指定人数)和拼手气红包(金额随机分配给所有人)。微信红包接口允许开发者在自己的...

    仿微信红包 1

    微信红包在社交网络上非常流行,它允许用户向朋友发送虚拟红包,增加互动性。以下是一些关键的技术点和实现步骤: 1. **HTML结构**: - 创建基本的HTML结构,包括红包发放的按钮、接收者输入框、红包金额设置以及...

    微信红包拆分

    在微信红包的实际场景中,可能会有多人同时抢红包,这就涉及到并发处理的问题。微信服务器需要处理大量并发请求,并确保每个用户只能抢到一个红包,这需要高效的数据库事务处理和队列管理技术。 6. **安全性**: ...

    基于PHP微信红包的算法探讨_.docx

    微信红包是一个非常流行的社交媒体应用,用户可以通过微信红包来发送礼物或红包给好友、家人或同事。微信红包可以是实物红包,也可以是虚拟红包。微信红包的出现使得社交媒体变得更加有趣和互动。 微信红包的算法...

Global site tag (gtag.js) - Google Analytics