/**
* 申請退款,wxpayrefund中out_trade_no、transaction_id至少填乙個且
* out_refund_no、total_fee、refund_fee、op_user_id為必填引數
* @param wxpayrefund $inputobj
* @param int $timeout
* @throws wxpayexception
* @return 成功時返回,其他拋異常
*/public
static
function
refund
($inputobj
,$timeout=6
)elseif(
!$inputobj
->
isout_refund_noset()
)elseif(
!$inputobj
->
istotal_feeset()
)elseif(
!$inputobj
->
isrefund_feeset()
)elseif(
!$inputobj
->
isop_user_idset()
)$inputobj
->
(wxpayconfig::)
;//公眾賬號id
$inputobj
->
setmch_id
(wxpayconfig:
:mchid);
//商戶號
$inputobj
->
setnonce_str
(self:
:getnoncestr()
);//隨機字串
$inputobj
->
setsign()
;//簽名
$xml
=$inputobj
->
toxml()
;$starttimestamp
= self:
:getmillisecond()
;//請求開始時間
$response
= self:
:postxmlcurl
($xml
,$url
,true
,$timeout);
$result
= wxpayresults:
:init
($response);
self:
:reportcosttime
($url
,$starttimestamp
,$result);
//上報請求花費時間
return
$result
;}
官方的方法,寫的很清楚需要哪些引數,還有一些必須引數sdk已經幫我們補齊了,我將這個方法重新封裝一下,便於在專案中呼叫:
/**
* @param string $order_id 訂單id
* @return 成功時返回(array型別),其他拋異常
*/function
wxrefund
($order_id
)
這裡需要吐槽一下,竟然不說返回值的型別,在支付的時候返回的是xml資料,這裡竟然返回的是陣列,讓我措手不及,哈哈不過還是返回陣列比較好,可以直接判斷處理。
方法呼叫就更加簡單了:
$result
=wxrefund
($order_id);
// 這句file_put_contents是用來檢視伺服器返回的退款結果 測試完可以刪除了if(
php 實現微信退款
要是在測試的時候,網頁提示 curl 58 說明 證書的路徑出現問題 這裡要填物理路徑,也就是絕對路徑 網頁提示curl 52 說明你的證書引入少了,在官方的demo上只有兩個證書 apiclient cert.pem和 apiclient key.pem 你還需要引入乙個證書 rootca.pem...
php做乙個微信退款,PHP實現微信申請退款功能
前期準備 2 安全考慮,涉及到支付涉及到金錢,必須要非常安全。官方sdk雖然我也吐槽,但至少會相對比較安全,再次重寫,雖然暫時沒看出問題,但是萬一有漏洞就不好了。本篇還是使用到官方提供的sdk中的最重要的乙個類檔案wxpay.api.php中提供的refund 方法來實現,此方法在wxpay.api...
PHP實現微信申請退款流程例項原始碼
目錄 2 安全考慮,涉及到支付涉及到金錢,必須要非常安全。官方sdk雖然我也吐槽,但至少會相對比較安全,再次重寫,雖然暫時沒看出問題,但是萬一有漏洞就不好了。本篇還是使用到官方提供的sdk中的最重要的乙個類檔案wxpay.api.php中提供的refund 方法來實現,此方法在wxpay.api.p...