本文主要和大家分享php實現紅包代碼,希望能協助到大家。WxHb包自己去官網下載最新的,包括認證等等,設定好訪問ip,還有最重要你已經申請成功紅包功能,因為需要支付流水和九十天,限制的。
<?phpnamespace Index\Controller;use Think\Controller;use Index\Lib\Hb\WxHb;class HbController extends Controller {private $app_id = ""; //AppIDprivate $app_secret = ""; //AppSecretprivate $app_mchid = ""; //商戶號private $api_key = ""; //商戶支付密鑰Key// // 發送紅包public function SendHb() {//include_once ('./WeixinRedPacket/WxHongBaoHelper.php');// //測試的OpenID$re_openid = "oaWZ5s1kjrtJ7RdYcmALZg8QSwpk";// //紅包金額單位是分所以得乘以100$price = $50 * 100;//組裝資料$wxHongBaoHelper = new WxHb();$wxHongBaoHelper->setParameter ( "nonce_str", $this->great_rand () ); //隨機字串,丌長於 32 位$wxHongBaoHelper->setParameter ( "mch_billno", $this->app_mchid . date ( 'YmdHis' ) . rand ( 1000, 9999 ) ); //訂單號$wxHongBaoHelper->setParameter ( "mch_id", $this->app_mchid ); //商戶號$wxHongBaoHelper->setParameter ( "wxappid", $this->app_id );$wxHongBaoHelper->setParameter ( "send_name", '今日重慶' ); //紅包寄件者名稱$wxHongBaoHelper->setParameter ( "re_openid", $re_openid ); //相對於醫脈互連的openid$wxHongBaoHelper->setParameter ( "total_amount", $price ); //付款金額,單位分$wxHongBaoHelper->setParameter ( "total_num", 1 ); //紅包収放總人數$wxHongBaoHelper->setParameter ( "wishing", '猴年吉祥' ); //紅包祝福語$wxHongBaoHelper->setParameter ( "client_ip", '219.153.65.50' ); //調用介面的機器 Ip 地址$wxHongBaoHelper->setParameter ( "act_name", '重報集團' ); //活勱名稱$wxHongBaoHelper->setParameter ( "remark", '新年快樂!' ); //備忘資訊//產生xml並且產生簽名$postXml = $wxHongBaoHelper->create_hongbao_xml ( $this->api_key );//var_dump ( $postXml );//exit;//提交請求$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';$responseXml = $wxHongBaoHelper->curl_post_ssl ( $url, $postXml );$responseObj = simplexml_load_string ( $responseXml, 'SimpleXMLElement', LIBXML_NOCDATA );//轉換成數組$responseArr = ( array ) $responseObj;$return_code = $responseArr ['return_code'];$result_code = $responseArr ['result_code'];//判斷是否紅包是否發送成功if ($return_code == "SUCCESS" && $result_code == "SUCCESS") {dump ( $responseArr );echo "SUCCESS";} else {echo "發送失敗";dump ( $responseArr );}}//擷取隨機數private function great_rand() {$str = '1234567890abcdefghijklmnopqrstuvwxyz';for($i = 0; $i < 30; $i ++) {$j = rand ( 0, 35 );$t1 .= $str [$j];}return $t1;}}