Onex ecstore微商城发现金红包

/ 0评 / 0

接口调用请求说明

请求Url https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack
是否需要证书 是(证书及使用说明详见商户证书)
请求方式 POST

3.请求参数

字段名 字段 必填 示例值 类型 说明
随机字符串 nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 随机字符串,不长于32位
签名 sign C380BEC2BFD727A4B6845133519F3AD6 String(32) 详见签名生成算法
商户订单号 mch_billno 10000098201411111234567890 String(28) 商户订单号(每个订单号必须唯一)

组成: mch_id+yyyymmdd+10位一天内不能重复的数字。

接口根据商户订单号支持重入, 如出现超时可再调用。

商户号 mch_id 10000098 String(32) 微信支付分配的商户号
子商户号 sub_mch_id 10000090 String(32) 微信支付分配的子商户号,受理模式下必填
公众账号appid wxappid wx8888888888888888 String(32) 商户appid
提供方名称 nick_name 天虹百货 String(32) 提供方名称
商户名称 send_name 天虹百货 String(32) 红包发送者名称
用户openid re_openid oxTWIuGaIt6gTKsQRLau2M0yL16E String(32) 接受收红包的用户

用户在wxappid下的openid

付款金额 total_amount 1000 int 付款金额,单位分
最小红包金额 min_value 1000 int 最小红包金额,单位分
最大红包金额 max_value 1000 int 最大红包金额,单位分

( 最小金额等于最大金额: min_value=max_value =total_amount)

红包发放总人数 total_num 1 int 红包发放总人数

total_num=1

红包祝福语 wishing 感谢您参加猜灯谜活动,祝您元宵节快乐! String(128) 红包祝福语
Ip地址 client_ip 192.168.0.1 String(15) 调用接口的机器Ip地址
活动名称 act_name 猜灯谜抢红包活动 String(32) 活动名称
备注 remark 猜越多得越多,快来抢! String(256) 备注信息
商户logo的url logo_imgurl https://wx.gtimg.com/mch/img/ico-logo.png String(128) 商户logo的url
分享文案 share_content 快来参加猜灯谜活动 String(256) 分享文案
分享链接 share_url http://www.qq.com String(128) 分享链接
分享的图片 share_imgurl https://wx.gtimg.com/mch/img/ico-logo.png String(128) 分享的图片url

数据示例:

<xml>

<sign></sign>

<mch_billno></mch_billno>

<mch_id></mch_id>

<wxappid></wxappid>

<nick_name></nick_name>

<send_name></send_name>

<re_openid></re_openid>

<total_amount></total_amount>

<min_value></min_value>

<max_value></max_value>

<total_num></total_num>

<wishing></wishing>

<client_ip></client_ip>

<act_name></act_name>

<act_id></act_id>

<remark></remark>

<logo_imgurl></logo_imgurl>

<share_content></share_content>

<share_url></share_url>

<share_imgurl></share_imgurl>

<nonce_str></nonce_str>

</xml>

4.返回参数

字段名 变量名 必填 示例值 类型 说明
返回状态码 return_code SUCCESS String(16) SUCCESS/FAIL

此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断

返回信息 return_msg 签名失败

 

String(128) 返回信息,如非空,为错误原因

签名失败

参数格式校验错误

以下字段在return_code为SUCCESS的时候有返回
签名 sign C380BEC2BFD727A4B6845133519F3AD6 String(32) 生成签名方式详见签名生成算法
业务结果 result_code SUCCESS String(16) SUCCESS/FAIL
错误代码 err_code SYSTEMERROR String(32) 错误码信息
错误代码描述 err_code_des 系统错误 String(128) 结果信息描述
以下字段在return_code 和result_code都为SUCCESS的时候有返回
商户订单号 mch_billno 10000098201411111234567890 String(28) 商户订单号(每个订单号必须唯一)

组成: mch_id+yyyymmdd+10位一天内不能重复的数字

商户号 mch_id 10000098 String(32) 微信支付分配的商户号
公众账号appid wxappid wx8888888888888888 String(32) 商户appid
用户openid re_openid oxTWIuGaIt6gTKsQRLau2M0yL16E String(32) 接受收红包的用户

用户在wxappid下的openid

付款金额 total_amount 1000 int 付款金额,单位分
发放成功时间
微信单号

成功示例:

<xml>

<return_code><![CDATA[SUCCESS]]></return_code>

<return_msg><![CDATA[发放成功.]]></return_msg>

<result_code><![CDATA[SUCCESS]]></result_code>

<err_code><![CDATA[0]]></err_code>

<err_code_des><![CDATA[发放成功.]]></err_code_des>

<mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno>

<mch_id>10010404</mch_id>

<wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid>

<re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>

<total_amount>1</total_amount>

</xml>

失败示例:

<xml>

<return_code><![CDATA[FAIL]]></return_code>

<return_msg><![CDATA[系统繁忙,请稍后再试.]]></return_msg>

<result_code><![CDATA[FAIL]]></result_code>

<err_code><![CDATA[268458547]]></err_code>

<err_code_des><![CDATA[系统繁忙,请稍后再试.]]></err_code_des>

<mch_billno><![CDATA[0010010404201411170000046542]]></mch_billno>

<mch_id>10010404</mch_id>

<wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid>

<re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>

<total_amount>1</total_amount>

</xml>

 

5.错误码

错误代码 描述 解决方案
NOAUTH 无权限 请联系微信支付开通api权限
PARAM_ERROR 参数错误 请查看err_code_des,修改设置错误的参数
OPENID_ERROR Openid错误 根据用户在商家公众账号上的openid,获取用户在红包公众账号上的openid 错误。请核对商户自身公众号appid和用户在此公众号下的openid。
NOTENOUGH 余额不足 商户账号余额不足,请登录微信支付商户平台充值
SYSTEMERROR 系统繁忙,请再试。 可用同一商户单号再次调用,只会发放一个红包。
TIME _LIMITED 企业红包的发送时间受限 请北京时间0:00-8:00时间之外触发红包赠送
SECOND_OVER_LIMITED 企业红包的按分钟发放受限 每分钟发送红包数量不得超过1800个;(可联系微信支付wxhongbao@tencent.com调高额度)
MONEY_LIMIT 红包金额发放限制 每个红包金额必须大于1元,小于200元(可联系微信支付wxhongbao@tencent.com调高额度至4999元)

最新微信发红包接口主要代码实例

    /**
      *  amount 红包金额 /元  openid 微信用户id
      * @param undefined $arr
      * @return
      */
    public function send_redPack($payment=array())
    {
        $confPay=$this->get_weixin_pay();
        #配置项
        $this->_appId=$confPay['setting']['appId'];
        $this->_mchId=$confPay['setting']['Mchid'];
        $this->_key=$confPay['setting']['Key'];
        $payArr=array(
                    //随机字符串,长于 32 位
                    'nonce_str'=>$this->createNoncestr(),
                    //订单号
                    'mch_billno'=>$this->_mchId.date('YmdHis').rand(1000, 9999),
                    //商户号    
                    'mch_id'=>$this->_mchId,
                    //微信分配的公众账号ID(企业号corpid即为此appId)               
                    'wxappid'=>$this->_appId,
                    //提供方名称
                    'nick_name'=>$payment['nick_name'],
                    //红包发送者名称    
                    'send_name'=>$payment['send_name'],
                    //接受红包的用户用户在wxappid下的openid
                    're_openid'=>$payment['openid'],
                    //要发的红包金额-单位分      
                    'total_amount'=>$payment['money']*100,
                    //红包发放总人数         
                    'total_num'=>1,
                    //最小红包金额,单位分
                    'min_value'=>$payment['money']*100,
                    //最大红包金额,单位分
                    'max_value'=>$payment['money']*100,
                    //红包祝福   
                    'wishing'=>$payment['wishing'],
                    //调用接口的机器 Ip 地址
                    'client_ip'=>$_SERVER['REMOTE_ADDR'],
                    //活动名称
                    'act_name'=>$payment['actname'],
                    //活动名称
                    'remark'=>$payment['remark'],
                );
                if(!$payArr['re_openid']) {
                     $result['result_code']='缺少用户openid';
                     return $result;
                }
        $payArr['sign'] =$this->getSign($payArr);
     //echo '<pre>';var_dump($payArr);exit;
        $postXml = $this->arrayToXml($payArr);
        //echo '<pre>';var_dump($postXml,$payArr);exit;
        $responseXml = $this->curl_post_ssl($this->pay_url,$postXml);
        $result = $this->xmlToArray($responseXml);
        return $result;
    }

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注