`

微信红包接口API实现(php版)

阅读更多

一、微信红包文档说明目前微信红包总共分现金红包和裂变红包两种。
1、现金红包:https://pay.weixin.qq.com/wiki/doc/api/cash_coupon.php?chapter=13_5
2、裂变红包:https://pay.weixin.qq.com/wiki/doc/api/cash_coupon.php?chapter=16_5
更多请查看:https://pay.weixin.qq.com/wiki/doc/api/cash_coupon.php

二、php接口实现
本文讲解现金红包的调用,其他的大体一样,就不去尝试了。
参数说明:

代码实现:
片段一、

  1. /**
  2. * 微信支付
  3. * @param string $openid 用户openid
  4. */
  5. publicfunction pay($re_openid)
  6. {
  7. include_once('WxPacketClass.php');
  8. $wxHongBaoHelper =newWxPacketClass($this->app_sign);
  9. $wxHongBaoHelper->setParameter("nonce_str", $this->great_rand());//随机字符串,丌长于 32 位
  10. $wxHongBaoHelper->setParameter("mch_billno", $this->app_mchid.date('YmdHis').rand(1000,9999));//订单号(28位)
  11. $wxHongBaoHelper->setParameter("mch_id", $this->app_mchid);//商户号
  12. $wxHongBaoHelper->setParameter("wxappid", $this->app_id);
  13. $wxHongBaoHelper->setParameter("send_name",'扬和宏科技');//红包发送者名称
  14. $wxHongBaoHelper->setParameter("re_openid", $re_openid);//openid
  15. $wxHongBaoHelper->setParameter("total_amount",100);//付款金额,单位分
  16. $wxHongBaoHelper->setParameter("total_num",1);//红包収放总人数
  17. $wxHongBaoHelper->setParameter("wishing",'给您拜个晚年,祝您晚年幸福!');//红包祝福诧
  18. $wxHongBaoHelper->setParameter("client_ip",'127.0.0.1');//调用接口的机器 Ip 地址
  19. $wxHongBaoHelper->setParameter("act_name",'拜年红包活动');//活劢名称
  20. $wxHongBaoHelper->setParameter("remark",'大家快来抢!');//备注信息
  21. $postXml = $wxHongBaoHelper->create_hongbao_xml();
  22. $url ='https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
  23. $responseXml = $wxHongBaoHelper->curl_post_ssl($url, $postXml);
  24. $responseObj = simplexml_load_string($responseXml,'SimpleXMLElement', LIBXML_NOCDATA);
  25. return $responseObj->return_code;
  26. }

片段二、

  1. //生成红包接口XML信息
  2. /*
  3. <xml>
  4. <sign>![CDATA[E1EE61A9]]</sign>
  5. <mch_billno>![CDATA[00100]]</mch_billno>
  6. <mch_id>![CDATA[888]]</mch_id>
  7. <wxappid>![CDATA[wxcbda96de0b165486]]</wxappid>
  8. <send_name>![CDATA[send_name]]</send_name>
  9. <re_openid>![CDATA[onqOjjXXXXXXXXX]]</re_openid>
  10. <total_amount>![CDATA[100]]</total_amount>
  11. <total_num>![CDATA[1]]</total_num>
  12. <wishing>![CDATA[恭喜发财]]</wishing>
  13. <client_ip>![CDATA[127.0.0.1]]</client_ip>
  14. <act_name>![CDATA[新年红包]]</act_name>
  15. <act_id>![CDATA[act_id]]</act_id>
  16. <remark>![CDATA[新年红包]]</remark>
  17. </xml>
  18. */
  19. function create_hongbao_xml($retcode =0, $reterrmsg ="ok"){
  20. try{
  21. $this->setParameter('sign', $this->get_sign());
  22. $commonUtil =newCommonUtil();
  23. return $commonUtil->arrayToXml($this->parameters);
  24. }catch(SDKException $e){
  25. die($e->errorMessage());
  26. }
  27. }

片段三、

  1. function curl_post_ssl($url, $vars, $second=30,$aHeader=array()){
  2. $ch = curl_init();
  3. //超时时间
  4. curl_setopt($ch,CURLOPT_TIMEOUT,$second);
  5. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  6. //这里设置代理,如果有的话
  7. curl_setopt($ch,CURLOPT_URL,$url);
  8. curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
  9. curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
  10. //cert 与 key 分别属于两个.pem文件
  11. curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).DIRECTORY_SEPARATOR.'cert'.DIRECTORY_SEPARATOR.'apiclient_cert.pem');
  12. curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).DIRECTORY_SEPARATOR.'cert'.DIRECTORY_SEPARATOR.'apiclient_key.pem');
  13. curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).DIRECTORY_SEPARATOR.'cert'.DIRECTORY_SEPARATOR.'rootca.pem');
  14. if( count($aHeader)>=1) curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
  15. curl_setopt($ch,CURLOPT_POST,1);
  16. curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
  17. $data = curl_exec($ch);
  18. if($data){
  19. curl_close($ch);
  20. return $data;
  21. }else{
  22. $error = curl_errno($ch);
  23. curl_close($ch);
  24. returnfalse;
  25. }
  26. }

代码结构:
|~action/
| `-PacketClass.php
|~lib/
| |~cert/
| | |-apiclient_cert.pem
| | |-apiclient_key.pem
| | `-rootca.pem
| |-SdkExtraClass.php
| |-WxApi.php
| `-WxPacketClass.php
`-index.php
每个文件都有详细的说明。

三、效果展示

  

有需要源码的可以联系我(www.webyang.net给我留言即可)~

0
1
分享到:
评论

相关推荐

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

    微信红包接口是微信支付开放平台提供的一系列API,开发者可以通过这些接口在自己的应用程序中集成发送红包的功能。主要接口包括: 1. 发送普通红包:用于向指定用户发放单个红包,适用于一对一或者群发场景。 2. ...

    微信红包API接口(PHP)

    根据微信高级红包接口文档,开发PHP版本的API接口。 代码分析请查看:http://www.jyboke.com/web/55.html

    微信红包接口 for Thinpkp3.2.3封装

    对于 Thinphp 3.2.3 这个轻量级 PHP 框架,封装微信红包接口意味着将微信的 API 调用逻辑与 Thinphp 的代码结构相结合,简化开发流程,提高代码复用性和可维护性。 Thinphp 3.2.3 是一款小巧、快速、易用的 PHP ...

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

    总的来说,"微信发红包开发接口ThinkPHP3.1版本"项目为开发者提供了一个快速集成微信红包功能的平台,通过理解微信红包接口、ThinkPHP框架以及接口开发的基本原理,开发者可以轻松地在自己的应用中实现类似功能。

    微信现金红包接口开发

    在实现微信现金红包接口的过程中,开发者需要注意以下几点: - **安全性**:确保所有敏感信息如商户ID、密钥等都安全存储,避免在传输过程中被截取。使用HTTPS进行通信,防止数据被窃听。 - **异常处理**:对于可能...

    PHP微信红包生成代码分享

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

    微信红包接口基于Thinpkp3.2.3封装

    微信红包接口基于 Thinphp3.2.3 封装是一个常见的技术实践,它涉及到微信支付API的使用、PHP编程以及框架的应用。 Thinphp 是一个轻量级的PHP框架,适用于快速开发小型Web应用,而微信红包接口则是微信支付服务的一...

    微信红包API事例

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

    .net版微信红包开发Demo

    综上所述,.NET版微信红包开发涉及了.NET框架的使用、微信支付API的调用、商户信息管理、加密解密、随机数生成、签名验签等多个方面。理解并掌握这些知识点,开发者便能成功地在.NET环境下实现微信红包功能,为用户...

    微信企业红包 JAVA 实现

    在实现微信红包功能时,Spring可以帮助我们管理与微信接口交互的Service类,以及数据库操作的DAO类。 7. **Mybatis**:Mybatis是一个轻量级的持久层框架,它将SQL语句与JAVA代码分离,提供更灵活的数据库操作。在...

    微信红包开发源代码

    微信红包API接口(PHP) 微信红包开发源代码,附自定义菜单。

    PHP微信红包API接口

    根据微信高级红包接口,开发PHP版本的API接口,现在进行主要代码分析。 红包接口调用请求代码,所有请求参数为必填参数与文档对应: class Wxapi { private $app_id = 'wxXXXXXXXXXXXX'; //公众账号appid,首先...

    php生成微信红包类库

    在PHP编程语言中,微信红包(WeChat Red Packet)的生成是通过调用微信支付API来实现的。微信提供了丰富的API接口,允许开发者在自己的应用程序中集成微信红包功能,以增加用户体验和互动性。这个"php生成微信红包...

    java实现微信红包发放

    在完成这些准备工作后,我们可以通过微信提供的API文档了解红包接口的详细使用方法,如“发普通红包”接口(mmpaymkttransfers/promotion/transfers)。 Java实现微信红包发放时,我们需要处理以下几个关键环节: ...

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

    调用微信红包接口时,需确保商户账户有足够的余额,并且符合微信的红包政策。 验签环节是保障交易安全的关键步骤,防止数据被篡改。微信支付在每次交互后都会附带一个签名值,开发者需要使用自己的API秘钥对请求或...

    微信红包发放工具类【完整代码】

    - **异步通知处理**:微信红包接口支持异步回调,开发者需要提供一个回调地址来接收微信服务器关于红包状态的通知。 - **日志记录**:在DEMO中,可能会有日志记录调用过程和结果,便于调试和问题追踪。 4. **cert...

    微信公众平台红包支付接口php版

    微信红包接口示例,直接按照说明修改就可以了 加好友,求勾搭 要分只是对自己研究成果的认可

    微信红包源码微信CPA微信抽奖活动推广源码

    1. **微信开放平台接口**:微信红包和抽奖活动的实现离不开微信开放平台提供的API接口。开发者需要注册成为微信开放平台的开发者,获取AppID和AppSecret,通过这些凭证调用微信的红包发放、抽奖管理等接口。 2. **...

Global site tag (gtag.js) - Google Analytics