楚楚街红包!微信红包返回失败!!NO_AUTH!发放失败,此请求可能存在风险,红包无法提现,怎么办?

本文讲的是微信支付现金红包接口说明及应用实例代码,
微信支付现金红包接口正式开放,只需开通微信支付,即可接入现金红包。通过现金红包接口,公众号开发者可以策划相关运营活动,向用户发放微信支付现金红包,更好的达到品牌推广及回馈用户的效果。具体能力如下:
1、商户调用接口时,通过指定发送
微信支付现金红包接口正式开放,只需开通微信支付,即可接入现金红包。通过现金红包接口,公众号开发者可以策划相关运营活动,向用户发放微信支付现金红包,更好的达到品牌推广及回馈用户的效果。具体能力如下:
1、商户调用接口时,通过指定发送对象以及发送金额的方式发放红包,这样的方式,允许商户灵活的应用于各种各样丰富的活动场景
2、领取到红包后,用户的资金直接进入微信零钱,避免繁复的领奖流程,带给用户微信支付原生的流畅体验
微信红包发送规则
1. 发送频率规则
 ◆ 每分钟发送红包数量不得超过1800个;
 ◆ 北京时间0:00-8:00不触发红包赠送;(如果以上规则不满足您的需求,请发邮件至获取升级指引)
2. 红包规则
 ◆ 单个红包金额介于[1.00元,200.00元]之间;
 ◆ 同一个红包只能发送给一个用户;(如果以上规则不满足您的需求,请发邮件至获取升级指引)
商户侧调用红包接口流程
1. 登录微信支付商户平台下载证书以及充值
在调用接口前,请商户使用微信支付商户号登录微信支付商户平台完成下述工作:
微信支付商户平台地址为pay.。微信支付商户号会在商户申请微信支付成功后,通过开户邮件发送给您。请不要使用微信公众平台账号或者appid登录。如果您登录时遇到问题,请联系微信支付小助手
 ◆ 下载证书
商户调用微信红包接口时,服务器会进行证书验证,请在商户平台下载证书
 ◆ 充值
 发放现金红包将扣除商户的可用余额,请注意,可用余额并不是微信支付交易额,需要预先充值,确保可用余额充足。查看可用余额、充值、提现请登录微信支付商户平台,进入“资金管理”菜单,进行操作
2. 微信红包接口调用流程
 ◆ 后台API调用:待进入联调过程时与开发进行详细沟通;
 ◆ 告知服务器:告知服务器接收微信红包的用户openID,告知服务器该用户获得的金额;
 ◆ 从商务号扣款:服务器获取信息后从对应的商务号扣取对应的金额;
 ◆ 调用失败:因不符合发送规则,商务号余额不足等原因造成调用失败,反馈至调用方;
 ◆ 发送成功:以微信红包公众账号发送对应红包至对应用户;
用户交互流程
调用现金红包接口,发放成功后,用户领取红包流程如下:
步骤(一):收到领取红包消息,步骤(二):点击领取消息,拆红包
接口详细说明
1.红包发放说明
用于企业向微信用户个人发现金红包
目前支持向指定微信用户的openid发放指定金额红包。(获取openid参见微信公众平台开发者: 网页授权获取用户基本信息)
接口参数与用户领用实际效果对应关系如下:
如需操作请登录https://pay./
2.接口调用请求说明
https://api.mch./mmpaymkttransfers/sendredpack
是否需要证书
是(证书及使用说明详见商户证书)
3.请求参数
随机字符串
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
String(32)
随机字符串,不长于32位
C380BEC2BFD727A4BF3AD6
String(32)
详见签名生成算法
商户订单号
mch_billno
String(28)
商户订单号(每个订单号必须唯一)
组成: mch_id+yyyymmdd+10位一天内不能重复的数字。
接口根据商户订单号支持重入, 如出现超时可再调用。
String(32)
微信支付分配的商户号
sub_mch_id
String(32)
微信支付分配的子商户号,受理模式下必填
公众账号appid
String(32)
提供方名称
String(32)
提供方名称
String(32)
红包发送者名称
用户openid
oxTWIuGaIt6gTKsQRLau2M0yL16E
String(32)
接受收红包的用户
用户在wxappid下的openid
total_amount
付款金额,单位分
最小红包金额
最小红包金额,单位分
最大红包金额
最大红包金额,单位分
( 最小金额等于最大金额: min_value=max_value =total_amount)
红包发放总人数
红包发放总人数
total_num=1
红包祝福语
感谢您参加猜灯谜活动,祝您元宵节快乐!
String(128)
红包祝福语
192.168.0.1
String(15)
调用接口的机器Ip地址
猜灯谜抢红包活动
String(32)
猜越多得越多,快来抢!
String(256)
商户logo的url
logo_imgurl
/mch/img/ico-logo.png
String(128)
商户logo的url
share_content
快来参加猜灯谜活动
String(256)
String(128)
分享的图片
share_imgurl
/mch/img/ico-logo.png
String(128)
分享的图片url
数据示例:
&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&
4.返回参数
返回状态码
return_code
String(16)
SUCCESS/FAIL
此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
return_msg
String(128)
返回信息,如非空,为错误原因
参数格式校验错误
以下字段在return_code为SUCCESS的时候有返回
C380BEC2BFD727A4BF3AD6
String(32)
生成签名方式详见签名生成算法
result_code
String(16)
SUCCESS/FAIL
SYSTEMERROR
String(32)
错误码信息
错误代码描述
err_code_des
String(128)
结果信息描述
以下字段在return_code 和result_code都为SUCCESS的时候有返回
商户订单号
mch_billno
String(28)
商户订单号(每个订单号必须唯一)
组成: mch_id+yyyymmdd+10位一天内不能重复的数字
String(32)
微信支付分配的商户号
公众账号appid
String(32)
用户openid
oxTWIuGaIt6gTKsQRLau2M0yL16E
String(32)
接受收红包的用户
用户在wxappid下的openid
total_amount
付款金额,单位分
发放成功时间
成功示例:
&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[6545]]&&/mch_billno&
&mch_id&&/mch_id&
&wxappid&&![CDATA[wx6fa7e3bab7e15415]]&&/wxappid&
&re_openid&&![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]&&/re_openid&
&total_amount&1&/total_amount&
失败示例:
&return_code&&![CDATA[FAIL]]&&/return_code&
&return_msg&&![CDATA[系统繁忙,请稍后再试.]]&&/return_msg&
&result_code&&![CDATA[FAIL]]&&/result_code&
&err_code&&![CDATA[]]&&/err_code&
&err_code_des&&![CDATA[系统繁忙,请稍后再试.]]&&/err_code_des&
&mch_billno&&![CDATA[6542]]&&/mch_billno&
&mch_id&&/mch_id&
&wxappid&&![CDATA[wx6fa7e3bab7e15415]]&&/wxappid&
&re_openid&&![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]&&/re_openid&
&total_amount&1&/total_amount&
请联系微信支付开通api权限
PARAM_ERROR
请查看err_code_des,修改设置错误的参数
OPENID_ERROR
Openid错误
根据用户在商家公众账号上的openid,获取用户在红包公众账号上的openid 错误。请核对商户自身公众号appid和用户在此公众号下的openid。
商户账号余额不足,请登录微信支付商户平台充值
SYSTEMERROR
系统繁忙,请再试。
可用同一商户单号再次调用,只会发放一个红包。
TIME _LIMITED
企业红包的发送时间受限
请北京时间0:00-8:00时间之外触发红包赠送
SECOND_OVER_LIMITED
企业红包的按分钟发放受限
每分钟发送红包数量不得超过1800个;(可联系微信支付调高额度)
MONEY_LIMIT
红包金额发放限制
每个红包金额必须大于1元,小于200元(可联系微信支付调高额度至4999元)
最新微信发红包接口实例下面是一个类。使用方法:
$arr['openid']='ojgTTt8oF9VdYcGsJMACHpA-jy1U';
$arr['hbname']="提现申请";
$arr['body']="您的提现申请已经成功";
$arr['fee']=1;
$comm = new Common_util_pub();
$re = $comm-&sendhongbaoto($arr);
var_dump($re);
注意证书位置和 商户后台设置的key需要修改。
header("Content-type: text/ charset=utf-8");
* 现金红包接口
*作者博客 http://shanmao.me
class Common_util_pub
* hbname 红包名称
fee 红包金额 /元
openid 微信用户id
* @param undefined $arr
public function sendhongbaoto($arr){
//$comm = new Common_util_pub();
$data['mch_id'] = '';
$data['mch_billno'] = ''.date("Ymd",time()).date("His",time()).rand();
$data['nonce_str'] = self::createNoncestr();
$data['re_openid'] = $arr['openid'];
$data['wxappid'] = 'wx8axxxxxbac4905';
$data['nick_name'] = $arr['hbname'];
$data['send_name'] = $arr['hbname'];
$data['total_amount'] = $arr['fee']*100;
$data['min_value'] = $arr['fee']*100;
$data['max_value'] = $arr['fee']*100;
$data['total_num'] = 1;
$data['client_ip'] = $_SERVER['REMOTE_ADDR'];
$data['act_name'] = '测试活动';
$data['remark'] = '备注一下';
$data['wishing'] = $arr['body'];
if(!$data['re_openid']) {
$rearr['return_msg']='缺少用户openid';
$data['sign'] = self::getSign($data);
$xml = self::arrayToXml($data);
//var_dump($xml);
$url ="https://api.mch./mmpaymkttransfers/sendredpack";
$re = self::wxHttpsRequestPem($xml,$url);
$rearr = self::xmlToArray($re);
function trimString($value)
if (null != $value)
if (strlen($ret) == 0)
作用:产生随机字符串,不长于32位
public function createNoncestr( $length = 32 )
$chars = "abcdefghijklmnopqrstuvwxyz";
for ( $i = 0; $i & $ $i++ )
$str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);
作用:格式化参数,签名过程需要使用
function formatBizQueryParaMap($paraMap, $urlencode)
$buff = "";
ksort($paraMap);
foreach ($paraMap as $k =& $v)
if($urlencode)
$v = urlencode($v);
//$buff .= strtolower($k) . "=" . $v . "&";
$buff .= $k . "=" . $v . "&";
if (strlen($buff) & 0)
$reqPar = substr($buff, 0, strlen($buff)-1);
return $reqP
作用:生成签名
public function getSign($Obj)
foreach ($Obj as $k =& $v)
$Parameters[$k] = $v;
//签名步骤一:按字典序排序参数
ksort($Parameters);
$String = $this-&formatBizQueryParaMap($Parameters, false);
//echo '【string1】'.$String.'&/br&';
//签名步骤二:在string后加入KEY
$String = $String."&key="."254554sefg4exxxxxxxxs5cds1"; // 商户后台设置的key
//echo "【string2】".$String."&/br&";
//签名步骤三:MD5加密
$String = md5($String);
//echo "【string3】 ".$String."&/br&";
//签名步骤四:所有字符转为大写
$result_ = strtoupper($String);
//echo "【result】 ".$result_."&/br&";
return $result_;
作用:array转xml
function arrayToXml($arr)
$xml = "&xml&";
foreach ($arr as $key=&$val)
if (is_numeric($val))
$xml.="&".$key."&".$val."&/".$key."&";
$xml.="&".$key."&&![CDATA[".$val."]]&&/".$key."&";
$xml.="&/xml&";
作用:将xml转为array
public function xmlToArray($xml)
//将XML转为array
$array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $array_
public function wxHttpsRequestPem( $vars,$url, $second=30,$aHeader=array()){
$ch = curl_init();
//超时时间
curl_setopt($ch,CURLOPT_TIMEOUT,$second);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
//这里设置代理,如果有的话
//curl_setopt($ch,CURLOPT_PROXY, '10.206.30.98');
//curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
//以下两种方式需选择一种
//第一种方法,cert 与 key 分别属于两个.pem文件
//默认格式为PEM,可以注释
curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).'/hongbao/apiclient_cert.pem');
//默认格式为PEM,可以注释
curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).'/hongbao/apiclient_key.pem');
curl_setopt($ch,CURLOPT_CAINFO,'PEM');
curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/hongbao/rootca.pem');
//第二种方式,两个文件合成一个.pem文件
//curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem');
if( count($aHeader) &= 1 ){
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
$data = curl_exec($ch);
if($data){
curl_close($ch);
$error = curl_errno($ch);
echo "call faild, errorCode:$error\n";
curl_close($ch);
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索接口
微信支付现金红包接口、微信现金红包接口、支付宝现金红包、支付宝10元现金红包、微信现金红包接口demo,以便于您获取更多的相关知识。
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...
云栖社区()为您免费提供相关信息,包括
的信息,还有微信支付现金红包接口、微信现金红包接口、支付宝现金红包、支付宝10元现金红包、微信现金红包接口demo等
,所有相关内容均不代表云栖社区的意见!

我要回帖

更多关于 楚楚街大微信客联盟 的文章

 

随机推荐