微贊平臺拼團外掛的支付流程

大東瓜123發表於2016-03-08

最終支付的是頁面是
vzan/payment/wechat/pay.php第73行
$wOpt = wechat_build($params, $wechat);構造向騰訊傳送的引數,並在本地頁面呼叫支付的JS

引數的傳遞是由url(`mc/cash/wechat`);這個地址傳送過來的,傳遞的規則是ps中放的是訂單的引數
$sl = base64_encode(json_encode($ps));
$auth = sha1($sl . $_W[`uniacid`] . $_W[`config`][`setting`][`authkey`]);
header(“location: ../payment/wechat/pay.php?i={$_W[`uniacid`]}&auth={$auth}&ps={$sl}”);
url(`mc/cash/wechat`)起的是支付中轉的作用,將不同的支付方式轉到相應的.php中,進行處理,對應的檔案就是
vzan/app/source/mc/cash.ctrl.php
微信的支付大約是在第150行左右

那麼如何進行跳轉呢,具體的實現是在paycenter這個檔案中,執行檔案site.php,大約是在第111行中protected function pay

{if !empty($pay[`wechat`][`switch`])}

<div class=”pay-btn” id=”wechat-panel”>
<form action=”{php echo url(`mc/cash/wechat`);}” method=”post”>
<input type=”hidden” name=”params” value=”{php echo base64_encode(json_encode($params));}” />
<input type=”hidden” name=”encrypt_code” value=”” />
<input type=”hidden” name=”card_id” value=”{php echo base64_encode($card_id);}” />
<input type=”hidden” name=”coupon_id” value=”” />
<button class=”btn btn-success btn-block col-sm-12″ disabled=”disabled” type=”submit” id=”wBtn” value=”wechat” style=”height: 42px; font-size: 18px;”>微信支付(必須使用微信內建瀏覽器)</button>
</form>
</div>
<script type=”text/javascript”>
document.addEventListener(`WeixinJSBridgeReady`, function onBridgeReady() {
$(`#wBtn`).removeAttr(`disabled`);
$(`#wBtn`).html(`微信支付`);
});
</script>
{/if}

由誰來引導到支付中心的頁面的呢?是由訂單確認來引導向這個頁面的,具體的實現原理是這樣的 
執行檔案:orderconfirm.php, 
模板檔案:include $this->template(`confirm`);
頁面提交到site.php後,檢查是否是提交資訊,如果是提交資訊,
轉到下面的url:header(“location: ” .  $this->createMobileUrl(`pay`, array(`orderid` => $orderid)));

之前的頁面由order.php來完成


相關文章