微信支付,已經(jīng)是非常火爆了,那么這次跟隨我們一起來閱讀深圳市星翼創(chuàng)想網(wǎng)絡(luò)科技有限公司(專業(yè)的網(wǎng)站建設(shè)公司)轉(zhuǎn)載自網(wǎng)絡(luò)的這篇文章,一起了解一下用戶在微信內(nèi)打開網(wǎng)頁時,可以調(diào)用微信支 付完成下單功能的模塊開發(fā),也就是在微信內(nèi)的H5頁面通過jsApi接口實現(xiàn)支付功能。當然了,微信官網(wǎng)上的微信支付開發(fā)文檔也講解的很詳細,并且有實現(xiàn) 代碼可供參考,有的朋友直接看文檔就可以自己實現(xiàn)此支付接口的開發(fā)了。
一、前言
為何我還寫一篇微信支付接口的博文呢?第一,我們 必須知道,所謂的工作經(jīng)驗很多都是靠總結(jié)出來的,你只有總結(jié)了更多知識,積累了更多經(jīng)驗,你才能在該行業(yè)中脫穎而出,我個人覺得如今的招聘,很多都需要工 作經(jīng)驗(1年、3年、5年....),其實,工作時間的長久不能衡量一個人技術(shù)水平的高低,有的人一年的工作經(jīng)驗?zāi)苣?年工作經(jīng)驗的程序猿的工資,有的3 年工作經(jīng)驗的卻有可能比別人只有一年工作經(jīng)驗的還低,所以說,總結(jié)才能讓自己的知識體系,經(jīng)驗深度更牛逼更穩(wěn)固(雖然寫一篇博文挺花費時間的);第二,寫 博文分享給大家還是挺有成就感的,首先是能讓新手從我分享的博文中能學到東西,并且能快速將博文所講解的技術(shù)運用到實際中來,所以我寫的博文基本上能讓新 人快速讀懂并且容易理解,另外,技術(shù)大神的話,看到博文有講解的不對之處,還可以指出,并且可以交流,何樂而不為呢,我們需要的就是分享和交流。
扯遠了,直接進入該主題的詳解。
現(xiàn)在的微信支付方式有N種,看下圖,有刷卡支付、 公眾號支付、掃碼支付和APP支付,另外還有支付工具的開發(fā),本博文選擇的是公眾號支付借口而開發(fā)進行講解,其他幾種支付接口開發(fā)基本上思路都是一樣的, 只要你能看懂我這博文所講解的基本思路,你基本上也能獨自開發(fā)其他幾個支付接口。
二、思路詳解
我們可以拿微信支付接口文檔里的業(yè)務(wù)流程時序圖看 看,如下圖,基本思路是這樣子:首先在后臺生成一個鏈接,展示給用戶讓用戶點擊(例如頁面上有微信支付的按鈕),用戶點擊按鈕后,網(wǎng)站后臺會根據(jù)訂單的相 關(guān)信息生成一個支付訂單,此時會調(diào)用統(tǒng)一下單接口,對微信支付系統(tǒng)發(fā)起請求,而微信支付系統(tǒng)受到請求后,會根據(jù)請求過來的數(shù)據(jù),生成一個 預支付交易會話標識(prepay_id,就是通過這個來識別該訂單的),我們的網(wǎng)站收到微信支付系統(tǒng)的響應(yīng)后,會得到prepay_id,然后通過自己 構(gòu)造微信支付所需要的參數(shù),接著將支付所需參數(shù)返回給客戶端,用戶此時可能會有一個訂單信息頁,會有一個按鈕,點擊支付,此時會調(diào)用JSAPI接口對微信 支付系統(tǒng)發(fā)起 請求支付,微信支付系統(tǒng)檢查了請求的相關(guān)合法性之后,就會提示輸入密碼,用戶此時輸入密碼確認,微信支付系統(tǒng)會對其進行驗證,通過的話會返回支付結(jié)果,然 后微信跳轉(zhuǎn)會H5頁面,這其中有一步是異步通知網(wǎng)站支付結(jié)果,我們網(wǎng)站需要對此進行處理(比如說異步支付結(jié)果通過后,需要更新數(shù)據(jù)表或者訂單信息,例如標 志用戶已支付該訂單了,同時也需要更新訂單日志,防止用戶重復提交訂單)。
三、代碼講解
本次開發(fā)環(huán)境用的是php5.6 + MySQL + Redis + Linux + Apache,所選用的框架的CI框架(這些環(huán)境不一定需要和我的一致,框架也可以自己選擇,反正自己稍微修改下代碼就能移植過去了)。
微信支付接口的開發(fā)代碼我已經(jīng)提前寫好了,在這里我對其進行分析講解,方便大家能輕松理解,當然,假如你有一定的基礎(chǔ),直接看代碼就能理清所有流程了,并且我的代碼基本上都寫上了注釋(對于新手來說,這一點比微信文檔所提供的代碼好一點)。
在這里,我們就不詳細貼出代碼了,因為代碼挺多的,各位可以移步到以下站長站,查看詳細內(nèi)容。http://www.chinaz.com/web/2015/1110/468690.shtml
文章轉(zhuǎn)載請保留網(wǎng)址:http://cctvsc.cn/news/solutions/1541.html