摘要:如果還不知道如何簽約,請查看支付寶即時到帳簽約教程完成簽約后,需要把項目導(dǎo)入自己的項目中安裝方法,請參考項目簡介。跳轉(zhuǎn)支付寶通過上一步返回的是請求支付寶的。本次支付寶的即時到帳接口到這里就完成了調(diào)用。
payment 項目2.0版本
特別聲明:
以下文檔均針對 payment 2.0 以上版本,并且PHP需要5.5以上(含)。
代碼中所有編碼均使用 utf-8 。
通過幾天的時間,終于把payment 2.0的基本結(jié)構(gòu)搭好了。今天剛完成支付寶 即時到帳 接口的開發(fā)。趕緊把使用文檔給補上。請大家一定仔細查看文檔,實在還不行就來問我吧?。ㄎ移诖銌栁?,反正我收錢的,哈哈)
即時到帳 接口簽約在你使用這個接口時,請先確認你是否在支付寶商戶中心簽約了該接口。
在商戶中心,看到 即時到帳(已添加),說明你已簽約該接口,可正常使用。如果還不知道如何簽約,請 查看支付寶即時到帳簽約教程
OK!完成簽約后,
需要把 payment項目導(dǎo)入自己的項目中 安裝方法,請參考Payment項目簡介。
調(diào)用示例在項目的 examples 文件夾中,我已提供完整的示例。為了便于大家理解,這里對代碼再進行說明。
支付寶的配置文件在1.x版本中,配置文件被固定寫在了sdk中,這種做法太流氓了。為了不繼續(xù)流氓下去,在2.x版本中,將配置信息獨立出來,讓大家可以根據(jù)自己的實際情況自定義,靈活程度大大增加。
調(diào)用時,僅需要提供給我如下的一個數(shù)組,至于配置信息寫在哪里,完全由你自己決定。
我在示例中,是將配置信息寫在 examples/aliconfig.php 中,然后使用 require_once 包含進來。你完全可以寫cache中、db中。
return [ "partner" => "2088xxxxxxxxxxx", "md5_key" => "xxxxxxxxxxxxxxxxxx", "rsa_private_key" => "./rsa_private_key.pem", "notify_url" => "http://test.helei.com/pay-notify.html", "return_url" => "http://test.helei.com/return-url.html", "time_expire" => "14", ];
參數(shù)介紹
參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
partner | 合作者身份ID | 簽約的支付寶賬號對應(yīng)的支付寶唯一用戶號。以2088開頭的16位純數(shù)字組成。 | 必須 |
md5_key | MD5密鑰 | 點擊這里 | 必須 |
rsa_private_key | RSA私鑰 | 點擊這里 | 必須 |
notify_url | 服務(wù)器異步通知URI | 支付寶服務(wù)器主動通知商戶網(wǎng)站里指定的頁面http路徑。(建議使用https) | 可選 |
return_url | 頁面跳轉(zhuǎn)同步通知頁面路徑 | 支付寶處理完請求后,當前頁面自動跳轉(zhuǎn)到商戶網(wǎng)站里指定頁面的http路徑。 | 可選 |
time_expire | 超時時間 | 設(shè)置未付款交易的超時時間,一旦超時,該筆交易就會自動被關(guān)閉。單位默認為分鐘 | 可選 |
特別說明:
如果上述配置文件必須的key的值為空,會拋出 PayException 異常
如果 notify_url 為空,雖然可支付成功,但是客戶端將無法收到支付寶的回調(diào)結(jié)果。
建議采用https協(xié)議
調(diào)用支付項目中的示例代碼,參見 examples/charge.php
// 生成訂單號 便于測試 function createPayid() { return date("Ymdhis", time()) .substr(floor(microtime()*1000),0,1) .rand(0,9); } // 訂單信息 $orderData = [ "orderTradeNo" => createPayid(), "totalFee" => "1", "clientIp" => "127.0.0.1", "subject" => "我是即時到帳", "body" => "支付測試即時到帳接口", "extraCommonParam" => "", ]; $aliconfig = require_once __DIR__ . "/aliconfig.php"; // 實例化支付環(huán)境類,進行支付創(chuàng)建 $charge = new ChargeContext(); try { $charge->initCharge(Config::ALI_CHANNEL_WEB, $aliconfig); $url = $charge->charge($payData); } catch (PayException $e) { echo $e->errorMessage();exit; } // 請求alipay header("Location:{$url}");
以上代碼就完成了即時到帳的全部調(diào)用,下面分步驟來說明下代碼含義:
訂單信息此部分的key部分,必須采用以下值,否則SDK無法識別。
// createPayid(); 函數(shù)是為了演示方便,隨手寫的一個生成訂單號的函數(shù) $orderData = [ "order_no" => createPayid(), "amount" => "1",// 單位為元 "client_ip" => "127.0.0.1", "subject" => "測試支付", "body" => "支付接口測試", "extra_param" => "", ];
參數(shù)說明
參數(shù) | 參數(shù)名 | 參數(shù)說明 | 是否必須 |
---|---|---|---|
order_no | 訂單號 | 平臺根據(jù)規(guī)則生成的訂單號,最長64位,要在商戶數(shù)據(jù)庫中唯一 | 必須 |
amount | 交易總金額 | 該筆訂單的資金總額,單位為RMB-Yuan。取值范圍為[0.01,100000000.00],精確到小數(shù)點后兩位。 | 必須 |
client_ip | 客戶端IP | 用戶在創(chuàng)建交易時,該用戶當前所使用機器的IP。 | 必須 |
subject | 商品名稱 | 商品的標題/交易標題/訂單標題/訂單關(guān)鍵字等。該參數(shù)最長為128個漢字。 | 必須 |
body | 商品描述 | 對一筆交易的具體描述信息。如果是多種商品,請將商品描述字符串累加傳給body。 | 必須 |
extra_param | 公用回傳參數(shù) | 如果用戶請求時傳遞了該參數(shù),則返回給商戶時會回傳該參數(shù)。 | 可選 |
以下是真正實現(xiàn)數(shù)據(jù)簽名的地方,返回的數(shù)據(jù)可直接用于發(fā)起支付寶支付。大家可以對比下支付寶自身信息,是不是已經(jīng)大大簡化了?
當然簡化帶來的另外一個意思就是:放棄了很多我們正常情況下用不到的功能,比如:花唄分期
// 實例化支付環(huán)境類,進行支付創(chuàng)建 $charge = new ChargeContext(); try { $charge->initCharge(Config::ALI_CHANNEL_WEB, $aliconfig); $url = $charge->charge($payData); } catch (PayException $e) { echo $e->errorMessage();exit; }
這里對于調(diào)用者,僅僅需要知道 ChargeContext 這一個類,這里使用了 策略模式 + 簡單工廠模式 兩種方法來進行調(diào)用的簡化。這種方式也非常方便后期進行擴展,對于客戶端與復(fù)雜的邏輯進行了隔離。
跳轉(zhuǎn)支付寶通過上一步返回的是請求支付寶的url。由于在頁面上可能需要通過js調(diào)用支付寶或者還有其他邏輯,因為我并沒有直接重定向到支付寶,而把控制權(quán)交到了客戶端手中。
以下代碼,示例的是簡單的利用返回的url,重定向到支付寶,完成支付。
header("Location:{$url}");
本次支付寶的即時到帳接口到這里就完成了調(diào)用。下一節(jié)把回調(diào)通知部分完成,這樣一個基本的支付流程就完成了。
技術(shù)支持如果需要協(xié)助集成到項目,可付費獲得我的服務(wù)!
微信:helei543345
支持我:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21014.html
摘要:目前常量的含義及時到賬接口,主要用于網(wǎng)站支付手機網(wǎng)站支付接口,主要用于手機瀏覽器移動支付接口,主要用于原生調(diào)用方式非常統(tǒng)一,傳入的參數(shù)也被最大程度的統(tǒng)一化。 payment 項目2.0版本 前面已經(jīng)說完了 PHP接入支付寶 即時到帳接口 回調(diào)接口也已經(jīng)完成。這篇主要講 手機網(wǎng)站支付 、 移動支付 接口的調(diào)用。調(diào)用方式與即時到帳 基本一樣。 關(guān)于代碼部分的詳細解釋,請 參看 PHP接入...
摘要:接入支付寶接口實現(xiàn)打賞功能并記錄打賞信息及訂單,這樣網(wǎng)站可以統(tǒng)計打賞的用戶信息,并對打賞多的文章根據(jù)收入進行熱門排行。 PHP接入支付寶接口實現(xiàn)打賞功能并記錄打賞信息及訂單,這樣網(wǎng)站可以統(tǒng)計打賞的用戶信息,并對打賞多的文章根據(jù)收入進行熱門排行。 一、需求 網(wǎng)站需要實現(xiàn)文章打賞功能,這樣更能增加博主寫博客的動力。 二、打賞方式 目前實現(xiàn)打賞的功能有兩種方式: 第一種是直接貼個博主的支付...
摘要:首頁收款頁面后臺管理服務(wù)端軟件源碼打包下載開發(fā)包作者補充上面已經(jīng)失效了下面是新的個人免簽約支付寶微信支付解決方案 首頁 showImg(https://segmentfault.com/img/bVbcCCl?w=389&h=244); 收款頁面 showImg(https://segmentfault.com/img/bVbcCCo?w=643&h=710); 后臺管理 showIm...
摘要:支付界面掃碼界面支付成功后可以跳轉(zhuǎn)到你程序指定的地址手機版支付寶支付演示源碼安裝使用教程學(xué)習(xí)交流微信 支付界面: showImg(https://segmentfault.com/img/bVbh0HO?w=451&h=394); 掃碼界面: showImg(https://segmentfault.com/img/bVbh0HW?w=653&h=634); 支付成功后可以跳轉(zhuǎn)到你程序...
摘要:我們知道,開發(fā)微信支付需要申請服務(wù)號并且需要一系列的資料才可以開通。怪麻煩的,現(xiàn)在我們可以用第三方開放的免簽約微信支付接口,支付寶接口和錢包接口,實現(xiàn)實時到帳的微信支付開發(fā)。 我們知道,開發(fā)微信支付需要申請服務(wù)號并且需要一系列的資料才可以開通。怪麻煩的,現(xiàn)在我們可以用第三方開放的免簽約微信支付接口,支付寶接口和QQ錢包接口,實現(xiàn)實時到帳的微信支付開發(fā)。 我們只需要在第三方的微信支付免簽...
閱讀 2942·2021-11-24 09:39
閱讀 1197·2021-11-02 14:38
閱讀 4214·2021-09-10 11:26
閱讀 2785·2021-08-25 09:40
閱讀 2341·2019-08-30 15:54
閱讀 507·2019-08-30 10:56
閱讀 2799·2019-08-26 12:14
閱讀 3246·2019-08-26 12:13