微信现金红包,是微信支付商户平台提供的营销工具之一,上线以来深受广大商户与用户的喜爱。商户可以通过本平台向微信支付用户发放现金红包。用户领取红包后,资金到达用户微信支付零钱账户,在日常运营中为商户的营销活动带来热烈的反响。

1.发红包不需要支付授权目录,但是需要在商户后台调用红包Api的IP地址,也就是你的发起红包请求的服务器的IP,操作路径::【登录商户平台——>产品中心——>现金红包——>产品设置】(注:“产品设置”操作按钮仅当你开通现金红包功能之后才会出现)。

2.发红包需要Api证书。

3.在发放现金红包之前,请确保你的资金充足。别人通过在你的平台买东西微信支付付给你的钱和你发红包需要支出的钱不在一起,这里的钱需要单独充值的,操作路径:【登录商户平台——>账户中心——>资金管理——>充值】。

4.发红包可以借权的,比如公众号A是开通了微信支付的认证服务号,你的活动在公众号B(订阅号服务号均可)中举办,公众号B可以使用A的微信支付发红包,但是发红包需要知道用户的openid,获取这个openid的时候也需要借用公众号A来获取,也就是通过A发红包的这个openid就必须是该用户对应于A的openid。

操作前期准备,也就是微信支付商户平台的一些配置,请参看文档:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_3&index=2

其实微信公众号发红包和微信公众号企业付款差不多,我也就顺带把企业付款再整理一下,好了话不多说,直接上代码:

/**

* 公众号发红包

* @param string $openid 用户openID

* @param string $money 金额

* @param string $trade_no 订单编号

* @param string $act_name 活动名称

* @return multitype 支付结果

*/

public function sendredpack($openid,$money,$trade_no,$act_name){

$config = $this->config;

$data = array(

'nonce_str' => self::getNonceStr(),

'mch_billno' => $trade_no,

'mch_id' => $config['mch_id'],

'wxappid' => $config['wxappid'],

'send_name' => '江南极客',

're_openid' => $openid,

'total_amount' => $money * 100, //付款金额单位为分

'total_num' => 1,

'wishing' => '祝您天天开心!',

'client_ip' => self::getip(),

'act_name' => $act_name,

'remark' => 'From 江南极客'

);

$data['sign'] = self::makeSign($data);

//构造XML数据

$xmldata = self::array2xml($data);

$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';

//发送post请求

$res = self::curl_post_ssl($url, $xmldata);

if(!$res){

return array('status'=>0, 'msg'=>"Can't connect the server" );

}

// 这句file_put_contents是用来查看服务器返回的结果 测试完可以删除了

//file_put_contents('./log.txt',$res,FILE_APPEND);

$content = self::xml2array($res);

if(strval($content['return_code']) == 'FAIL'){

return array('status'=>0, 'msg'=>strval($content['return_msg']));

}

if(strval($content['result_code']) == 'FAIL'){

return array('status'=>0, 'msg'=>strval($content['err_code']).':'.strval($content['err_code_des']));

}

return $content;

}

/**

* 公众号企业支付

* @param string $openid 用户openID

* @param string $money 金额

* @param string $trade_no 订单编号

* @param string $desc 付款操作说明信息(比如:提现)

* @return string 支付结果

*/

public function mchpay($openid,$money,$trade_no,$desc){

$config = $this->config;

$data = array(

'mch_appid' => $config['wxappid'],

'mchid' => $config['mch_id'],

'nonce_str' => self::getNonceStr(),

'partner_trade_no' => $trade_no,

'openid' => $openid,

'check_name'=> 'NO_CHECK', //OPTION_CHECK不强制校验真实姓名, FORCE_CHECK:强制 NO_CHECK:

'amount' => $money * 100, //付款金额单位为分

'desc' => $desc,

'spbill_create_ip' => self::getip()

);

//生成签名

$data['sign'] = self::makeSign($data);

//return $config;

//构造XML数据

$xmldata = self::array2xml($data);

$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';

//发送post请求

$res = self::curl_post_ssl($url, $xmldata);

if(!$res){

return array('status'=>0, 'msg'=>"Can't connect the server" );

}

// 这句file_put_contents是用来查看服务器返回的结果 测试完可以删除了

//file_put_contents('./log1.txt',$res,FILE_APPEND);

//付款结果分析

$content = self::xml2array($res);

if(strval($content['return_code']) == 'FAIL'){

return array('status'=>0, 'msg'=>strval($content['return_msg']));

}

if(strval($content['result_code']) == 'FAIL'){

return array('status'=>0, 'msg'=>strval($content['err_code']).':'.strval($content['err_code_des']));

}

return $content;

}

这是封装好的类,调用方法也超级简单:include 'wxmerpay.class.php';//引入类文件

$config = array(

'wxappid'=> 'wx123456789',

'mch_id' => '1123456781',

'pay_apikey' => '1234567898765432123456789',

'api_cert'=> $cert_path . '/apiclient_cert.pem',

'api_key'=> $cert_path . '/apiclient_key.pem',

'rootca'=> $cert_path . '/rootca.pem'

);

$redpack = new WxRedpack($config);//初始化

$redpack->sendredpack($openid,$money,$trade_no,$act_name); //发红包

就这么简单吗?对!就这么简单,然而这里边使用了很多自己封装的函数方法,源码下载:http://download.csdn.net/download/sinat_35861727/9956485

如果真的感觉好用,请点个赞留个好评,谢谢!有问题也可以评论区告诉我!

相关推荐:

微信企业红包php,微信公众号发红包和企业付款实现方法相关推荐

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

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

  2. php 公众号发红包,真实案例教你公众号发低于1元的红包

    原标题:真实案例教你公众号发低于1元的红包 红包被冠称为"营销核武器",15年央视春晚腾讯微信摇一摇红包被马云戏称为偷袭珍珠港,通过微信红包,微信支付在短时间成功地实现了新增绑定2 ...

  3. 微信公众号发红包php开发教程

    使用微信现金红包的3个流程 申请现金红包功能 添加微信现金红包模板 发放现金红包 开发演示demo 发红包 demo 下载 一.开通现金红包权限 在使用现金红包之前,请前往开通现金红包功能.操作路径: ...

  4. PHP 微信公众号发红包

    之前也在网上找了很多的代码来实现这个发现在最后会无缘无故的出现 58 的问题,然后就结合公众号打款的代码把这个问题解决了. 下面是处理代码: class WXHongBao {private $mch ...

  5. 【接口文档】微信支付现金红包未开通,公众号发红包用第三方红包代发接口

    对接技术支持: QQ:3314129409   Wechat/Tel:18674509508 红包接口使用流程: 首先由后台通过红包创建接口获取红包ticket,然后使用ticket拼装红包链接,在用 ...

  6. 微信公众号发红包需要的API证书是什么,如何获取API证书?

    原文地址:什么是API证书?如何获取API证书? 什么是API证书?如何获取API证书? 一.什么是API证书 1.技术开发人员在调用微信支付安全级别较高的接口(如:退款.企业红包.企业付款)时,会使 ...

  7. 微信公众号现金红包红包 企业付款openid 获取

    微信公众号 必须是服务号和企业号 1.微信公众号 发红包  主要问题是要上传发红包的OpenID文件 2.企业付款openid 查询对方openid openid怎么获取 ,可以通过 "小C ...

  8. PHP:微信公众号的红包发送功能

    更新为v2.0  链接:  http://pan.baidu.com/s/1o6rcvME  密码: 67bp *说明参考续篇  http://snmoney.blog.163.com/blog/st ...

  9. 如何设置关注微信公众号送红包功能?

    如何设置关注微信公众号送红包功能?,具体解决方案如下: 解决方案: 1,微信服务号可以通过开通微信支付功能(开通条件是认证过的"服务号")进行关注发红包; 2,微信订阅号由于不能开 ...

  10. 微信公众号发送红包功能实现源码

    微信公众号发送红包功能实现源码 最近项目要求推出活动, //A推荐了B,1.如果B成功支付,2.如果B来源为雅思哥给A发66.66,如果不是雅思哥发200 //在活动期间,当A推荐了B时,A不会有任何 ...

最新文章

  1. 从清洁工到斯坦福教授,一路开挂的她近日入选美国国家医学科学院!
  2. python导入模块有同名_Python:导入与函数同名的模块
  3. DNS 与 活动目录 的关系
  4. 分表分库中间件 sharding-jdbc
  5. 对身体的挣脱与自足的想象:谈阿满的小说集《双花祭》
  6. 高等数学下-赵立军-北京大学出版社-题解-练习10.1
  7. mysql parameter_C#MySqlParameter问题
  8. 课后作业-阅读任务-阅读笔记4
  9. linux下编译安装ntfs,linux下编译安装ntfs
  10. 何恺明“终结”ImageNet预训练时代:从0开始训练神经网络,效果比肩COCO冠军
  11. 浸会大学推中药材图像数据库
  12. 微信开发者工具——支持less的插件
  13. python控制、监听鼠标键盘
  14. html5制作多彩照片墙,照片墙不是乱贴的,教你1分钟打造高逼格照片墙!
  15. 和小伙伴们一起来看 I/O 直播
  16. 小视频如何消重 视频剪切后md5值变了吗
  17. python中的map什么意思啊_python中的map怎么使用(方法详解)
  18. 周杰伦等名人网站频被挂马 粉丝上网需警惕
  19. adb命令——adb shell top命令
  20. 后台如何实现对APP版本更新管理?

热门文章

  1. 【mcuclub】MQ系列气体传感器
  2. autoit mysql update_RobotFramework+selenium+requests+autoit+mysql+appium 环境搭建
  3. 全栈学习的知识点梳理(一)
  4. Web前端满屋花案例框架
  5. 武汉理工大学计算机辅助项目管理简答题,武汉理工大学软件项目管理实验报告...
  6. 覆盖和覆盖D2D通信网络的传输容量分析(Matlab代码实现)
  7. 1466:Girls and Boys:优美的拆散早恋学生?
  8. 产品推广都有哪些方法可以用?
  9. 基于搜狐新闻数据【完整版】训练中文word2vec模型
  10. 02 编程猫之小猫酷跑我设计