Payment:微信支付發起支付請求文檔

文檔更新太慢,自己都忍不住要抱怨了。可能越來越慢了

Payment 3.0 微信的配置設置文檔請 點擊這里

項目GitHub地址https://github.com/helei112g/payment

為了調用方便,提供了統一的 Client\Charge 類來發起支付。需要設置的參數

參數 類型 是否必須 說明
body boolean 商品描述
subject string 商品名稱,該參數最長為128個漢字
order_no string 商戶網站唯一訂單號
timeout_express string 設置未付款交易的超時時間,一旦超時,該筆交易就會自動被關閉。
amount float 該筆訂單的資金總額,單位為RMB-Yuan
return_param string 附加數據,在查詢API和支付通知中原樣返回
client_ip string 用戶端實際ip
terminal_id string 自定義參數,可以為終端設備號(門店號或收銀設備ID),PC網頁或公眾號內支付可以傳"WEB"
product_id string 商品ID
openid string 此參數為微信用戶在商戶對應appid下的唯一標識

在上面的參數中,無論微信的哪一種支付都必須提供:

  • body
  • subject
  • order_no
  • timeout_express
  • amount
  • return_param
  • client_ip
  • terminal_id
    這幾個參數,是必須進行設置的。

掃碼支付

用戶掃描商戶展示在各種場景的二維碼進行支付。這里采用的是模式二。

對于掃碼支付,必須提供: product_id 參數,該 product_id 是商戶自己平臺的信息,可用使用sku。

如果掃碼支付時,傳入了 openid,則掃碼時,只能使用對應的微信掃碼才能完成支付。這里可以根據自己的需求來決定。
掃碼支付,模式二介紹

刷卡支付

刷卡支付,就是用于用戶向商戶展示二維碼,商戶通過掃碼槍獲取二維碼或者條碼信息,完成收款。與上面的掃碼支付相對應。
auth_code 是必須設置的參數,掃碼支付授權碼,設備讀取用戶微信中的條碼或者二維碼信息

app支付

適用于商戶在移動端APP中集成微信支付功能。
商戶APP調用微信提供的SDK調用微信支付模塊,商戶APP會跳轉到微信中完成支付,支付完后跳回到商戶APP內,最后展示支付結果。
目前微信支付支持手機系統有:IOS(蘋果)、Android(安卓)和WP(Windows Phone)。

該支付方式,無需額外的參數信息,只需要上面表格中標記的必須參數。

客戶端教程

公眾號支付

商戶已有H5商城網站,用戶通過消息或掃描二維碼在微信內打開網頁時,可以調用微信支付完成下單購買的流程。

這里記住一定時微信內部打開h5頁面。

openid 是公眾號支付必須提供的信息,微信用戶在商戶對應appid下的唯一標識。openid如何獲取,可參考獲取openid

這里用到了 openid,也就說明該支付只能由發起支付請求的公眾號完成支付。

因此,如果有時候遇到:“下單賬號和支付賬號不一致” ,那么肯定是發起支付請求的時候是一個帳號,而進行支付時變成了另外一個微信帳號導致的。

小程序支付與公眾號支付具有相同的請求參數

公眾號調起支付
小程序調起支付

h5支付

H5支付是指商戶在微信客戶端外的移動端網頁展示商品或服務,用戶在前述頁面確認使用微信支付時,商戶發起本服務呼起微信客戶端進行支付。
主要用于觸屏版的手機瀏覽器請求微信支付的場景。可以方便的從外部瀏覽器喚起微信支付

微信這個支付能力,并未完全開放,申請的條件也比較苛刻。不過說實話也不好用。

參數跟app支付一樣,不需要添加額外的信息。

外部網頁喚起微信支付

代碼

下面代碼實例一下


use Payment\Common\PayException;
use Payment\Client\Charge;

$config = require_once('./wxconfig.php');// 微信的配置信息


$channel = 'wx_app';// wx_app    wx_pub   wx_qr   wx_bar  wx_lite   wx_wap


$payData = [
    'body' => '一個蘋果',
    'subject' => '牛逼公司--付款吧',
    'order_no' => 'NB12312355',
    'timeout_express' => '1489241888',
    'amount' => '100',
    'return_param' => 'buy some',
    'client_ip' => '127.0.0.1',
    'terminal_id' => 'WEB',
    //'product_id' => '888',
    //'openid' => 'xxxxxxx',
];
// product_id  openid  參數,并不是每一個支付都需要,具體行為閱讀上面文檔
 
try {
    $str = Charge::run($channel, $config, $payData);
} catch (PayException $e) {
    // 異常處理
    exit;
}

if (is_array($ret)) {
    var_dump($ret);
} else {
    header('Location:' . $ret);
    echo htmlspecialchars($ret);
}
exit;

關于 channel 的說明:

渠道 說明
wx_app 代表app支付
wx_pub 代表公眾號支付
wx_qr 代表掃碼支付
wx_bar 代表刷卡支付
wx_lite 代表小程序支付
wx_wap 代表h5支付

關于支付返回的各種數據,以及相關支付方式,如果調起微信支付,請自行查看對應文檔。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,287評論 25 708
  • 微信支付淺嘗 一. 微信支付方式概覽 1. 刷卡支付 刷卡支付是用戶展示微信錢包內的“刷卡條碼/二維碼”給商戶系...
    飛行員suke閱讀 1,033評論 0 1
  • 追月的云 不曉得 在等夜的月 也只有夜的月 才能耀眼迷人
    野原亦兒閱讀 235評論 0 1
  • 雖然折騰了一些,但總算提交了簽證材料,希望一切順利!靜待結果! 趕回來公司,忘掉不好的東西,期待著開啟新方向,前路...
    聶一一閱讀 127評論 0 0
  • 和同事們在一家飯店吃完飯出來,聽到有人在背后叫了我名字。回頭一看,呀!帥哥!他朝著我笑,特別像肖奈。他說,花花,真...
    趙花花老師閱讀 1,141評論 14 50