小程序是無法直接連數(shù)據(jù)庫,需要一個服務端web應用程序,提供https接口讓小程序調(diào)用,
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了雷山免費建站歡迎大家使用!
這個web應用程序可以訪問數(shù)據(jù)庫,開發(fā)web端開發(fā)程序使用語言:java,.net,php等
PAY頁面往 js_api_call.php 傳值 獲取不到的問題
echo 是可以echo出來的 但是
這里不寫死就會報錯 $key0$
?php
/**
* JS_API支付demo
* ====================================================
* 在微信瀏覽器里面打開H5網(wǎng)頁中執(zhí)行JS調(diào)起支付。接口輸入輸出數(shù)據(jù)格式為JSON。
* 成功調(diào)起支付需要三個步驟:
* 步驟1:網(wǎng)頁授權獲取用戶openid
* 步驟2:使用統(tǒng)一支付接口,獲取prepay_id
* 步驟3:使用jsapi調(diào)起支付
*/
//獲取信息
@$name="支付測試-包包";
@$price=0.01*100;
@$hyid=$_GET['hyid'];
@$out_trade_no=$_GET['num'];//訂單號
include_once("../WxPayPubHelper/WxPayPubHelper.php");
//使用jsapi接口
$jsApi = new JsApi_pub();
//=========步驟1:網(wǎng)頁授權獲取用戶openid============
//通過code獲得openid
if (!isset($_GET['code']))
{
//觸發(fā)微信返回code碼
$url = $jsApi-createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);
Header("Location: $url");
}else
{
//獲取code碼,以獲取openid
$code = $_GET['code'];
$jsApi-setCode($code);
$openid = $jsApi-getOpenId();
}
//=========步驟2:使用統(tǒng)一支付接口,獲取prepay_id============
//使用統(tǒng)一支付接口
$unifiedOrder = new UnifiedOrder_pub();
//設置統(tǒng)一支付接口參數(shù)
//設置必填參數(shù)
//appid已填,商戶無需重復填寫
//mch_id已填,商戶無需重復填寫
//noncestr已填,商戶無需重復填寫
//spbill_create_ip已填,商戶無需重復填寫
//sign已填,商戶無需重復填寫
$unifiedOrder-setParameter("openid","$openid");//商品描述
$unifiedOrder-setParameter("body","$name");//商品描述
//自定義訂單號,此處僅作舉例
$timeStamp = time();
$out_trade_no = WxPayConf_pub::APPID."$timeStamp";
$unifiedOrder-setParameter("out_trade_no","$out_trade_no");//商戶訂單號
$unifiedOrder-setParameter("total_fee","$price");//總金額
$unifiedOrder-setParameter("notify_url","");//通知地址
$unifiedOrder-setParameter("trade_type","JSAPI");//交易類型
//非必填參數(shù),商戶可根據(jù)實際情況選填
//$unifiedOrder-setParameter("sub_mch_id","XXXX");//子商戶號
//$unifiedOrder-setParameter("device_info","XXXX");//設備號
//$unifiedOrder-setParameter("attach","XXXX");//附加數(shù)據(jù)
//$unifiedOrder-setParameter("time_start","XXXX");//交易起始時間
//$unifiedOrder-setParameter("time_expire","XXXX");//交易結(jié)束時間
//$unifiedOrder-setParameter("goods_tag","XXXX");//商品標記
$unifiedOrder-setParameter("attach","2");//會員ID
$prepay_id = $unifiedOrder-getPrepayId();
//=========步驟3:使用jsapi調(diào)起支付============
$jsApi-setPrepayId($prepay_id);
$jsApiParameters = $jsApi-getParameters();
//echo $jsApiParameters;
?
html
head
meta charset="utf-8"
title支付頁面/title
script type="text/javascript"
//調(diào)用微信JS api 支付
function jsApiCall()
{
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
?php echo $jsApiParameters; ?,
function(res){
WeixinJSBridge.log(res.err_msg);
if(res.err_msg == "get_brand_wcpay_requestk"){
window.location.href='/shop/successful.php?spmc=?php echo $name; ?price=?php echo $price; ?';
//history.go(-1);
}else{
window.location.href='/shop/pay.php';
}
}
);
}
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
}
}else{
jsApiCall();
}
/script
/head
/html
微信小程序的js后臺只能執(zhí)行一些簡單的邏輯,遇到比較復雜的處理表單數(shù)據(jù)的功能或者網(wǎng)絡功能就需要連接服務器來遠程處理,實現(xiàn)方式就是調(diào)用小程序的 wx.request() 這一接口。
request請求 就是基本的HTTP請求,可以攜帶一些表單數(shù)據(jù),交給服務器處理。
在小程序中的寫法如下:
采用php作為服務器端語言,通過WAMP等框架可以很容易地搭建環(huán)境,服務器主要完成對請求數(shù)據(jù)的處理以及結(jié)果數(shù)據(jù)的返回。
請求數(shù)據(jù)的獲取非常容易,直接訪問相應的超全局數(shù)組,對于GET方法而言,通過下面的方式即可:
為了方便小程序端數(shù)據(jù)的處理,結(jié)果數(shù)據(jù)仍通過json格式返回,具體在php中的簡單做法就是
這樣返回的json數(shù)據(jù)就為
其中value1,value2等變量可以設置為多維數(shù)組,這樣通過json_encode() 函數(shù)之后就可以得到相應的嵌套的json數(shù)據(jù),從而方便處理。
通過php可以很容易地處理微信小程序的request請求,筆者是由于前一段時間需要進行微信小程序的開發(fā),就研究了一下小程序的邏輯,然后嘗試用php進行服務端處理,對于簡單的請求處理起來覺得還不錯,這篇文章可以作為初次接觸微信小程序的一個參考。
微信小程序中wx.request所調(diào)用域名是有嚴格規(guī)定的,不是隨便用個url就行的,下面是官方文檔的說明:
每個微信小程序需要事先設置一個通訊域名,小程序只可以跟指定的域名與進行網(wǎng)絡通信。包括普通 HTTPS 請求(request)、上傳文件(uploadFile)、下載文件(downloadFile) 和 WebSocket 通信(connectSocket)
配置流程
服務器域名請在 「小程序后臺-設置-開發(fā)設置-服務器域名」 中進行配置,配置時需要注意:
域名只支持?https?(request、uploadFile、downloadFile) 和?wss?(connectSocket) 協(xié)議;
域名不能使用 IP 地址或 localhost;
域名必須經(jīng)過 ICP 備案;
出于安全考慮,api.weixin.qq.com?不能被配置為服務器域名,相關API也不能在小程序內(nèi)調(diào)用。?開發(fā)者應將 appsecret 保存到后臺服務器中,通過服務器使用 appsecret 獲取 accesstoken,并調(diào)用相關 API;
對于每個接口,分別可以配置最多 20 個域名。
分享標題:mysql數(shù)據(jù)太大怎么查,mysql數(shù)據(jù)太大查詢慢
URL鏈接:http://jinyejixie.com/article14/hsioge.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、動態(tài)網(wǎng)站、靜態(tài)網(wǎng)站、面包屑導航、網(wǎng)站內(nèi)鏈、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)