PHP在线支付
php網(wǎng)站如何做個(gè)頁(yè)面接入網(wǎng)銀在線支付接口?
=>有兩個(gè)是用來(lái)接收網(wǎng)銀在線的反饋傳遞頁(yè)面(這兩個(gè)頁(yè)面一般是進(jìn)行下面的第四步)
一個(gè)是配置文件
一個(gè)是網(wǎng)銀在線的一些函數(shù)(一般不需要修改)
1 先做商品支付頁(yè)面
2 用戶確定提交訂單(同時(shí)本地寫入數(shù)據(jù)庫(kù)一個(gè)唯一的訂單號(hào),并設(shè)定成未支付狀態(tài))
3.提交訂單到網(wǎng)銀在線支付頁(yè)面
4用戶支付成功后返回網(wǎng)站操作頁(yè)面(對(duì)用戶進(jìn)行操作,數(shù)據(jù)中的當(dāng)前訂單更改成已支付)
?
支付寶:
網(wǎng)址:https://b.alipay.com/order/productDetail.htm?productId=2012111200373124&tabId=4#ps-tabinfo-hash
=》您申請(qǐng)的產(chǎn)品需要通過(guò)技術(shù)開(kāi)發(fā)才能在您的網(wǎng)站上使用,請(qǐng)點(diǎn)此下載集成開(kāi)發(fā)包
??????????? ╭───────────────────────╮ ??? ────┤?????????? 支付寶代碼示例結(jié)構(gòu)說(shuō)明???????????? ├──── ??????????? ╰───────────────────────╯ ????????????????????????????????????????????????????????????????? ?????? 接口名稱:支付寶即時(shí)到賬批量退款有密接口(refund_fastpay_by_platform_pwd) ??? 代碼版本:3.3 ???????? 開(kāi)發(fā)語(yǔ)言:PHP ???????? 版??? 權(quán):支付寶(中國(guó))網(wǎng)絡(luò)技術(shù)有限公司 ?????? 制 作 者:支付寶商戶事業(yè)部技術(shù)支持組 ???????? 聯(lián)系方式:商戶服務(wù)電話0571-88158090
??? ─────────────────────────────────
─────── ?代碼文件結(jié)構(gòu) ───────
refund_fastpay_by_platform_pwd-php-UTF-8 ? │ ? ├lib┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈類文件夾 ? │? │ ? │? ├alipay_core.function.php ┈┈┈┈┈┈支付寶接口公用函數(shù)文件 ? │? │ ? │? ├alipay_notify.class.php┈┈┈┈┈┈┈支付寶通知處理類文件 ? │? │ ? │? ├alipay_submit.class.php┈┈┈┈┈┈┈支付寶各接口請(qǐng)求提交類文件 ? │? │ ? │? └alipay_md5.function.php┈┈┈┈┈┈┈支付寶接口MD5函數(shù)文件 ? │ ? ├log.txt┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈日志文件 ? │ ? ├alipay.config.php┈┈┈┈┈┈┈┈┈┈┈┈基礎(chǔ)配置類文件 ? │ ? ├alipayapi.php┈┈┈┈┈┈┈┈┈┈┈┈┈┈支付寶接口入口文件 ? │ ? ├notify_url.php ┈┈┈┈┈┈┈┈┈┈┈┈┈服務(wù)器異步通知頁(yè)面文件 ? │ ? ├cacert.pem ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈用于CURL中校驗(yàn)SSL的CA證書(shū)文件 ? │ ? └readme.txt ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈使用說(shuō)明文本
※注意※
1、必須開(kāi)啟curl服務(wù) (1)使用Crul需要修改服務(wù)器中php.ini文件的設(shè)置,找到php_curl.dll去掉前面的";"即可 (2)文件夾中cacert.pem文件請(qǐng)務(wù)必放置到商戶網(wǎng)站平臺(tái)中(如:服務(wù)器上),并且保證其路徑有效,提供的代碼demo中的默認(rèn)路徑是當(dāng)前文件夾下——getcwd().'\\cacert.pem'
2、需要配置的文件是: alipay.config.php alipayapi.php
●本代碼示例(DEMO)采用fsockopen()的方法遠(yuǎn)程HTTP獲取數(shù)據(jù)、采用DOMDocument()的方法解析XML數(shù)據(jù)。
請(qǐng)根據(jù)商戶網(wǎng)站自身情況來(lái)決定是否使用代碼示例中的方式—— 如果不使用fsockopen,那么建議用curl來(lái)代替; 如果環(huán)境不是PHP5版本或其以上,那么請(qǐng)用其他方法代替DOMDocument()。
curl、XML解析方法需您自行編寫代碼。
───────── ?類文件函數(shù)結(jié)構(gòu) ─────────
alipay_core.function.php
function createLinkstring($para) 功能:把數(shù)組所有元素,按照“參數(shù)=參數(shù)值”的模式用“&”字符拼接成字符串 輸入:Array? $para 需要拼接的數(shù)組 輸出:String 拼接完成以后的字符串
function createLinkstringUrlencode($para) 功能:把數(shù)組所有元素,按照“參數(shù)=參數(shù)值”的模式用“&”字符拼接成字符串,并對(duì)參數(shù)值urlencode 輸入:Array? $para 需要拼接的數(shù)組 輸出:String 拼接完成以后的字符串
function paraFilter($para) 功能:除去數(shù)組中的空值和簽名參數(shù) 輸入:Array? $para 簽名參數(shù)組 輸出:Array? 去掉空值與簽名參數(shù)后的新簽名參數(shù)組
function argSort($para) 功能:對(duì)數(shù)組排序 輸入:Array? $para 排序前的數(shù)組 輸出:Array? 排序后的數(shù)組
function logResult($word='') 功能:寫日志,方便測(cè)試(看網(wǎng)站需求,也可以改成存入數(shù)據(jù)庫(kù)) 輸入:String $word 要寫入日志里的文本內(nèi)容 默認(rèn)值:空值
function getHttpResponsePOST($url, $cacert_url, $para, $input_charset = '') 功能:遠(yuǎn)程獲取數(shù)據(jù),POST模式 輸入:String $url 指定URL完整路徑地址 ????? String $cacert_url 指定當(dāng)前工作目錄絕對(duì)路徑 ????? Array? $para 請(qǐng)求的數(shù)據(jù) ????? String $input_charset 編碼格式。默認(rèn)值:空值 輸出:String 遠(yuǎn)程輸出的數(shù)據(jù)
function getHttpResponseGET($url, $cacert_url) 功能:遠(yuǎn)程獲取數(shù)據(jù),GET模式 輸入:String $url 指定URL完整路徑地址 ????? String $cacert_url 指定當(dāng)前工作目錄絕對(duì)路徑 輸出:String 遠(yuǎn)程輸出的數(shù)據(jù)
function charsetEncode($input,$_output_charset ,$_input_charset) 功能:實(shí)現(xiàn)多種字符編碼方式 輸入:String $input 需要編碼的字符串 ????? String $_output_charset 輸出的編碼格式 ????? String $_input_charset 輸入的編碼格式 輸出:String 編碼后的字符串
function charsetDecode($input,$_input_charset ,$_output_charset) 功能:實(shí)現(xiàn)多種字符解碼方式 輸入:String $input 需要解碼的字符串 ????? String $_output_charset 輸出的解碼格式 ????? String $_input_charset 輸入的解碼格式 輸出:String 解碼后的字符串
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
function md5Sign($prestr, $key) 功能:MD5簽名 輸入:String $prestr 待簽名數(shù)據(jù) ????? String $key 私鑰 輸出:String 簽名結(jié)果
function md5Verify($prestr, $sign, $key) 功能:MD5驗(yàn)簽 輸入:String $data 待簽名數(shù)據(jù) ????? String $sign 簽名結(jié)果 ????? String $key 私鑰 輸出:bool 驗(yàn)證結(jié)果 ┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
alipay_notify.class.php
function verifyNotify() 功能:對(duì)notify_url的認(rèn)證 輸出:Bool? 驗(yàn)證結(jié)果:true/false
function verifyReturn() 功能:對(duì)return_url的認(rèn)證 輸出:Bool? 驗(yàn)證結(jié)果:true/false
function getSignVeryfy($para_temp, $sign) 功能:獲取返回時(shí)的簽名驗(yàn)證結(jié)果 輸入:Array $para_temp 通知返回來(lái)的參數(shù)數(shù)組 ????? String $sign 支付寶返回的簽名結(jié)果 輸出:Bool 獲得簽名驗(yàn)證結(jié)果
function getResponse($notify_id) 功能:獲取遠(yuǎn)程服務(wù)器ATN結(jié)果,驗(yàn)證返回URL 輸入:String $notify_id 通知校驗(yàn)ID 輸出:String 服務(wù)器ATN結(jié)果
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
alipay_submit.class.php
function buildRequestMysign($para_sort) 功能:生成要請(qǐng)求給支付寶的參數(shù)數(shù)組 輸入:Array $para_sort 已排序要簽名的數(shù)組 輸出:String 簽名結(jié)果
function buildRequestPara($para_temp) 功能:根據(jù)反饋回來(lái)的信息,生成簽名結(jié)果 輸入:Array $para_temp 請(qǐng)求前的參數(shù)數(shù)組 輸出:String 要請(qǐng)求的參數(shù)數(shù)組
function buildRequestParaToString($para_temp) 功能:根據(jù)反饋回來(lái)的信息,生成簽名結(jié)果 輸入:Array $para_temp 請(qǐng)求前的參數(shù)數(shù)組 輸出:String 要請(qǐng)求的參數(shù)數(shù)組字符串
function buildRequestForm($para_temp, $method, $button_name) 功能:建立請(qǐng)求,以表單HTML形式構(gòu)造(默認(rèn)) 輸入:Array $para_temp 請(qǐng)求前的參數(shù)數(shù)組 ????? String $method 提交方式。兩個(gè)值可選:post、get ????? String $button_name 確認(rèn)按鈕顯示文字 輸出:String 提交表單HTML文本
function buildRequestHttp($para_temp) 功能:建立請(qǐng)求,以模擬遠(yuǎn)程HTTP的POST請(qǐng)求方式構(gòu)造并獲取支付寶的處理結(jié)果 輸入:Array $para_temp 請(qǐng)求前的參數(shù)數(shù)組 輸出:String 支付寶處理結(jié)果
function buildRequestHttpInFile($para_temp, $file_para_name, $file_name) 功能:建立請(qǐng)求,以模擬遠(yuǎn)程HTTP的POST請(qǐng)求方式構(gòu)造并獲取支付寶的處理結(jié)果,帶文件上傳功能 輸入:Array $para_temp 請(qǐng)求參數(shù)數(shù)組 ????? String $file_para_name 文件類型的參數(shù)名 ????? String $file_name 文件完整絕對(duì)路徑 輸出:String 支付寶返回處理結(jié)果
function query_timestamp() 功能:用于防釣魚(yú),調(diào)用接口query_timestamp來(lái)獲取時(shí)間戳的處理函數(shù) 輸出:String 時(shí)間戳字符串
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
────────── ?出現(xiàn)問(wèn)題,求助方法 ──────────
如果在集成支付寶接口時(shí),有疑問(wèn)或出現(xiàn)問(wèn)題,可使用下面的鏈接,提交申請(qǐng)。 https://b.alipay.com/support/helperApply.htm?action=supportHome 我們會(huì)有專門的技術(shù)支持人員為您處理。
?
?
網(wǎng)銀在線銀行卡在線支付網(wǎng)關(guān)
?銀行卡在線支付=》
商戶系統(tǒng)設(shè)計(jì)人員、編程人員及測(cè)試人員。該人員需要具備一定的網(wǎng)站開(kāi)發(fā)能力,了解JAVA、ASP、PHP、ASP.NET等開(kāi)發(fā)語(yǔ)言中的一種,并對(duì)信息安全有一定的認(rèn)識(shí)。
| 名詞 | 解釋 |
| 商戶 | 指已注冊(cè)成為網(wǎng)銀在線用戶、并使用網(wǎng)銀在線產(chǎn)品實(shí)現(xiàn)其收付費(fèi)功能需求、為其用戶提供各類產(chǎn)品或者相關(guān)服務(wù)的企業(yè)或個(gè)人。 |
| 消費(fèi)者 | 指在商戶網(wǎng)站等系統(tǒng)購(gòu)物的企業(yè)或個(gè)人。 |
| 購(gòu)物 | 指消費(fèi)者在商戶網(wǎng)站購(gòu)買相關(guān)產(chǎn)品或服務(wù)。 |
| 掉單 | 網(wǎng)銀在線管理后臺(tái),訂單是支付成功狀態(tài),商戶自己網(wǎng)站后臺(tái)是未支付狀態(tài)。兩個(gè)后臺(tái)訂單狀態(tài)不一致的現(xiàn)象稱為掉單。 |
| 服務(wù)器異步通知功能 | 網(wǎng)銀在線服務(wù)器異步方式發(fā)送支付結(jié)果給商戶網(wǎng)站。能夠解決掉單。對(duì)應(yīng)AutoReceive程序示例。 |
相關(guān)資源:
支付流程演示鏈接?? http://chinabank.com.cn/aminute/
商戶管理登錄地址:https://merchant3.chinabank.com.cn
網(wǎng)銀在線 : http://www.chinabank.com.cn/gateway/help.html?
支付平臺(tái)網(wǎng)關(guān)接口地址:https://pay3.chinabank.com.cn/PayGate
登陸網(wǎng)銀在線商戶后臺(tái) https://merchant3.chinabank.com.cn/login.do
網(wǎng)銀在線官網(wǎng)地址:http://www.chinabank.com.cn
B2C銀行卡支付的接口文檔:http://www.chinabank.com.cn/gateway/chinabank.zip
?
銀聯(lián)在線支付:
文檔和接口下載地址: https://online.unionpay.com/mer/doc/viewDoc.action?? ---php接口開(kāi)發(fā)包 (并附有“銀聯(lián)在線支付(UPOP) ECSHOP支付插件”)
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/lbs8/p/3750693.html
總結(jié)
- 上一篇: u-boot,linux,文件系统移植笔
- 下一篇: java位运算(转)