用戶在微信訂單系統支付成功之後--微信訂單服務器會主動請求咱們在微信後臺配置的回調url
php
微擎對應的是notify.phpsql
該PHP的主要業務邏輯就是 匹配密鑰服務器
由於咱們服務器要識別是微信訂單服務器發的請求,仍是其餘服務器發的請求到這個PHP微信
這個PHP可處理回調業務呢 別處理錯了哦fetch
一旦密鑰匹配成功微信支付
//若是同樣說明是騰訊服務器的請求 $plid = $get['out_trade_no'];//獲取商戶訂單號 $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid';//找到這個訂單 $params = array(); $params[':plid'] = $plid;//開始封裝數據 $log = pdo_fetch($sql, $params); if(!empty($log) && $log['status'] == '0') {//若是存在這個訂單 可是沒有支付成功 $log['tag'] = iunserializer($log['tag']); $log['tag']['transaction_id'] = $get['transaction_id'];//微信支付訂單號 $record = array(); $record['status'] = '1'; $record['tag'] = iserializer($log['tag']); pdo_update('core_paylog', $record, array('plid' => $log['plid']));//更新數據 $site = WeUtility::createModuleSite($log['module']);//獲取當前模塊的site對象 if(!is_error($site)) { $method = 'payResult'; if (method_exists($site, $method)) {//調用payResult方法 $ret = array(); $ret['weid'] = $log['weid']; $ret['uniacid'] = $log['uniacid']; $ret['result'] = 'success'; $ret['type'] = $log['type']; $ret['from'] = 'notify'; $ret['tid'] = $log['tid']; $ret['user'] = $log['openid']; $ret['fee'] = $log['fee']; $ret['tag'] = $log['tag']; $site->$method($ret); exit('success'); } } }
看看 又調用site對象的payResult方法了 咱們能夠重寫此方法url
來讓PHP調用咱們本身的業務 該方法參數封裝了以上信息code