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