# 微信支付 - 支付通知
統一下單時有一個必填參數:notify_url,即支付成功時的通知地址用,以處理后期業務,比如修改訂單狀態,通知請求中將會攜帶以下參數:
- appid 商戶所對應的公眾號 APPID
- bank_type 用戶支付所使用的銀行類型
- cash_fee 用戶最終實付款
- fee_type 用戶支付的貨幣類型 CNY 為人民幣
- is_subscribe 用戶是否關注了公眾號
- mch_id 商戶 ID
- nonce_str 隨機字符
- openid 用戶相對于公眾號的唯一ID (同一個用戶在不同公眾號中 Openid 不同)
- out_trade_no 為訂單 ID,和統一下單時的 out_trade_no 對應。
- result_code 交易是否成功 SUCCESS/FAIL
- return_code 通信狀態標識 SUCCESS/FAIL
- sign 數據簽名
- time_end 交易結束時間
- total_fee 訂單的總金額(和 cash_fee 不一樣)
- trade_type 支付方式類別(JSAPI:公眾號支付,NATIVE:原生掃碼支付, APP:APP 支付, WAP:手機瀏覽器支付, MICROPAY:刷卡支付)
- transaction_id 微信交易 ID
## 檢測本次請求是否有效
通知請求為服務端對服務器端,因些調試請使用日志。
## 接收到請求之后,如果發生異常,可命名用 NotifyRequest::fail() 方法響應本次請求。
```php
use Thenbsp\Wechat\Payment\NotifyRequest;
$request = new NotifyRequest();
if ( !$request->isValid() ) {
NotifyRequest::fail('Invalid Request');
}
```
## 查看請求參數
```php
// 查看本次請求內容
var_dump($request->getContent());
// 查看全部參數
var_dump($request->getOptions());
// 查看指定參數
var_dump($request['openid']);
var_dump($request['out_trade_no']);
var_dump($request['cash_fee']);
// 獲取到這些參數后,可進行后期業務處理,比如修改訂單狀態為 “已付款”,示例:
// UPDATE order SET status = "SUCCESS" WHERE orderid = $request['out_trade_no']
// 內容業務處理完后,不要忘了返回給微信服務器,避免重復請求
NotifyRequest::success('OK');
```