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