主頁 > 知識庫 > php微信公眾號開發(fā)之現(xiàn)金紅包

php微信公眾號開發(fā)之現(xiàn)金紅包

熱門標簽:阿里云 Mysql連接數(shù)設置 電子圍欄 銀行業(yè)務 服務器配置 科大訊飛語音識別系統(tǒng) 團購網站 Linux服務器

本文實例為大家分享了php微信公眾號之現(xiàn)金紅包的具體代碼,供大家參考,具體內容如下

以下有關微信支付中現(xiàn)金紅包的開發(fā)參考自微信支付開發(fā)文檔,如下圖所示。

現(xiàn)金紅包,是微信支付商戶平臺提供的營銷工具之一,上線以來深受廣大商戶與用戶的喜愛。商戶可以通過本平臺向微信支付用戶發(fā)放現(xiàn)金紅包。用戶領取紅包后,資金到達用戶微信支付零錢賬戶,和零錢包的其他資金有一樣的使用出口;若用戶未領取,資金將會在24小時后退回商戶的微信支付賬戶中。

以下為本人用于測試微信支付發(fā)紅包的代碼片段,僅供參考。

/*測試微信企業(yè)給個人發(fā)紅包*/ 
public function weixin_red_packet(){ 
  // 請求參數(shù) 
  // 隨機字符串 
  $data['nonce_str']=$this->get_unique_value(); 
  //簽名 
  $data['sign']=""; 
  //商戶號,輸入你的商戶號 
  $data['mch_id']="**********"; 
  //商戶訂單號,可以按要求自己組合28位的商戶訂單號 
  $data['mch_billno']=$data['mch_id'].date("ymd")."888888".rand(1000,9999); 
  //公眾帳號appid,輸入自己的公眾號appid 
  $data['wxappid']="*********"; 
  //商戶名稱 
  $data['send_name']="*******"; 
  //用戶openid,輸入待發(fā)紅包的用戶openid 
  $data['re_openid']="*********"; 
  //付款金額 
  $data['total_amount']="100"; 
  //紅包發(fā)放總人數(shù) 
  $data['total_num']="1"; 
  //紅包祝福語 
  $data['wishing']="********"; 
  //IP地址 
  $data['client_ip']=$_SERVER['LOCAL_ADDR']; 
  //活動名稱 
  $data['act_name']="*******"; 
  //備注 
  $data['remark']="沒有備注"; 
  //場景ID 
  // $data['send_id']="PRODUCT_5"; 
  //活動信息 
  // $data['risk_info']=""; 
   
  // 生成簽名 
  //對數(shù)據(jù)數(shù)組進行處理 
  //API密鑰,輸入自己的appsecret 
  $appsecret="*********"; 
  $data=array_filter($data); 
  ksort($data); 
  $str=""; 
  foreach($data as $k=>$v){ 
    $str.=$k."=".$v.""; 
  } 
  $str.="key=".$appsecret; 
  $data['sign']=strtoupper(MD5($str)); 
 
 
  /* 
    發(fā)紅包操作: 
      1.將請求數(shù)據(jù)轉換成xml 
      2.發(fā)送請求 
      3.將請求結果轉換為數(shù)組 
      4.將請求信息和請求結果錄入到數(shù)據(jù)庫中 
      4.判斷是否通信成功 
      5.判斷是否轉賬成功 
   */ 
 
 
 
  //發(fā)紅包接口地址 
  $url="https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack"; 
 
  //將請求數(shù)據(jù)由數(shù)組轉換成xml 
  $xml=$this->arraytoxml($data); 
  //進行請求操作 
  $res=$this->curl($xml,$url); 
  //將請求結果由xml轉換成數(shù)組 
  $arr=$this->xmltoarray($res); 
 
  //請請求信息和請求結果錄入到數(shù)據(jù)庫中 
  // $transfer['partner_trade_no']=$data['partner_trade_no']; 
  // $transfer['request_data']=serialize($data);   
  // $transfer['response_data']=serialize($arr); 
  // if($arr['return_code']=="SUCCESS"  $arr['result_code']=="SUCCESS"){ 
  // $transfer['success']=1; 
  // $transfer_res['success']=1; 
  // }else{ 
  // $transfer['success']=0; 
  // $transfer_res['success']=0; 
  // $transfer_res['desc']=$arr['return_msg']; 
  // } 
  // $transfer['add_time']=time(); 
 
  // D("weixin_transfer")->add($transfer); 
  // 輸出請求結果數(shù)組 
  echo "pre>"; 
  print_r($arr); 
  exit("weixin_red_packet"); 
} 
 
 
 
// 生成32位唯一隨機字符串 
private function get_unique_value(){ 
  $str=uniqid(mt_rand(),1); 
  $str=sha1($str); 
  return md5($str); 
} 
// 將數(shù)組轉換成xml 
private function arraytoxml($arr){ 
  $xml="xml>"; 
  foreach($arr as $k=>$v){ 
    $xml.="".$k.">".$v."/".$k.">"; 
  } 
  $xml.="/xml>"; 
  return $xml; 
} 
// 將xml轉換成數(shù)組 
private function xmltoarray($xml){ 
  //禁止引用外部xml實體 
  libxml_disable_entity_loader(true); 
  $xmlstring=simplexml_load_string($xml,"SimpleXMLElement",LIBXML_NOCDATA); 
  $arr=json_decode(json_encode($xmlstring),true); 
  return $arr; 
} 
 
//進行curl操作 
private function curl($param="",$url) { 
  $postUrl = $url; 
  $curlPost = $param; 
  //初始化curl 
  $ch = curl_init();                    
  //抓取指定網頁 
  curl_setopt($ch, CURLOPT_URL,$postUrl);          
  //設置header 
  curl_setopt($ch, CURLOPT_HEADER, 0);           
  //要求結果為字符串且輸出到屏幕上 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);       
  //post提交方式 
  curl_setopt($ch, CURLOPT_POST, 1);            
  // 增加 HTTP Header(頭)里的字段  
  curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);       
  // 終止從服務端進行驗證 
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);     
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
 
  //這個是證書的位置 
  curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'\cert\apiclient_cert.pem');  
  //這個也是證書的位置 
  curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'\cert\apiclient_key.pem');  
  //運行curl 
  $data = curl_exec($ch);                  
  //關閉curl 
  curl_close($ch); 
  
  return $data; 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP版微信公眾平臺紅包API
  • 使用PHP實現(xiàn)微信搖一搖周邊紅包
  • php實現(xiàn)微信發(fā)紅包
  • php版微信公眾號接口實現(xiàn)發(fā)紅包的方法
  • php官方微信接口大全(微信支付、微信紅包、微信搖一搖、微信小店)
  • PHP實現(xiàn)微信發(fā)紅包程序
  • PHP微信紅包API接口
  • php實現(xiàn)的微信紅包算法分析(非官方)
  • php版微信發(fā)紅包接口用法示例
  • PHP微信紅包生成代碼分享

標簽:衢州 衡水 廣元 棗莊 萍鄉(xiāng) 江蘇 蚌埠 大理

巨人網絡通訊聲明:本文標題《php微信公眾號開發(fā)之現(xiàn)金紅包》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266