Payment:支付寶手機網站支付教程

支付寶的H5支付體驗真不錯(支付寶叫他手機網站支付)。

反觀微信支付幹嘛要把H5支付藏起來?而且體驗還那麼差。


Payment 3.0 支付寶的配置設置文檔請 點擊這裏

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

從本篇開始,將用支付寶的沙箱方式進行演示,在項目的 payment/examples 中我已經提供了我的沙箱帳號。

新版接口已經同時支持 RSA 與 RSA2 。更換籤名方式時,注意公鑰的變化,在demo中我進行了註釋。

另外支付寶爲了提升支付體驗,可以將 手機網站支付轉Native支付 ,對於混合應用是非常好的體驗。這部分服務器端的業務邏輯無須變動,只需要客戶端更新到最新的 詳情地址

還是先講手機網站支付需要設置哪些參數,後面用代碼演示。代碼部分大家會發現跟 即時到賬 支付的使用完全一致。他們的不同之處僅僅是下單參數的區別。

參數 類型 是否必須 說明
body boolean 商品描述
subject string 商品名稱,該參數最長爲128個漢字
order_no string 商戶網站唯一訂單號
timeout_express string 設置未付款交易的超時時間,一旦超時,該筆交易就會自動被關閉。
amount float 該筆訂單的資金總額,單位爲RMB-Yuan
return_param string 公用回傳參數
goods_type string 商品主類型:0—虛擬類商品,1—實物類商品 默認爲1
store_id string 商戶門店編號

body 主要是對商品的描述,根據自己的業務寫就好,不過不要用一些非常特殊的字符,支付寶可能會進行一些處理,導致你的結果與預期不一樣

subject 可以寫一下商品名稱信息,主要是方便支付寶後臺對賬時查看

order_no 自己生成的訂單號,每次下單的單號必須唯一。也就是說:同一個 order_no 他的其他下單數據不能發生變化,價格、名稱等等。如果有變化,需要重新生成一個訂單號。

timeout_express 訂單過期時間,很簡單,你希望在那一刻過期,就寫那個點的時間戳。只會精確到分鐘

amount 訂單的金額,就是用戶實際需要支付的金額。

return_param 希望支付寶異步通知時,原樣返回給你的數據,同樣注意避免一些特殊字符

goods_type 用來區分購買的是實際商品還是虛擬商品,虛擬商品不需要物流發貨,並且 虛擬類商品不支持使用花唄渠道

store_id 門店編號,這部分數據主要是支付寶爲了將業務深化到線下而提供的,如果用不到,不設置就好。

代碼調用。

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

$config = require_once('./aliconfig.php');// 支付寶的配置信息


$channel = 'ali_wap';
$payData = [
    'body' => '一個蘋果',
    'subject' => '牛逼公司--付款吧',
    'order_no' => 'NB12312355',
    'timeout_express' => '1489241888',
    'amount' => '100',
    'return_param' => 'buy some',
    'goods_type' => 1,
    'store_id' => '',// 沒有就不設置
];

try {
    $payUrl = Charge::run($channel, $config, $payData);
} catch (PayException $e) {
    // 異常處理
    exit;
}

echo htmlspecialchars($payUrl);

大家在這裏可以回到即時到賬的部分對比一下,調用代碼完全一致。唯一的差別就是 payData 中的些微差別。
多了一個 store_id 參數。少了另外兩個參數: qr_mod paymethod

後面的幾種支付在調用上也是如此沒有差別,變化主要時圍繞 payData 進行的。

當然這裏最重要的變化是:$channel 。Payment 知道使用那種支付方式,完全是根據這個參數來設置的。因此一定要設置正確。再把對應的信息貼出來。方便大家查看。

名稱 含義
ali_web 即時到賬
ali_app app支付(移動支付)
ali_wap H5支付(手機網站支付、wap支付)
ali_qr 當面付中的掃碼支付
ali_bar 當面付中的條碼支付

另外這裏返回的依然是一個url。大家根據自己的業務進行合理的處理。htmlspecialchars() 函數的目的還是爲了轉義,正式使用時,請注意。

關於異步通知部分,會有專門的文章講解,這裏暫時略過。請關注後面的文章。


如果你有不清楚的或者願意交流的地方,請聯繫我:

郵箱[email protected]

如果你覺得這個項目有幫助到你,請打賞我,讓我有動力持續下去 左邊微信,右邊支付寶

image

ps: 一般性的問題請大家可以先查資料,如果實在無法解決找我吧(不免費服務)。

關於沙箱

對於支付寶的沙箱功能,我得再囉嗦幾句。先把我配置的沙箱帳號貢獻出來。方便大家測試

商家信息

買家信息

當前沙箱的買家帳號,只能使用 android 版本進行登陸。

沙箱錢包只支持掃一掃、付款碼、門店詳情頁功能,其餘功能不提供

image

所以大家,不要在使用我提供的沙箱帳號時,用你們真實的支付寶帳號去支付,那樣子是不會成功的。沙箱的所有功能,都只能使用上面的沙箱帳號去完成。

發佈了113 篇原創文章 · 獲贊 153 · 訪問量 62萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章