創(chuàng)新互聯(lián)一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、成都網(wǎng)頁設(shè)計(jì)、小程序設(shè)計(jì)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、app軟件定制開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來見證!
微信公眾號(hào)程序或微信小程序項(xiàng)目中基本都要有微信支付。支付場(chǎng)景基本就是點(diǎn)擊支付,然后手機(jī)底部拉起輸入微信支付密碼彈窗,密碼輸入正確后,支付完成。但是無論是微信小程序或微信公眾號(hào)程序都是在后端調(diào)用微信api接口進(jìn)行統(tǒng)一下單,將接口返回?cái)?shù)據(jù)回傳前端拉起支付操作,然后異步通知支付結(jié)果的這樣一個(gè)流程。
如果是微信公眾號(hào)程序接入微信支付,需要登錄微信公眾號(hào),點(diǎn)擊廣告與服務(wù) – 微信支付關(guān)聯(lián)一下注冊(cè)好的微信商戶平臺(tái)(此處一般都是客戶自己完成,不介紹。也就是說只有關(guān)聯(lián)過的微信商戶才能在公眾號(hào)中拉起支付。
然后點(diǎn)擊設(shè)置與開發(fā)–基本配置,拿到公眾號(hào)的appid和appsecret(開發(fā)密鑰)。
如果是微信小程序程序接入微信支付,登錄微信小程序,點(diǎn)擊功能–微信支付,關(guān)聯(lián)一下注冊(cè)好的微信商戶平臺(tái)(此處一般都是客戶自己完成,不介紹。也就是說只有關(guān)聯(lián)過的微信商戶才能在小程序中拉起支付。
然后點(diǎn)擊開發(fā)–開發(fā)管理–開發(fā)設(shè)置,拿到小程序的appid和appsecret(開發(fā)密鑰)。
登錄微信商戶平臺(tái),點(diǎn)擊賬戶中心–API安全,設(shè)置一下證書和兩個(gè)密鑰(此處兩個(gè)密鑰設(shè)置為相同的)。相關(guān)配置操作根據(jù)提示一步一步走流程就行的?!疽话阋玫讲僮髅艽a、多個(gè)短信驗(yàn)證碼】
配置成功后,要拿到3個(gè)證書文件和一個(gè)自己輸入進(jìn)去的密鑰,務(wù)必保存并記錄下來。程序中會(huì)用到。拿到證書文件如下:
點(diǎn)擊產(chǎn)品中心–我的產(chǎn)品,點(diǎn)擊申請(qǐng)JSAPI支付。
開發(fā)配置中需要填寫支付授權(quán)目錄,此處填寫后端服務(wù)器域名即可。
后端開發(fā)由于編程語言不同,此處以PHP開發(fā)為例。介紹一下統(tǒng)一下單接口和退款接口的調(diào)用;首先要下載一下官方提供的SDK引入項(xiàng)目中。然后將之前獲取到的證書文件也放入程序目錄中。由于各個(gè)版本SDK不同,此處只記錄自己用的配置流程(不喜勿噴)。
如果需要我這版SDK,QQ:
官方有接口文檔,具體接口參數(shù)不做介紹,自己看吧。另外由于SDK版本不同,不保證下面的代碼可以無縫銜接其他SDK包直接使用。下面上代碼;
//引入擴(kuò)展 import('JsPayWechat.lib.WxPayApi', 'vendor'); import('JsPayWechat.example.WxPayJsApiPay', 'vendor'); $tools = new \JsApiPay(); $input = new \WxPayUnifiedOrder(); //設(shè)置支付描述 $input->SetBody("********"); //內(nèi)部訂單號(hào)(我們系統(tǒng)中自己生成的訂單號(hào)) $input->SetOut_trade_no($tid); //訂單金額,由于單位是分,而我的是元,故乘了100 $price = $price * 100; $input->SetTotal_fee("" . ($price)); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); //支付結(jié)果通知地址,寫支付結(jié)果邏輯的訪問鏈接 $notifyUrl = zUrl('Other/dealLevelOrder'); $input->SetNotify_url($notifyUrl); $input->SetTrade_type("JSAPI"); //拉起支付用戶的open_id $input->SetOpenid($open_id); $order = \WxPayApi::unifiedOrder($input); $jsApiParameters = $tools->GetJsApiParameters($order); $jsApiParameters = json_decode($jsApiParameters, true); // 將$jsApiParameters內(nèi)容返回前端頁面即可。