php微信支付分取消订单,微信支付PHP开发教程五关闭订单
重要:本文最后更新于2019-06-01 08:22:14,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)谙路搅粞曰蚵?lián)系代碼狗。
前面我們已經(jīng)完成了微信支付的正常下單,并且能夠正常收款。如果用戶在支付過程中放棄了購買行為,那么為了保證訂單正確,微信官方要求我們關(guān)閉訂單,據(jù)我測(cè)試關(guān)不關(guān)都沒多大影響,可能運(yùn)氣好,哈哈。在開發(fā)中切記不能抱有僥幸心理,特別是涉及到錢的事兒,一定要謹(jǐn)慎,嚴(yán)格按照官方要求去做。下面來學(xué)習(xí)下如果關(guān)閉微信支付訂單吧,本文接前面教程,不清楚的地方自己去看。
商戶訂單支付失敗需要生成新單號(hào)重新發(fā)起支付,要對(duì)原訂單號(hào)調(diào)用關(guān)單,避免重復(fù)支付;系統(tǒng)下單后,用戶支付超時(shí),系統(tǒng)退出不再受理,避免用戶繼續(xù),請(qǐng)調(diào)用關(guān)單接口。
注意:訂單生成后不能馬上調(diào)用關(guān)單接口,最短調(diào)用時(shí)間間隔為5分鐘。
微信支付-關(guān)閉訂單
接口地址:https://api.mch.weixin.qq.com/pay/closeorder
是否需要證書:否
文檔地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_3
請(qǐng)求參數(shù):
字段名
變量名
必填
類型
公眾賬號(hào)ID
appid
是
String(32)
商戶號(hào)
mch_id
是
String(32)
商戶訂單號(hào)
out_trade_no
是
String(32)
隨機(jī)字符串
nonce_str
是
String(32)
簽名
sign
是
String(32)
簽名類型
sign_type
否
String(32)
返回結(jié)果
字段名
變量名
必填
類型
返回狀態(tài)碼
return_code
是
String(16)
返回信息
return_msg
是
String(128)
更多返回信息自己看文檔,以后就不多介紹了。
PHP關(guān)閉微信訂單源碼
//關(guān)閉訂單
public function closeorder($order){
$apiparams=[
'appid'=>self::appid,
'mch_id'=>self::mch_id,
'out_trade_no'=>$order,
'nonce_str'=>Util::getNonceStr(),
];
$apiparams['sign']=$this->GetSign($apiparams);
$xml=Util::ArrToXml($apiparams);
$result=Util::postXmlCurl($xml,'https://api.mch.weixin.qq.com/pay/closeorder');
$arr=Util::XmlToArr($result);
if($arr['return_code']=='SUCCESS'){
file_put_contents('./log.txt',$result);
return 'success';
}else{
file_put_contents('./error.txt',$result);
return false;
}
}
這段源碼是接前面寫的支付類的,把這個(gè)關(guān)閉訂單方法放進(jìn)支付類中進(jìn)行調(diào)用即可。該方法執(zhí)行結(jié)果將會(huì)在當(dāng)前文件夾中生成一個(gè)log.txt文件,里面記錄了本次請(qǐng)求的結(jié)果。如果發(fā)生錯(cuò)誤,可以通過閱讀該文件中的記錄內(nèi)容進(jìn)行排查!
總結(jié)
以上是生活随笔為你收集整理的php微信支付分取消订单,微信支付PHP开发教程五关闭订单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么把鼻子弄小
- 下一篇: php脚本查杀,无敌强大的Shell脚本