玩轉微信2次開發2_微信支付開發_處理響應(微擎版)

用戶在微信訂單系統支付成功之後--微信訂單服務器會主動請求咱們在微信後臺配置的回調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

相關文章
相關標籤/搜索