溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php微信支付流程是什么

發(fā)布時間:2023-04-12 14:30:14 來源:億速云 閱讀:111 作者:iii 欄目:編程語言

今天小編給大家分享一下php微信支付流程是什么的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

微信支付基本流程

微信支付的基本流程可以分為用戶在商家APP或H5頁面下單、商家調(diào)用微信支付API進行支付、微信返回交易結(jié)果、商家接收支付通知四個步驟。

具體來說,當(dāng)用戶在商家APP或H5頁面下單時,商家需要把訂單信息傳遞到微信支付平臺,經(jīng)過微信支付平臺的支付處理后,返回支付結(jié)果。當(dāng)支付結(jié)果返回后,商家根據(jù)交易結(jié)果進行相應(yīng)的業(yè)務(wù)處理,并向用戶展示交易結(jié)果。

  1. 用戶選擇商品并提交訂單;

  2. 商戶系統(tǒng)接收到用戶訂單請求,調(diào)用微信支付API提交交易請求;

  3. 微信支付平臺接收到商戶請求后,驗證用戶身份和支付金額,向用戶發(fā)起訂單支付請求。

  4. 用戶確認支付,輸入支付密碼

  5. 微信支付平臺將支付結(jié)果返回商戶系統(tǒng),并通知用戶支付成功。

微信支付技術(shù)原理

微信支付技術(shù)原理主要由微信支付API、微信支付平臺、商戶系統(tǒng)三部分組成,下面我們先來看一下微信支付的API。

微信支付API

當(dāng)商戶系統(tǒng)通過微信支付發(fā)起支付請求時,需要通過微信支付API向微信支付平臺發(fā)送支付請求。微信支付API是一組RESTful接口,具有高度的可讀性和易使用性,主要包括統(tǒng)一下單、查詢訂單、關(guān)閉訂單、申請退款、查詢退款等接口。下面我們主要介紹一下統(tǒng)一下單接口的使用。

統(tǒng)一下單接口的使用步驟

  1. 獲取預(yù)支付訂單號
    在商戶系統(tǒng)中,開發(fā)人員通過調(diào)用微信支付API的統(tǒng)一下單接口,向微信支付平臺提交支付請求。微信支付平臺收到請求后,對商戶提交的訂單信息進行校驗,然后返回一個預(yù)支付訂單號,用于唯一標(biāo)識該筆訂單。開發(fā)人員需要保存該預(yù)支付訂單號,并作為后續(xù)支付流程的重要參數(shù)使用。

統(tǒng)一下單接口調(diào)用示例:

<?php
require_once "WxPay.Api.php";

$input = new WxPayUnifiedOrder();
$input->SetBody("test");
$input->SetOut_trade_no(WxPayConfig::MCHID . date("YmdHis"));
$input->SetTotal_fee("1");
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetNotify_url("http://www.example.com/wxpay/notify.php");
$input->SetTrade_type("APP");
$order = WxPayApi::unifiedOrder($input);
print_r($order);
?>
  1. 獲取支付參數(shù)
    在接收到微信支付平臺返回的預(yù)支付訂單號后,商戶系統(tǒng)需要再次調(diào)用微信支付API的統(tǒng)一下單接口,獲取支付參數(shù)。支付參數(shù)包括APPID、時間戳、隨機字符串、簽名方式、支付簽名等。支付簽名是商戶系統(tǒng)或第三方支付代理商對支付參數(shù)進行加密后的結(jié)果,唯一標(biāo)識該筆交易。商戶系統(tǒng)需要保存這些支付參數(shù),并將其返回給移動端,由移動端喚起微信SDK完成支付流程。

統(tǒng)一下單接口調(diào)用示例:

$parameters = [
    'appid' => $app_id,
    'partnerid' => $mch_id,
    'prepayid' => $prepay_id,
    'package' => 'Sign=WXPay',
    'noncestr' => $nonce_str,
    'timestamp' => $timestamp,
];
ksort($parameters);
$string = '';
foreach ($parameters as $key => $value) {
    $string .= $key . '=' . $value . '&';
}
$string .= 'key=' . $key;
$parameters['sign'] = strtoupper(md5($string));

微信支付平臺

微信支付平臺是微信的一個支付服務(wù)平臺,主要由支付、結(jié)算、清算等模塊構(gòu)成。支付模塊負責(zé)接收商戶下發(fā)的支付請求并進行處理,接收并處理支付結(jié)果通知;結(jié)算模塊負責(zé)商戶的結(jié)算,包括商戶的結(jié)算查詢、結(jié)算策略配置、生成結(jié)算清單等;清算模塊負責(zé)定期清算,管理微信支付平臺各功能模塊的財務(wù)事務(wù)。

商戶系統(tǒng)

商戶系統(tǒng)是微信支付的用戶端,負責(zé)接收、處理微信支付平臺發(fā)起的各種支付請求,并進行相應(yīng)的支付操作。文中所提到的商戶系統(tǒng)主要是指PHP商戶系統(tǒng),通過調(diào)用微信支付API傳輸訂單信息、獲取預(yù)支付訂單號、獲取支付參數(shù)等基本支付操作。

以上就是“php微信支付流程是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI