知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
小程序微信支付 實(shí)例配置詳解
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):83
一、開發(fā)前的準(zhǔn)備
①. 開發(fā)步驟
- 如果開發(fā)者已做過 JSAPI 或 JSSDK 調(diào)起微信支付,接入小程 序支付非常相似,以下是三種接入方式的對(duì)比
如此看來,小程序要想集成支付功能,倒是簡(jiǎn)單了
②. 閱讀業(yè)務(wù)流程圖
- 本人強(qiáng)烈推薦閱讀這個(gè)圖示,流程明確了,代碼邏輯自然也就理順了!
③. 小程序支付業(yè)務(wù)
此處,小程序官方已做了詳細(xì)說明 —— 業(yè)務(wù)說明
# 很多人這一步還沒有完成,就咔咔咔的測(cè)試支付功能,顯然是太急于求成了,比如:我!
> 注意:
> 1. 要開通微信支付功能(一般有兩三天的審核時(shí)間)
> 2. 本人開通后,選擇的是 “綁定一個(gè)已有的微信支付商戶號(hào)”,也就幾分鐘的事
1 appid 必須為最后拉起收銀臺(tái)的小程序appid;
# 這句話感覺不說還好,一說更容易引起多余的考慮(忽視)
2 mch_id 為和 appid 成對(duì)綁定的支付商戶號(hào),收款資金會(huì)進(jìn)入該商戶號(hào);
# 此處我直接使用了所綁定的商戶號(hào)中的 mch_id
3 trade_type 請(qǐng)?zhí)顚?span id="msi0q00" class="token string">"JSAPI";
# 可暫時(shí)忽略,因?yàn)槲以诖a中已進(jìn)行了配置
4 openid 為 appid 對(duì)應(yīng)的用戶標(biāo)識(shí),即使用 "wx.login" 接口獲得的 openid
# 可參考我的 payment/index.js 代碼
# 另一種情況,如果項(xiàng)目數(shù)據(jù)庫(kù)中已保存了該用戶的openid字段,可自行獲取
二、小程序端代碼配置指導(dǎo)
這里進(jìn)行配置的代碼,都在附錄源碼包的 wxMini-PayDemo\wxChat 目錄下
為了項(xiàng)目代碼的 通用性/易管理性,我自行提取出了兩個(gè)主要的公共文件 config.js 和 util.js;
①. utils下 config.js 文件的使用
- config.js 文件中,主要就是配置一些公共訪問路徑之類的數(shù)據(jù),方便后期代碼上線后的鏈接更改所以,對(duì)于其中的 restUrl 和 imgServer 修改為自己的服務(wù)器地址即可
> 注意一點(diǎn):
我的 "restUrl" 是對(duì)應(yīng)于我的小程序 Api 接口路徑的,舉個(gè)例子:
我的支付回調(diào)路徑為 "https://www.mySercver.com/WxApi/Pay/notify"
②. utils下 util.js 文件的使用
- 這個(gè)是和 config.js 文件在同一目錄下的公共文件
- 其實(shí)就是整合了三個(gè)主要的方法,需要注意的是:如果你有所補(bǔ)充,記得在文件的最后進(jìn)行 “exports” 輸出就好
module.exports = {
http_get: http_get,
http_post: http_post,
showToast: showToast,
}
③. payment/index.js 文件的使用
- 此文件作為 小程序微信支付前端的核心文件
- 在保證你的各個(gè)文件目錄對(duì)應(yīng)配置正確的情況下,只需在進(jìn)行支付喚醒時(shí),調(diào)用其中的 btnClickToPay() 方法即可:
當(dāng)然,我只是隨便定的一個(gè)方法,實(shí)際使用的時(shí)候,其實(shí)就是以類似的形式,去調(diào)用后面的 wxPay()方法唄!
三、服務(wù)端代碼文件的使用指導(dǎo)
- 這里進(jìn)行配置的代碼,都在源碼包的 wxMini-PayDemo\Server-PHP 目錄下
①. 公共配置文件的數(shù)據(jù)補(bǔ)充 - 此為源代碼中的 “wxMini-PayDemo\Server-PHP\Conf\config.php”,此文件代碼比較少,我直接進(jìn)行展示:
return array(
//'配置項(xiàng)'=>'配置值'
'wxPay' => [
'appid' => 'wx8787xxxxxxxxxxxxx',//TODO 此處使用的是小程序的 APPID
'app_secret' => '0a7xxxxxxxxxxxxxxxxxxxxxxxxxxxxx622', //小程序的應(yīng)用密鑰
'pay_mchid' => '13xxxxxx02', // 微信支付MCHID 商戶收款賬號(hào)
'pay_apikey' => '1qaxxxxxxxxxxxxxxxxxxxxxhgf5', // 微信支付KEY
'notify_url' => 'https://www.mySercver.com/WxApi/Pay/notify', // 微信支付成功后進(jìn)行回調(diào)的鏈接
'login_url' => "https://api.weixin.qq.com/sns/jscode2session?" .
"appid=%s&secret=%s&js_code=%s&grant_type=authorization_code", // 微信使用code換取用戶openid及session_key的url地址
],
);
對(duì)于上述配置信息的來源,應(yīng)該沒啥疑問吧?
注意一點(diǎn):
"notify_url" 作為支付回調(diào)的鏈接地址,要求配置成自己的服務(wù)器路徑
;#同時(shí)注意協(xié)議的要求 “https”
小程序官方要求:
;# 需要進(jìn)行服務(wù)器域名的配置
;# 操作位置為 “小程序(微信公眾平臺(tái))/設(shè)置/開發(fā)設(shè)置”中的“服務(wù)器域名->request 合法域名”
②. 公共方法 function.php 的補(bǔ)充
- 對(duì)于本人的邏輯處理中,其實(shí)只有一個(gè)方法 curl_get(), 并且只在 PayController.class.php 的
getOpenID() 方法中進(jìn)行了一次調(diào)用,也可以自行提取使用的
③. 核心處理文件 PayController.class.php
此文件代碼已做了詳細(xì)處理,在你正確放置后,需要注意的幾點(diǎn)如下:
- (1). 注意命名空間 “namespace” 與自己業(yè)務(wù)代碼的對(duì)應(yīng)
- (2). 在 "prepay()“方法中,因?yàn)椴煌臉I(yè)務(wù)都會(huì)有屬于自己的判斷處理邏輯,
所以,在使用時(shí)完全可以替換掉所調(diào)用的 "prepayOrderDeal()" 方法 ;# 相信沒多大歧義吧!
#【在此處,我建議進(jìn)行一下微信支付金額的校對(duì)】
# 比如,通過訂單號(hào)到你的項(xiàng)目數(shù)據(jù)庫(kù)中,查詢出需要支付的金額再與此比較,
# 只有符合你的要求才可以進(jìn)行微信支付的下單操作
- (3). 在 “pay()” 方法中
建議對(duì)應(yīng)當(dāng)前的訂單號(hào),保存微信支付返回的 prepay_id
- (4). 再有就是,在 “notify()” 這個(gè)回調(diào)方法中
一定會(huì)涉及到自己業(yè)務(wù)的更新處理邏輯
所以被調(diào)用的 "payNotifyOrderDeal()"方法中就可以改成你自己的業(yè)務(wù)邏輯了 (此處是可以自行補(bǔ)充的)
注意,此處傳入的 "$result" 參數(shù)中,我主要使用的就是其中的 "out_trade_no" 和 "total_fee"
# 包含著微信支付的眾多信息,可自行提取
前者用于匹配我對(duì)該已支付訂單的后續(xù)更新操作
#【提示:我在使用時(shí)需要使用 "M" 進(jìn)行字符串的截取才是我自己業(yè)務(wù)的實(shí)際訂單編號(hào)哦!】;
后者是實(shí)際微信消費(fèi)的金額,可用于數(shù)據(jù)表的記錄,以方便對(duì)賬人員的校對(duì)工作
四、使用及測(cè)試效果
①. 測(cè)試效果
- 在我的小程序項(xiàng)目中,喚醒的效果(開發(fā)工具中)如下:
②. 補(bǔ)充說明
- 相信在實(shí)際配置使用的過程中一定會(huì)出現(xiàn)各種問題,我也是一點(diǎn)點(diǎn)的梳理排錯(cuò)過來的
- 前面的多是些配置問題的規(guī)范,如果到了最后的喚醒階段,出現(xiàn)的問題要注意查看開發(fā)工具的控制臺(tái),
- 其中會(huì)有比較詳細(xì)的報(bào)錯(cuò)信息,然后再進(jìn)行排查解決
- 有何問題,歡迎指摘,祝你配置順利咯!
☆ 附錄:
①.>>> Github 源碼下載參考
②. 總結(jié)
通過對(duì)以上操作的梳理,可以提取出主要的幾個(gè)步驟:
- 小程序要開通你的微信支付功能 # 需要審核時(shí)間的
- 審核通過后,緊接著進(jìn)行"開通"操作 #可有兩種開通方式進(jìn)行選擇的
- 前后端重要信息配置完畢
- 補(bǔ)充自己的特有邏輯處理操作 #pay/prepayOrderDeal()和 pay/payNotifyOrderDeal()
- 支付回調(diào)成功后,進(jìn)行后續(xù)的訂單(項(xiàng)目服務(wù)器)查詢操作
相關(guān)案例查看更多
相關(guān)閱讀
- 關(guān)鍵詞快速排名
- 搜索引擎排名
- 搜索排名
- 昆明網(wǎng)站建設(shè)公司
- 貴州小程序開發(fā)
- 網(wǎng)站建設(shè)百度官方
- 定制小程序開發(fā)
- 智慧農(nóng)貿(mào)市場(chǎng)
- 搜索引擎優(yōu)化
- 麗江小程序開發(fā)
- 小程序分銷商城
- 江蘇小程序開發(fā)
- 云南網(wǎng)頁(yè)制作
- 昆明小程序開發(fā)
- 網(wǎng)站建設(shè)公司網(wǎng)站
- 昆明小程序定制開發(fā)
- 云南網(wǎng)站開發(fā)
- 百度小程序開發(fā)公司
- 汽車報(bào)廢系統(tǒng)
- 云南網(wǎng)絡(luò)營(yíng)銷
- 網(wǎng)站建設(shè)專家
- 商標(biāo)注冊(cè)
- 報(bào)廢車管理系統(tǒng)
- 花農(nóng)小程序
- 云南小程序哪家好
- 分銷系統(tǒng)
- Web開發(fā)框架
- 北京小程序開發(fā)
- 云南小程序商城
- 汽車報(bào)廢管理