欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php支付寶在線支付接口開發(fā)教程

 更新時間:2016年09月19日 16:53:40   作者:NCZB007  
這篇文章主要為大家詳細介紹了php支付寶在線支付接口開發(fā)教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下

1.什么是第三方支付

  所謂第三方支付,就是一些和各大銀行簽約、并具備一定實力和信譽保障的第三方獨立機構(gòu)提供的交易支持平臺。在通過第三方支付平臺的交易中,買方選購商品后,使用第三方平臺提供的賬戶進行貨款支付,由第三方通知賣家貨款到達。

  目前提供第三方支付的機構(gòu)很多,常見的有支付寶、財付通、快錢、網(wǎng)銀在線、易寶支付、云網(wǎng)等各大支付平臺。網(wǎng)站如果需要實現(xiàn)第三方支付首先應(yīng)該向第三方支付平臺申請一個賬號并簽署協(xié)議,協(xié)議生效后第三方支付平臺將為其開通在線支付功能,通過程序?qū)⒔涌诩傻骄W(wǎng)站中。

  為什么要使用第三方支付?因為第三方支付平臺已經(jīng)與各大銀行進行簽約,網(wǎng)站主只需要在此平臺申請一個賬號即可支持幾乎所有的種類的銀行卡信用卡的交易。

2.第三方支付原理

以上簡要說明了支付過程,當(dāng)然其中省略了一些步驟(比如購物車,訂單等),我們重點來看支付流程。

  2.1用戶向商城網(wǎng)站發(fā)起確認訂單的請求

  2.2商城網(wǎng)站接收到請求保存訂單數(shù)據(jù)到數(shù)據(jù)庫或其他存儲介質(zhì)

  2.3返回訂單確認頁面,頁面上應(yīng)該顯示訂單金額等信息

  2.4用戶確認支付,發(fā)起支付請求。注:支付請求是發(fā)送到支付網(wǎng)關(guān)(比如支付寶、網(wǎng)銀在線)而不是發(fā)送到商城網(wǎng)站。

  2.5顯示支付頁面

  2.6用戶填寫認證信息(賬號密碼等)提交

  2.7這里有兩個步驟一個是扣款成功后頁面跳轉(zhuǎn)到支付結(jié)果頁面(展示給用戶),另一個是支付通知,這兩步?jīng)]有先后順序可能同時執(zhí)行,商城網(wǎng)站接收到支付通知后根據(jù)驗證規(guī)則驗證信息的有效性,并作出相應(yīng)的更改操作(例:有效則更改訂單為已付款狀態(tài),無效則記錄非法請求信息)。

  以支付寶為例:如果實現(xiàn)在網(wǎng)站中集成支付寶接口,首先要有一個支付寶賬號,接下來向支付寶申請在線支付業(yè)務(wù),簽署協(xié)議。協(xié)議生效后有支付寶一方會給網(wǎng)站方一個合作伙伴ID,和安全校驗碼,有了這兩樣?xùn)|西就可以按照支付寶接口文檔開發(fā)支付寶接口了,在上圖的幾個步驟中只有4和7兩個步驟在商城與支付網(wǎng)關(guān)之間有信息交互。在步驟4中指將數(shù)據(jù)發(fā)送到支付網(wǎng)關(guān)(支付寶),在步驟7中是的通知驗證部分,驗證網(wǎng)關(guān)請求網(wǎng)站某地址,網(wǎng)站按驗證規(guī)則對信息進行驗證記錄并作出響應(yīng),我們幾乎在開發(fā)任何支付接口時,重點是這兩部分的開發(fā),明白支付接口原理,開發(fā)支付接口就不難了。

3.支付寶接口開發(fā)

  3.1接口簡介與測試

  支付寶目前提供了,擔(dān)保交易、標(biāo)準(zhǔn)即時到帳、雙功能等幾種接口,只是在功能上有些差異,網(wǎng)站集成方式是一樣的。以標(biāo)準(zhǔn)即時到帳接口為例,在與支付寶簽署協(xié)議后,還需要幾個步驟才能完成集成。

  選擇“我要自助集成”接下來會看到的鏈接,點擊下載技術(shù)文檔。

  在下載后的文件中有標(biāo)準(zhǔn)支付寶交易服務(wù)接口、商家工具、接口集成指南等接文檔,另外還有幾種語言寫的demo.我們可以根據(jù)接口文檔按規(guī)則全新開發(fā),也可以再demo基礎(chǔ)上修改集成到網(wǎng)站,需要注意的是開發(fā)支付接口需要在公網(wǎng)(服務(wù)器必須可以通過外網(wǎng)訪問)才可以完成整個調(diào)試過程,如果服務(wù)器在外網(wǎng)訪問不到,則無法接收到支付通知。

  看一下demo中每個文件的作用:

  這里已經(jīng)下載好了(見資源目錄pay文件夾),為了便于調(diào)試增加修改了若干文件,并增加了一張數(shù)據(jù)表保存訂單信息,我們修改一下配置文件完成一個測試過程。

  alipay_config.php是基礎(chǔ)信息配置文件,我們需要將在支付寶后臺獲取的PID與Key寫入到配置文件中。

  配置項:

  其中方框內(nèi)的數(shù)據(jù)是我們需要重點修改的。支付通知地址與返回地址的區(qū)別,前面已經(jīng)提到,在步驟7中有兩項:支付結(jié)果頁面與支付通知信息,支付結(jié)果頁面是用戶支付完成后會自動跳轉(zhuǎn)到這個地址這里是返回地址($return_url)。

  支付通知地址同樣是用戶支付完成后,支付寶會請求該地址($notify_url),但是支付通知是支付寶服務(wù)器直接請求,不會被用戶看到。這兩個地址必須是以http開頭的完整路徑格式為了完成測試過程,這里已經(jīng)將/pay/alipay/notify_url.php改寫,將$notify_url設(shè)置為可訪問到此文件的URL即可。這幾項配置好后再根據(jù)數(shù)據(jù)庫腳本(pay/orders.sql)創(chuàng)建一張數(shù)據(jù)表。并根據(jù)數(shù)據(jù)庫的配置信息修改mysql_config.php.通過對支付寶提供的demo做簡單修改就可以完成創(chuàng)建支付請求(步驟4)了,這里更改了支付首頁等頁面(見源碼包pay目錄)。我們先測試一下:

  數(shù)據(jù)庫中增加了一條“訂單信息”.

  如果點擊“確認支付”按鈕或者確認支付 鏈接將會跳轉(zhuǎn)到支付寶頁面,點擊按鈕時通過表單POST方式將信息提交到支付網(wǎng)關(guān),由于支付請求數(shù)據(jù)無需讓用戶看到,這里都寫在隱藏域中了。確認支付 鏈接是通過URL傳參,因為支付寶接口允許以POST或者GET方式提交,所以兩種方式都可以。把參數(shù)提交給支付網(wǎng)關(guān)后,頁面跳轉(zhuǎn)到到支付頁面。我們看到如下圖所示:

  我們看到支付寶為我們提供了兩種支付方式,一種是通過支付寶賬戶支付,另一種是通過銀行卡支付。例如選擇使用銀行卡支付,填寫郵箱或手機號跳轉(zhuǎn)到如下頁面:

  我們開單支付寶幾乎支持所有的銀行卡支付,同時有信用卡和網(wǎng)點方式付款,選擇對應(yīng)的銀行下一步按提示付款即可。付款完成后頁面會返回到我們在配置文件中配置的$return_url地址,同時“訂單狀態(tài)”也會發(fā)生改變。

  注:測試時如果沒有在外網(wǎng)測試(即支付通知地址無法在外網(wǎng)訪問)則支付通知無法被請求到,無法自動完成訂單狀態(tài)的修改。

  3.2支付寶接口規(guī)范與代碼分析

  支付寶接口規(guī)范可參考/pay/doc/標(biāo)準(zhǔn)支付寶交易服務(wù)接口(專用于防釣魚網(wǎng)站)。Pdf,里面已經(jīng)有了比較詳細的說明。

  3.2.1如何創(chuàng)建支付請求

  在前面的測試中我們點擊了“確認支付”將信息將信息提交到了支付寶的支付網(wǎng)關(guān),我們可以思考一下應(yīng)該發(fā)送哪些參數(shù)給支付網(wǎng)關(guān)。關(guān)于請求參數(shù)列表可以參考標(biāo)準(zhǔn)支付寶交易服務(wù)接口(專用于防釣魚網(wǎng)站)。Pdf中的3.2.2.需要注意的是并不是我們把這些參數(shù)原封不動的提交到支付寶就可以了,為了保證數(shù)據(jù)安全支付寶目前使用的是MD5簽名防止數(shù)據(jù)篡改機制。

  在提交數(shù)據(jù)前需要將需要提交的數(shù)據(jù)以一定規(guī)則(見接口文檔)組裝成字符串,加上安全校驗碼(Key)組成一個新字符串,通過MD5生成一個32字節(jié)的簽名,我們提交支付請求時還需要把這個簽名也提交過去??匆幌卤韱卧创a

  支付寶接收到參數(shù)后會進行驗證請求參數(shù)的合法性,驗證無誤后將顯示支付頁面,否則提示錯誤。

  3.2.2 如何驗證支付通知

  在用戶支付完成后,支付寶會請求網(wǎng)站支付通知地址(這個地址應(yīng)在創(chuàng)建支付請求時作為參數(shù)傳遞過去)。返回參數(shù)列表參見標(biāo)準(zhǔn)支付寶交易服務(wù)接口(專用于防釣魚網(wǎng)站)。Pdf3.3.1.支付寶的返回數(shù)據(jù)中同樣有一個簽名串(采取和支付請求同樣的簽名方式),在支付通知文件中首先要對數(shù)據(jù)進行簽名驗證。除了驗證簽名,還需要將參數(shù)中的notify_id提交到支付寶的驗證網(wǎng)關(guān)支付寶系統(tǒng)這個通知的真實性,通知驗證。支付寶系統(tǒng)判斷通知是否是自己發(fā)送,如果是以字符串格式返回 true,否則返回false,我們通過驗證服務(wù)器返回的數(shù)據(jù)驗證請求的真實性,如果都驗證通過則可以進行更改訂單數(shù)據(jù)、給用戶發(fā)送郵件通知等操作。關(guān)于驗證簽名可以看一下通知文件中的源碼。帶demo中將參數(shù)中的notify_id提交到支付寶是通過POST方式提交并取得返回數(shù)據(jù),代碼片段:

  這里重點就是fsockopen函數(shù),在發(fā)送電子郵件時我們已經(jīng)接觸過,通過此函數(shù)打開套接字連接,類似于以前學(xué)過的fopen函數(shù)返回的是一個文件句柄,之后可以使用文件函數(shù)( fgets()、fgetss()、fputs()、fclose() feof()等)對其進行操作,代碼中使用了fputs()(同fwrite())函數(shù),寫入數(shù)據(jù)來模擬表單以POST方式提交數(shù)據(jù),最后通過fgets()函數(shù)獲取返回的數(shù)據(jù)保存到數(shù)組中,最后進行驗證,具體參照源碼。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 實例詳解PHP中html word 互轉(zhuǎn)的方法

    實例詳解PHP中html word 互轉(zhuǎn)的方法

    這篇文章主要介紹了實例詳解PHP中html word 互轉(zhuǎn)的方法的相關(guān)資料,涉及到php html word互轉(zhuǎn)的相關(guān)知識,本文介紹的非常詳細,具有參考借鑒價值
    2016-01-01
  • php生成縮略圖填充白邊(等比縮略圖方案)

    php生成縮略圖填充白邊(等比縮略圖方案)

    上傳圖片直接縮放的話就會導(dǎo)致圖片變形,這樣體驗肯定就不好了。下面提供一種解決方法,縮小后添加白邊的方法看下面的代碼實現(xiàn)
    2013-12-12
  • laravel5.4生成驗證碼的代碼

    laravel5.4生成驗證碼的代碼

    這篇文章主要為大家詳細介紹了laravel5.4生成驗證碼的相關(guān)代碼,使用gregwar和captcha實現(xiàn)驗證碼的具體步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • PHP實現(xiàn)中國公民身份證號碼有效性驗證示例代碼

    PHP實現(xiàn)中國公民身份證號碼有效性驗證示例代碼

    這篇文章主要介紹了PHP實現(xiàn)中國公民身份證號碼有效性驗證示例代碼,可以判斷身份證號碼的正確性,非常具有實用價值
    2017-05-05
  • Drupal簡體中文語言包安裝教程

    Drupal簡體中文語言包安裝教程

    這篇文章主要介紹了Drupal簡體中文語言包安裝教程,本文講解了Drupal中文語言包的安裝步驟,需要的朋友可以參考下
    2014-09-09
  • Yii2漢字轉(zhuǎn)拼音類的實例代碼

    Yii2漢字轉(zhuǎn)拼音類的實例代碼

    這篇文章主要介紹了Yii2漢字轉(zhuǎn)拼音類的實例代碼,需要的朋友可以參考下
    2017-04-04
  • YII2 實現(xiàn)多語言配置的方法分享

    YII2 實現(xiàn)多語言配置的方法分享

    這篇文章主要介紹了YII2實現(xiàn)多語言配置的方法,文中YII2的版本是2.0.7,可能會與其他教程有不同,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • centos 7系統(tǒng)下安裝laravel運行環(huán)境的步驟詳解

    centos 7系統(tǒng)下安裝laravel運行環(huán)境的步驟詳解

    Laravel框架對于開發(fā)網(wǎng)頁應(yīng)用來說是一個絕好的的工具,最近正好又在學(xué)習(xí)linux系統(tǒng),所以下面這篇文章主要給大家介紹了在centos 7系統(tǒng)下安裝laravel運行環(huán)境的步驟,需要的朋友可以參考借鑒,下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • ThinkPHP5&5.1實現(xiàn)驗證碼的生成、使用及點擊刷新功能示例

    ThinkPHP5&5.1實現(xiàn)驗證碼的生成、使用及點擊刷新功能示例

    這篇文章主要介紹了ThinkPHP5&5.1實現(xiàn)驗證碼的生成、使用及點擊刷新功能,結(jié)合實例形式詳細分析了thinkPHP5驗證碼具體定義、使用方法及點擊刷新相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • php 的反射詳解及示例代碼

    php 的反射詳解及示例代碼

    本文主要介紹PHP的反射內(nèi)容的知識,這里提供相關(guān)的資料講解,及簡單示例代碼供大家參考,有興趣的小伙伴可以參考下
    2016-08-08

最新評論