微信公眾號發紅包和企業付款實現方法
微信現金紅包,是微信支付商家平台提供的行銷工具之一,上線以來深受廣大商家與使用者的喜愛。商家可透過本平台向微信支付用戶發放現金紅包。用戶領取紅包後,資金到達用戶微信支付零錢帳戶,在日常營運中為商家的行銷活動帶來熱烈的迴響。
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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

華為手機如何實現雙微信登入?隨著社群媒體的興起,微信已成為人們日常生活中不可或缺的溝通工具之一。然而,許多人可能會遇到一個問題:在同一部手機上同時登入多個微信帳號。對於華為手機用戶來說,實現雙微信登入並不困難,本文將介紹華為手機如何實現雙微信登入的方法。首先,華為手機自帶的EMUI系統提供了一個很方便的功能-應用程式雙開。透過應用程式雙開功能,用戶可以在手機上同

程式語言PHP是一種用於Web開發的強大工具,能夠支援多種不同的程式設計邏輯和演算法。其中,實作斐波那契數列是一個常見且經典的程式設計問題。在這篇文章中,將介紹如何使用PHP程式語言來實作斐波那契數列的方法,並附上具體的程式碼範例。斐波那契數列是一個數學上的序列,其定義如下:數列的第一個和第二個元素為1,從第三個元素開始,每個元素的值等於前兩個元素的和。數列的前幾元

如何在華為手機上實現微信分身功能隨著社群軟體的普及和人們對隱私安全的日益重視,微信分身功能逐漸成為人們關注的焦點。微信分身功能可以幫助使用者在同一台手機上同時登入多個微信帳號,方便管理和使用。在華為手機上實現微信分身功能並不困難,只需要按照以下步驟操作即可。第一步:確保手機系統版本和微信版本符合要求首先,確保你的華為手機系統版本已更新至最新版本,以及微信App

在現今的軟體開發領域中,Golang(Go語言)作為一種高效、簡潔、並發性強的程式語言,越來越受到開發者的青睞。其豐富的標準庫和高效的並發特性使它成為遊戲開發領域的一個備受關注的選擇。本文將探討如何利用Golang來實現遊戲開發,並透過具體的程式碼範例來展示其強大的可能性。 1.Golang在遊戲開發中的優勢作為靜態類型語言,Golang正在建構大型遊戲系統

PHP遊戲需求實現指南隨著網路的普及和發展,網頁遊戲的市場也越來越火爆。許多開發者希望利用PHP語言來開發自己的網頁遊戲,而實現遊戲需求是其中一個關鍵步驟。本文將介紹如何利用PHP語言來實現常見的遊戲需求,並提供具體的程式碼範例。 1.創造遊戲角色在網頁遊戲中,遊戲角色是非常重要的元素。我們需要定義遊戲角色的屬性,例如姓名、等級、經驗值等,並提供方法來操作這些

在Golang中實現精確除法運算是一個常見的需求,特別是在涉及金融計算或其它需要高精度計算的場景中。 Golang的內建的除法運算子「/」是針對浮點數計算的,並且有時會出現精度遺失的問題。為了解決這個問題,我們可以藉助第三方函式庫或自訂函數來實現精確除法運算。一種常見的方法是使用math/big套件中的Rat類型,它提供了分數的表示形式,可以用來實現精確的除法運算

谷歌瀏覽器怎麼付款?網路發展飛速,我們已經能使用Google瀏覽器在網路上搜尋購物了。但也有小夥伴想知道谷歌瀏覽器怎麼設定付款方式,這樣我們就能更快地進行線上付款購物了。以下就為大家介紹Google瀏覽器設定付款方式教程,小夥伴們選擇適合自己的付款方式就可以開始網購之旅了。 Google瀏覽器設定付款方式教學1、雙擊開啟軟體,點選右上角的三個點圖示。 (如圖)2、接著點擊下方選項清單中的"設定"。 (如圖)3、在開啟的視窗介面中,點選左側欄中的"您與google"選項。 (如圖所

實在抱歉,我無法提供即時的程式設計指導,但我可以為你提供一篇程式碼範例,讓你更能理解如何使用PHP實作SaaS。以下是一篇1500字以內的文章,標題為《使用PHP實作SaaS:全面解析》。在當今資訊時代,SaaS(SoftwareasaService)已經成為了企業和個人使用軟體的主流方式,它提供了更靈活、更便利的軟體存取方式。透過SaaS,用戶無需在本地
