Exemple #1
0
require_once "./lib/WxPay.RedPack.php";
require_once "./lib/WxPay.RedPack.Api.php";
$openid = 'o9WpmxEqZMZNtjHEoN8vuuFHb12I';
//kangyu
$act_name = '活动名称';
//活动名称,少于32字符
$wishing = '祝福语';
//祝福语
$send_name = '活动方名称';
//发放红包的活动方名称,少于32字符
$remark = '微信支付开发测试';
//备注
// $money = 2.56;//单位:元
$money = mt_rand(100, 500);
//单位 分
$input = new WxPayRedPack();
//创建微信红包输入对象
$input->SetRe_openid($openid);
//设置openid
$input->SetTotal_num();
//设置默认total_num=1
$input->SetAct_name($act_name);
//设置活动名称
$input->SetWishing($wishing);
//设置祝福语
$input->SetSend_name($send_name);
//设置活动方名称
$input->SetRemark($remark);
//设置备注
$input->SetTotal_amount($money);
//设置发送红包钱数,单位分
 /**
  * [微信支付红包类]
  * @param  WxPayRedPack  $inputObj [微信红包输入对象]
  * @param  integer $timeOut  [description]
  * @return [type]            [description]
  */
 public static function sendRedpack($inputObj, $timeOut = 6)
 {
     $url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";
     //检测必填参数
     if (!$inputObj->IsRe_openidSet()) {
         throw new WxPayException("缺少企业付款支付接口必填参数re_openid!");
     } else {
         if (!$inputObj->IsTotal_amountSet()) {
             throw new WxPayException("缺少企业付款支付接口必填参数total_amount!");
         } else {
             if (!$inputObj->IsTotal_numSet()) {
                 throw new WxPayException("缺少企业付款支付接口必填参数total_num!");
             } else {
                 if (!$inputObj->IsSend_nameSet()) {
                     throw new WxPayException("缺少企业付款支付接口必填参数send_name!");
                 } else {
                     if (!$inputObj->IsWishingSet()) {
                         throw new WxPayException("缺少企业付款支付接口必填参数wishing!");
                     } else {
                         if (!$inputObj->IsAct_nameSet()) {
                             throw new WxPayException("缺少企业付款支付接口必填参数act_name!");
                         } else {
                             if (!$inputObj->IsRemarkSet()) {
                                 throw new WxPayException("缺少企业付款支付接口必填参数remark!");
                             }
                         }
                     }
                 }
             }
         }
     }
     //异步通知url未设置,则使用配置文件中的url
     // if(!$inputObj->IsNotify_urlSet()){
     // 	$inputObj->SetNotify_url(WxPayConfig::NOTIFY_URL);//异步通知url
     // }
     $inputObj->SetWxappid(WxPayConfig::APPID);
     //公众账号ID
     $inputObj->SetMch_id(WxPayConfig::MCHID);
     //商户号
     $inputObj->SetClient_ip($_SERVER['REMOTE_ADDR']);
     //终端ip
     //$inputObj->SetSpbill_create_ip("1.1.1.1");
     $inputObj->SetNonce_str(self::getNonceStr());
     //随机字符串
     // $inputObj->SetPartner_trade_no(WxPayConfig::MCHID.date("YmdHis").mt_rand(1000,9999));//生成商户订单号
     $inputObj->SetMch_billno(WxPayConfig::MCHID . date("YmdHis") . substr(microtime(), 2, 4));
     //生成商户订单号
     //签名,必须坐在所有待传参数都设置完毕才可以进行签名
     $inputObj->SetSign();
     $xml = $inputObj->ToXml();
     $response = self::postXmlCurl($xml, $url, true, $timeOut);
     // $result = WxPayResults::Init($response);
     // self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间
     $result = $inputObj->FromXml($response);
     return $result;
 }