成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TP5實(shí)現(xiàn)支付寶電腦網(wǎng)站支付學(xué)習(xí)筆記

TNFE / 2537人閱讀

摘要:第一次做支付寶的支付,踩了點(diǎn)小坑,還算順利。第一步當(dāng)然是在支付寶開放平臺(tái)申請(qǐng)公鑰私鑰等,支付寶關(guān)官方文檔都有詳細(xì)介紹,這里就省略。就是那個(gè)支付寶二維碼的頁面。支付寶支付成功后會(huì)執(zhí)行這兩個(gè)方法,系統(tǒng)會(huì)把你支付的信息用方式異步傳給你的方法。

這兩天在公司做一個(gè)小型WEB項(xiàng)目,需要有支付功能。第一次做支付寶的支付,踩了點(diǎn)小坑,還算順利。激動(dòng)的我趕緊記下實(shí)現(xiàn)的流程。
第一步當(dāng)然是在支付寶開放平臺(tái)申請(qǐng)公鑰私鑰APPID等,支付寶關(guān)官方文檔都有詳細(xì)介紹,這里就省略。
申請(qǐng)完了下面開始開發(fā)者的實(shí)現(xiàn)流程。首先是下載支付寶的官方DEMO,網(wǎng)址是https://docs.open.alipay.com/... 這里建議下載官方的DEMO而不是SDK,因?yàn)閷?duì)新手來說DEMO里有封裝好的函數(shù)可以直接拿來改改就用,比較友好。以后技術(shù)提升了,再拿SDK玩玩。

因?yàn)槲沂莻€(gè)PHPer,當(dāng)然選擇PHP版。下載好之后默認(rèn)名字是alipay.trade.page.pay-PHP-UTF-8,建議改名字為alipay即可。
因?yàn)槲沂怯肨P5開發(fā),所以放到項(xiàng)目根目錄下的外部資源包vendor目錄中。

放進(jìn)去之后,找到alipay目錄下pagepay目錄下的pagepay.php文件,這便是阿里官方提供的支付方法樣例,

我學(xué)著網(wǎng)上一位學(xué)長(zhǎng)的寫法改了一下放到TP5的方法中,見下圖:

走到這里如果順利,便會(huì)出現(xiàn)支付寶的二維碼頁面。我這里因?yàn)榭蛻糁匦律暾?qǐng)權(quán)限所以沒法截圖了。就是那個(gè)支付寶二維碼的頁面。掃碼支付,便會(huì)跳轉(zhuǎn)到支付成功頁面,最后會(huì)跳到你自定義的同步跳轉(zhuǎn)地址。

價(jià)格由前臺(tái)表單傳值即可,這里強(qiáng)調(diào)有三個(gè)必填項(xiàng):訂單號(hào)、訂單名稱、付款金額,這三個(gè)缺哪一個(gè)都會(huì)報(bào)錯(cuò)。我剛開始腦袋發(fā)暈,把訂單名稱去掉了,結(jié)果報(bào)錯(cuò)了...
這里寫完之后,便去config.php配置各項(xiàng)參數(shù),config.php在alipay的根目錄下,配置這一項(xiàng)至關(guān)重要。如果錯(cuò)了,商家可是收不到款的噢...
這里是傻瓜填法,應(yīng)用ID、私鑰、異步地址、同步地址、公鑰。這6項(xiàng)必須填正確。因?yàn)槲沂怯玫腡P5,所以通知地址那里我改成了TP5的寫法,模塊/控制器/方法.
支付寶網(wǎng)關(guān)那里不要更改,如果是沙箱環(huán)境,需要改成"https://openapi.alipaydev.com/gateway.do" 多了個(gè)"dev",因?yàn)槲沂钦鎸?shí)環(huán)境,所以就不用更改。

這里再說一下異步和同步地址,新人肯定不知道是有什么用,大佬略過即可。支付寶支付成功后會(huì)執(zhí)行這兩個(gè)方法,系統(tǒng)會(huì)把你支付的信息用POST方式異步傳給你的方法。因?yàn)槭钱惒?所以頁面是沒有變化的,所謂"打槍的不要,悄悄地進(jìn)村..."在異步這個(gè)方法里可以寫你自己的業(yè)務(wù)邏輯。比如接收值,存入數(shù)據(jù)庫(kù)之類。這里有個(gè)大坑,坑了我兩天,即在異步方法里是沒法用session取值的,我原本想用session取用戶登錄id存入數(shù)據(jù)庫(kù)中,后來問了師傅才知道,異步是服務(wù)器和服務(wù)器之間的交互,所以沒有cookieId,沒有cookieId當(dāng)然沒有session值。對(duì)這里不懂的童鞋可以復(fù)習(xí)下session基礎(chǔ)知識(shí),慚愧,我居然把這么基礎(chǔ)的東西忘了...由此可知,同步方法是可以取session的,因?yàn)槭欠?wù)器和客戶端的交互。如果對(duì)此沒概念,可以在異步方法接收參數(shù)后轉(zhuǎn)成JSON格式,然后用file_put_contents()函數(shù)寫到記事本里看一下。
例:{

"gmt_create":"xxxxxxxx",//訂單創(chuàng)建時(shí)間
"charset":"UTF-8",
"gmt_payment":"xxxxxxxx", //付款時(shí)間
"notify_time":"xxxxx",   //異步回調(diào)時(shí)間
"subject":"XXXXX",     //訂單名稱
"sign":"xxxxxxxxxxxxxxxxxxx",
"buyer_id":"xxxxxxxx",
"invoice_amount":"xxxxx",
"version":"1.0",
"notify_id":"xxxxxxxxx",
"fund_bill_list":"[{"amount":"0.01","fundChannel":"ALIPAYACCOUNT"}]",
"notify_type":"trade_status_sync",
"out_trade_no":"xxxxxxxx", //訂單號(hào)
"total_amount":"0.01",
"trade_status":"TRADE_SUCCESS", //success代表支付成功,商家會(huì)收到錢
"trade_no":"xxxxxx", //支付寶流水號(hào)
"auth_app_id":"xxxxxxxx",
"receipt_amount":"0.01",
"point_amount":"0.00",
"app_id":"xxxxxxxxx",
"buyer_pay_amount":"0.01",
"sign_type":"RSA2",
"seller_id":"xxxxxxxxxxxxx"

}
重要的我都加了注釋了,其他不明白的參數(shù)可以去官方文檔查詢。
同步方法,顧名思義,就是頁面同步跳轉(zhuǎn)的地址,即能讓客戶看見的頁面。這里自定義即可,比如提示用戶支付成功之類文字。
下面是異步和同步方法的示例寫法:
/**

異步同步示例

*/
class Alipay extends Controller {

    
/**
 * 異步方法
 * @return [void] 
 */
public function notify(){
    $post = input();
    if($post["trade_status"] == "TRADE_SUCCESS"){
        //操作數(shù)據(jù)庫(kù) 修改狀態(tài)
        echo "SUCCESS";//返回給支付寶成功 ,不返回這個(gè)  字符 ,支付寶定時(shí) 回調(diào)這個(gè)方法 時(shí)間 5   10   30/m  1小時(shí) 成功為止
    }
    //寫在文本里看一下參數(shù)
    $data = json_encode($post);
    file_put_contents("alipaytext.txt",$data);
}

/**
 * 同步方法
 * @return [type] [description]
 */
public function returnfy(){
    //同步跳轉(zhuǎn)地址
    return $this->fetch();
}

}
這里面重要的是需要在異步方法里判斷trade_status字段,如果等于"TRADE_SUCCESS"即支付成功,后面必須echo返回一個(gè)"SUCCESS",否則支付寶會(huì)認(rèn)為你沒有付款成功,而在24小時(shí)內(nèi)定時(shí)回調(diào)這個(gè)方法。實(shí)際業(yè)務(wù)邏輯根據(jù)你的需求來比如存入訂單表等等,當(dāng)然不會(huì)這么簡(jiǎn)單,最好加一些驗(yàn)證。為了安全。下面是前臺(tái)代碼示例:
{include file="public/header"}



商戶訂單號(hào):
訂單名稱:
付款金額:
商品描述:
{include file="public/right"}

{include file="public/tail"}

最后補(bǔ)上一句:日志文件一定要開啟寫權(quán)限,否則無法自動(dòng)寫入。即在alipay文件夾下右鍵log.txt屬性設(shè)置。出了問題可以在日志里查看。

走到這里,流程就基本介紹完了。歡迎各位大佬拍磚指導(dǎo)。做完支付,會(huì)感覺自己又上了一個(gè)臺(tái)階!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30191.html

相關(guān)文章

  • TP5實(shí)現(xiàn)支付app支付

    摘要:因公司業(yè)務(wù)需要需要給客戶接入支付寶支付自己以前只做過網(wǎng)頁版支付寶支付。添加功能完后我的應(yīng)用列表就會(huì)顯示添加的應(yīng)用,即支付寶支付。最后別忘了在異步方法返回一個(gè),否則支付寶會(huì)以為沒支付成功,小時(shí)內(nèi)每個(gè)幾分鐘就調(diào)一次異步接口。 因公司業(yè)務(wù)需要,需要給客戶接入支付寶支付,自己以前只做過網(wǎng)頁版支付寶支付。折騰了3天,踩了很多坑,終于搞定了,現(xiàn)在記錄一下,分享給大家.一、首先必須通知客戶先申請(qǐng)支付...

    Pandaaa 評(píng)論0 收藏0
  • TP5實(shí)現(xiàn)支付app支付

    摘要:因公司業(yè)務(wù)需要需要給客戶接入支付寶支付自己以前只做過網(wǎng)頁版支付寶支付。添加功能完后我的應(yīng)用列表就會(huì)顯示添加的應(yīng)用,即支付寶支付。最后別忘了在異步方法返回一個(gè),否則支付寶會(huì)以為沒支付成功,小時(shí)內(nèi)每個(gè)幾分鐘就調(diào)一次異步接口。 因公司業(yè)務(wù)需要,需要給客戶接入支付寶支付,自己以前只做過網(wǎng)頁版支付寶支付。折騰了3天,踩了很多坑,終于搞定了,現(xiàn)在記錄一下,分享給大家.一、首先必須通知客戶先申請(qǐng)支付...

    Dionysus_go 評(píng)論0 收藏0
  • 準(zhǔn)備接入個(gè)人支付接口?看完這幾款支付產(chǎn)品再做決定!

    摘要:支持的付款方式主打銀聯(lián)信用卡等,付款可以及時(shí)到賬。支持的付款方式主要是微信支付寶和京東支付。支持微信支付寶掃碼支付。 最近在開發(fā)自己的網(wǎng)站,想要接入一個(gè)第三方的支付平臺(tái),但是處在創(chuàng)業(yè)初期,還沒能成立公司,所以沒有企業(yè)資質(zhì),想接入一款安全且性價(jià)比高的收款產(chǎn)品。以本人選擇困難癥再加點(diǎn)小糾結(jié)的個(gè)性,對(duì)現(xiàn)有的一些第三方支付接口做了一個(gè)對(duì)比,希望能給有相同需要的和正在尋求相關(guān)解決方案的朋友提供一...

    SimonMa 評(píng)論0 收藏0
  • 準(zhǔn)備接入個(gè)人支付接口?看完這幾款支付產(chǎn)品再做決定!

    摘要:支持的付款方式主打銀聯(lián)信用卡等,付款可以及時(shí)到賬。支持的付款方式主要是微信支付寶和京東支付。支持微信支付寶掃碼支付。 最近在開發(fā)自己的網(wǎng)站,想要接入一個(gè)第三方的支付平臺(tái),但是處在創(chuàng)業(yè)初期,還沒能成立公司,所以沒有企業(yè)資質(zhì),想接入一款安全且性價(jià)比高的收款產(chǎn)品。以本人選擇困難癥再加點(diǎn)小糾結(jié)的個(gè)性,對(duì)現(xiàn)有的一些第三方支付接口做了一個(gè)對(duì)比,希望能給有相同需要的和正在尋求相關(guān)解決方案的朋友提供一...

    livem 評(píng)論0 收藏0
  • 一個(gè)PHP文件搞定支付系列之電腦網(wǎng)站支付

    摘要:網(wǎng)上的很多支付寶支付接入教程都頗為復(fù)雜,且需要配置和引入較多的文件,本人通過整理后給出一個(gè)單文件版的,希望可以給各位想接入支付寶支付的帶來些許幫助和借鑒意義。一個(gè)文件搞定支付寶系列一個(gè)文件搞定微信支付系列環(huán)境依賴以上,且需要開啟服務(wù)服務(wù)。 網(wǎng)上的很多PHP支付寶支付接入教程都頗為復(fù)雜,且需要配置和引入較多的文件,本人通過整理后給出一個(gè)單文件版的,希望可以給各位想接入支付寶支付的帶來些許...

    luck 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<