php實現(xiàn)微信企業(yè)轉賬功能_第1頁
php實現(xiàn)微信企業(yè)轉賬功能_第2頁
php實現(xiàn)微信企業(yè)轉賬功能_第3頁
php實現(xiàn)微信企業(yè)轉賬功能_第4頁
php實現(xiàn)微信企業(yè)轉賬功能_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第php實現(xiàn)微信企業(yè)轉賬功能*KEY:商戶支付密鑰,參考開戶郵件設置(必須配置,登錄商戶平臺自行設置)

*設置地址:/index.php/account/api_cert

constAPPID='';

constMCHID='';

constKEY='';

//=======【證書路徑設置】=====================================

/**

*TODO:設置商戶證書路徑

*證書路徑,注意應該填寫絕對路徑,發(fā)送紅包和查詢需要,可登錄商戶平臺下載

*API證書下載地址:/index.php/account/api_cert,下載之前需要安裝商戶操作證書)

*@varpath跟這個文件同一目錄下的cert文件夾放置證書!?。?!

constSSLCRET12='cert/apiclient_cert.p12';

constSSLCERT_PATH='cert/apiclient_cert.pem';

constSSLKEY_PATH='cert/apiclient_key.pem';

constSSLROOTCA='cert/rootca.pem';

//=======【證書路徑設置】=====================================

/**

*獲取文件的路徑,證書需要完整路徑

*@returnstring

publicstaticfunctiongetRealPath(){

return__DIR__.'/';

微信企業(yè)轉賬工具類:

php

require_once"WxTransfers.Config.php";

*微信企業(yè)轉賬工具類

classWxTransfers

//企業(yè)轉賬請求地址

constTRANSFERS_URL='/mmpaymkttransfers/promotion/transfers';

//獲取轉賬信息地址

constGETINFO_URL='/mmpaymkttransfers/gettransferinfo';

//轉賬需要的配置'wxappid','mch_id','key'

private$_keys;

//轉賬需要的證書文件'api_cert','api_key','rootca',請傳入絕對路徑?。?!

private$_cert;

protected$log_file;

public$error;

//相關配置必備參數(shù)

protected$_parameters=array();

//最后一次生產(chǎn)的訂單號

protected$_lastPartnerTradeNo;

//記錄最后一次發(fā)送請求的結果對象

protected$_lastResult;

//最后一次隨機數(shù)

protected$_lastRandNum;

publicfunction__construct($config)

$keys=array(

'wxappid',

'mch_id',

'key'

$files=array(

'api_cert',

'api_key',

'rootca'

foreach($keysas$key){

try{

$this-_keys[$key]=$config[$key];

}catch(Exception$e){

thrownewException('參數(shù)缺失:'.$key);

foreach($filesas$file){

try{

$cret_file=$config[$file];

if(is_file($cret_file)){

$this-_cert[$file]=$cret_file;

}catch(Exception$e){

thrownewException('證書錯誤');

publicfunctiontransfers($parameters){

$this-log($parameters,'SEND_PARAM');

$this-setParameter('mchid',$this-_keys['mch_id']);

$this-setParameter('mch_appid',$this-_keys['wxappid']);

$must=array(

'openid',

'check_name',

're_user_name',

'amount',

'desc',

'spbill_create_ip',

foreach($mustas$key){

if(isset($parameters[$key])$parameters[$key]){

$this-setParameter($key,$parameters[$key]);

}else

if(!isset($this-_parameters[$key])||!$this-_parameters[$key]){

$this-error='參數(shù)缺損:'.$key;

returnfalse;

if(!isset($parameters['partner_trade_no'])){

$parameters['partner_trade_no']=$this-getPartnerTradeNo();

$this-setParameter('partner_trade_no',$parameters['partner_trade_no']);

$this-setParameter('nonce_str',$this-getRand(30,3));

$postXml=$this-_createXml();

if(!$postXml){

returnfalse;

$this-log($postXml,'SEND_XML');

$result=$this-curl_post_ssl(self::TRANSFERS_URL,$postXml);

$this-log($result,'RESULT_XML');

if(!$result){

returnfalse;

$resultObj=simplexml_load_string($result,'SimpleXMLElement',LIBXML_NOCDATA);

$this-_lastResult=$resultObj;

if($resultObj-return_code=='SUCCESS'){//成功標識

if($resultObj-result_code=='SUCCESS'){

return$resultObj-send_listid;

if($resultObj-return_msg){

$this-error=(string)$resultObj-return_msg;

returnfalse;

$this-error=(string)$resultObj-err_code_des;

returnfalse;

if($resultObj-return_code!='FAIL'){

$this-error='返回信息格式異常';

returnfalse;

$this-error=(string)$resultObj-return_msg;

returnfalse;

/**

*獲取轉賬信息

*@paramunknown$partner_trade_no

*@returnboolean|SimpleXMLElement

publicfunctiongetInfo($partner_trade_no){

$param=array(

'nonce_str'=$this-getRand(30,3),

'partner_trade_no'=$partner_trade_no,

'mch_id'=$this-_keys['mch_id'],

'appid'=$this-_keys['wxappid'],

ksort($param);

$unSignParaString=$this-_formatQueryParaMap($param,false);

$param['sign']=$this-_sign($unSignParaString,$this-_keys['key']);

$xml=$this-arrayToXml($param);

$this-log($xml,'GETINFO_XML');

$result=$this-curl_post_ssl(self::GETINFO_URL,$xml);

if(!$result){

returnfalse;

$this-log($result,'RESULT_XML');

$resultObj=simplexml_load_string($result,'SimpleXMLElement',LIBXML_NOCDATA);

$this-_lastResult=$resultObj;

if($resultObj-return_code=='SUCCESS'){//成功標識

if($resultObj-result_code=='SUCCESS'){

return$resultObj;

if($resultObj-return_msg){

$this-error=$resultObj-return_msg;

returnfalse;

$this-error=$resultObj-err_code_des;

returnfalse;

if($resultObj-return_code!='FAIL'){

$this-error='返回信息格式異常';

returnfalse;

$this-error=$resultObj-return_msg;

returnfalse;

/**

*設置所需要的參數(shù)

*@param$parameter鍵值數(shù)組/鍵

*@param$value值

*@returnWxBonusApi

publicfunctionsetParameter($parameter,$value=null)

if(!is_array($parameter)){

return$this-setParameter(array(

$parameter=$value

));

foreach($parameteras$key=$value){

$key=trim($key);

$value=trim($value);

$this-_parameters[$key]=$value;

return$this;

/**

*獲取參數(shù)值

*@param$parameter鍵名

*@returnmultitype:

publicfunctiongetParameter($parameter)

return$this-_parameters[$parameter];

/**

*獲取隨機數(shù)

*@paramnumber$len隨機數(shù)的位數(shù)

*@paramnumber$type取值范圍1表示數(shù)字2小寫字母4大寫字母

*@returnstring

publicfunctiongetRand($len=30,$type=0)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論