微信公众平台发红包功能与企业付款类似,首先微信商户里是需要有余额的。

请求的地址是:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack

官方文档:https://pay.weixin.qq.com/wiki/doc/api/cash_coupon.php?chapter=13_5

测试代码如下,有需要的朋友可以自己根据的需求改一下,主要分一下几个步骤:

(充值、网页授权获取openid、获取企业付款需要的信息、发出企业付款请求)。

1、充值

在微信商户平台中:资金管理->充值(由于企业付款将使用商户的可用余额进行支付,需确保可用余额充足。查看可用余额、充值、提现请登录商户平台“资金管理”进行操作。https://pay.weixin.qq.com/ 注意:商户的可用余额与商户微信支付收款资金并非同一账户,需要单独充值。)

2、网页授权

通过网页授权获取用户的openid(企业向微信用户个人付款 目前支持向指定微信用户的openid付款。)

具体获取方法可查官方api或http://blog.csdn.net/u010533511/article/details/48085585 。

3、获取企业付款需要的信息

$mch_appid=$appid;
$mchid='10000005';//商户号
$nonce_str='fhb'.rand(100000, 999999);//随机数
$partner_trade_no="10029435".rand(1000000000, 9999999999);//商户订单号
$openid=$openids;//用户唯一标识
$wishing="感谢您参加猜灯谜活动,祝您元宵节快乐!";//红包祝福语
$act_name="猜灯谜抢红包活动";//活动名称
$sremark="猜越多得越多,快来抢!";//备注
$total_num="1";//
$total_amount="100";//
$send_name="测试名称";//
$spbill_create_ip=$_SERVER["REMOTE_ADDR"];//请求ip

//封装数组
$dataArr=array();
$dataArr['mch_billno']=$partner_trade_no;//商户订单号
$dataArr['mch_id']=$mchid;//商户号
$dataArr['wxappid']=$mch_appid;//公众号appid
$dataArr['send_name']=$send_name;//红包发送者名称
$dataArr['re_openid']=$openid;//用户相对于公众号的唯一ID
$dataArr['total_amount']=$total_amount;//发放总金额1-200元之间
$dataArr['total_num']=$total_num;//发放数量
$dataArr['wishing']=$wishing;//祝福语
$dataArr['client_ip']=$spbill_create_ip;//客户端ip
$dataArr['act_name']=$act_name;//活动名称
$dataArr['remark']=$sremark;//备注
$dataArr['nonce_str']=$nonce_str;//随机数
$sign=getSign($dataArr);
echo "-----<br/>签名:".$sign."<br/>*****";//die;

$data="<xml>
<sign><![CDATA[".$sign."]]></sign>
<mch_billno><![CDATA[".$partner_trade_no."]]></mch_billno>
<mch_id><![CDATA[".$mchid."]]></mch_id>
<wxappid><![CDATA[".$mch_appid."]]></wxappid>
<send_name><![CDATA[".$send_name."]]></send_name>
<re_openid><![CDATA[".$openid."]]></re_openid>
<total_amount><![CDATA[".$total_amount."]]></total_amount>
<total_num><![CDATA[".$total_num."]]></total_num>
<wishing><![CDATA[".$wishing."]]></wishing>
<client_ip><![CDATA[".$spbill_create_ip."]]></client_ip>
<act_name><![CDATA[".$act_name."]]></act_name>
<remark><![CDATA[".$sremark."]]></remark>
<nonce_str><![CDATA[".$nonce_str."]]></nonce_str>
</xml>";

4、发出企业付款请求

$ch = curl_init ();
//红包链接
$MENU_URL="https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";
curl_setopt ( $ch, CURLOPT_URL, $MENU_URL );
curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "POST" );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );

$zs1="E:/new999zcmf/wxzftou/apiclient_cert.pem";
$zs2="E:/new999zcmf/wxzftou/apiclient_key.pem";
curl_setopt($ch,CURLOPT_SSLCERT,$zs1);
curl_setopt($ch,CURLOPT_SSLKEY,$zs2);
// curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01;
// Windows NT 5.0)');
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt ( $ch, CURLOPT_AUTOREFERER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );

$info = curl_exec ( $ch );

if (curl_errno ( $ch )) {
echo 'Errno' . curl_error ( $ch );
}

curl_close ( $ch );
echo "-----<br/>请求返回值:";
var_dump($info);
echo "<br/>*****";die;

根据返回值,做具体处理。

------------------------getSign()方法如下----------------------

/**
 * 作用:生成签名
 */
function getSign($Obj)
{
var_dump($Obj);//die;
foreach ($Obj as $k => $v)
{
$Parameters[$k] = $v;
}
//签名步骤一:按字典序排序参数
ksort($Parameters);
$String = formatBizQueryParaMap($Parameters, false);//方法如下
//echo '【string1】'.$String.'</br>';
//签名步骤二:在string后加入KEY
$String = $String."&key=xxxxxcab639xxxxxxxxbd89345ooi";
//echo "【string2】".$String."</br>";
//签名步骤三:MD5加密
$String = md5($String);
//echo "【string3】 ".$String."</br>";
//签名步骤四:所有字符转为大写
$result_ = strtoupper($String);
//echo "【result】 ".$result_."</br>";
return $result_;
}

/**
 * 作用:格式化参数,签名过程需要使用
 */
function formatBizQueryParaMap($paraMap, $urlencode)
{
var_dump($paraMap);//die;
$buff = "";
ksort($paraMap);
foreach ($paraMap as $k => $v)
{
if($urlencode)
{
$v = urlencode($v);
}
//$buff .= strtolower($k) . "=" . $v . "&";
$buff .= $k . "=" . $v . "&";
}
$reqPar;
if (strlen($buff) > 0)
{
$reqPar = substr($buff, 0, strlen($buff)-1);
}
var_dump($reqPar);//die;
return $reqPar;
}

示例demo:http://download.csdn.net/detail/u010533511/9115521

微信公众平台发红包接口相关推荐

  1. 【微信公众号发红包转账】微信公众号上手机网页接收请求,通过公众号给用户发红包 开发流程...

    有了微信支付 的开发做铺垫,相关的微信其他业务处理起来逻辑就能清晰很多. 准备好这两个架包 ------------------------------------------------------ ...

  2. php 接入微信 验证,PHP实现微信公众平台企业号验证接口

    这篇文章主要介绍了PHP编程之微信公众平台企业号验证接口,是通过回调操作实现的企业号验证功能接口,需要的朋友可以参考下 本文实例讲述了PHP微信公众平台企业号验证接口.分享给大家供大家参考,具体如下: ...

  3. 怎样在微信公众平台发文件?

    现在可以在微信公众平台发文件了. 借助"微附件"小程序,可以很容易实现:微信公众号文章发送文件, 自定义菜单发送文件,自动回复一个文件. 微信公众号的粉丝点击文件名字,就可以下载文 ...

  4. 微信公众平台企业号验证接口、回调 PHP版

    微信公众平台企业号验证接口.回调 PHP版,本人为了解决这个企业号的验证和发送消息的问题,整整研究了几天时间,因为微信企业号刚推出来,网上资料太少了!后来在一些朋友的帮助下和本人反复调试完善下,终于整 ...

  5. 微信公众平台高级群发接口(转载)

    出自微信公众平台开发者文档 在公众平台网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限.而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能 ...

  6. 微信公众平台自定义菜单接口API指南

    微信公众平台开发模式自定义菜单接口API指南 开发实现方法,请查看 微信公众平台开发(58)自定义菜单 简介 开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和 ...

  7. 微信公众平台卡券API接口开发指南

    文章目录 说明 卡券术语介绍 卡券生命周期流程图 准备 申请开发账号 公众平台开发配置 公众号开发信息配置 填写服务器配置并验证有效性 申请微信认证及开通微信卡券功能 卡券分类 普通卡券 会员卡券 朋 ...

  8. [转]微信公众平台(测试接口)开发前的准备工作(转载自walkingmanc的专栏)

    本文转自:http://blog.csdn.net/jiangweicpu/article/details/21228949 http://blog.csdn.net/walkingmanc/arti ...

  9. 微信“公众平台测试账号”接口调试指南

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 实际开发时请自行参阅官方文档:http://mp.weixin.qq. ...

  10. 微信“公众平台测试账号”接口接入指南

    本文主要讲解微信公众号Struts2框架进行服务器验证接口对接. 使用工具:MyEclipse 准备工作: 1.打开MyEclipse,新建一个Web项目,比如"WXLocalTest&qu ...

最新文章

  1. select 和 order by
  2. 问题-[ACCESS2007]怎么显示MsysObjects
  3. 密码的复杂化#个人隐私保护系列#
  4. linux操作系统应急方案,服务器操作系统应急预案
  5. js立即调用的函数表达式
  6. 接受许可协议 将禁用_知识产权小知识|知识产权许可
  7. python文件写入字典格式输出_Python把对应格式的csv文件转换成字典类型存储脚本的方法...
  8. Spring的两种属性注入方式
  9. bh1750采集流程图_重大更新:STM32空气监测仪,OneNET物联网平台实时查看(原理图、PCB源文件、程序源码等)...
  10. Java Stream API入门篇
  11. springboot 优雅停机_Spring boot 2.3优雅下线,距离生产还有多远?
  12. Form.close与Application.Exit()的区别
  13. 漫画:有趣的 “切蛋糕“ 问题
  14. Windows无法安装到这个磁盘 选中的磁盘具有MBR分区表解决方法
  15. 苹果mac专业的图像后期处理软件:Lightroom Classic
  16. css focus 选择器用于选取获得焦点的元素
  17. 各种采样,上采样,下采样,欠采样,子采样
  18. 转: 诺贝尔奖得主:东亚教育浪费了太多生命
  19. xlsx表格怎么筛选重复数据_excel表格如何过滤筛选重复项内容
  20. 怎么把PDF翻译成中文

热门文章

  1. 区块链是大数据生态圈技术之一_ODC构建普惠金融生态圈|区块链+大数据
  2. ActivityScenario启动失败Activity never becomes requested state [RESUMED, STARTED, CREATED, DESTROYED]
  3. 对接快递100快递管家API之如何实现自动打单
  4. 笔记本计算机无法启动怎么解决,笔记本开机进不了系统,教您笔记本开机无法进入系统怎么办...
  5. 服务器sni协议,SNI协议分析
  6. realize与recognize辨析
  7. 以太坊教程-使用 remix-ide 开发以太坊智能合约
  8. hdu4311 Meeting point-1 求最小的曼哈顿距离和
  9. 赵鼎新 | 中国大一统的历史根源
  10. DDOS攻击是什么意思?日本奥运官网遭逾4亿次网络攻击