當前位置: 首頁> 最新文章列表> PHP 微信支付與退款功能實現完整指南

PHP 微信支付與退款功能實現完整指南

gitbox 2025-07-15

概述

微信支付是一種基於手機端的支付方式,可以實現在線支付和退款功能。本文將深入解析如何使用PHP實現微信支付和退款功能,適合需要集成微信支付接口的開發者。

準備工作

註冊微信支付商戶賬號

首先,您需要前往微信支付官方網站註冊一個商戶賬號。完成註冊後,您將獲得一個商戶號,這是您在微信支付中的唯一標識。

獲取API密鑰

在微信支付商戶後台,您需要生成一個API密鑰,用於與微信支付進行通信。這個API密鑰是保密的,只能在服務器端使用。

微信支付流程

統一下單

統一下單是微信支付的第一步,也是整個支付流程中非常重要的一步。在統一下單接口中,您需要提供以下參數:

 appid:您的微信公眾號或小程序的appid<br>mch_id:商戶號<br>nonce_str:隨機字符串,用於防止重複提交<br>body:商品描述<br>out_trade_no:商戶訂單號,需要保證唯一性<br>total_fee:訂單金額,單位為分<br>spbill_create_ip:客戶端IP<br>notify_url:異步通知URL,微信支付結果將通過該URL通知商戶<br>trade_type:交易類型,如JSAPI、NATIVE、APP等<br>openid:用戶在商戶appid下的唯一標識,僅在JSAPI支付時需要<br>sign:簽名,用於驗證接口調用的合法性

通過以上參數構建一個統一下單請求,並將該請求發送給微信支付API接口。微信支付API將返回一個預支付會話標識,即prepay_id,作為支付憑證。

生成支付參數

通過上一步返回的prepay_id,您需要構建一個用於調起微信支付的參數:

 appId:您的微信公眾號或小程序的appid<br>timeStamp:當前的時間戳,單位為秒<br>nonceStr:隨機字符串,用於防止重複提交<br>package:統一下單接口返回的prepay_id對應的值<br>signType:簽名类型,默認為MD5<br>paySign:簽名,用於驗證參數的合法性

將以上參數構建為JSON格式,並返回給客戶端。客戶端可以使用這些參數調起微信支付。

客戶端支付

客戶端收到支付參數後,調起微信支付。用戶在微信中輸入支付密碼確認支付。

支付結果通知

當客戶端完成支付後,微信會向設置的異步通知URL發送支付結果的通知。

 openid:用戶的唯一標識<br>out_trade_no:商戶訂單號<br>transaction_id:微信支付訂單號<br>total_fee:訂單金額