本文目录一览:
- 1、微信小程序怎么向外部php文件传递参数
- 2、微信小程序如何使用PHP实现文件上传
- 3、为什么 PHP接收不到微信小程序传递的数据
- 4、小程序页面传递数据 、传递数组对象 小程序传值
- 5、微信小程序--如何在两个页面之间传值
- 6、微信小程序小游戏demo php怎么接值
微信小程序怎么向外部php文件传递参数
PAY页面往 js_api_call.php 传值 获取不到的问题
echo 是可以echo出来的 但是
这里不写死就会报错 $key0$
?php
/**
* JS_API支付demo
* ====================================================
* 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。
* 成功调起支付需要三个步骤:
* 步骤1:网页授权获取用户openid
* 步骤2:使用统一支付接口,获取prepay_id
* 步骤3:使用jsapi调起支付
*/
//获取信息
@$name="支付测试-包包";
@$price=0.01*100;
@$hyid=$_GET['hyid'];
@$out_trade_no=$_GET['num'];//订单号
include_once("../WxPayPubHelper/WxPayPubHelper.php");
//使用jsapi接口
$jsApi = new JsApi_pub();
//=========步骤1:网页授权获取用户openid============
//通过code获得openid
if (!isset($_GET['code']))
{
//触发微信返回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:使用统一支付接口,获取prepay_id============
//使用统一支付接口
$unifiedOrder = new UnifiedOrder_pub();
//设置统一支付接口参数
//设置必填参数
//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");//交易类型
//非必填参数,商户可根据实际情况选填
//$unifiedOrder-setParameter("sub_mch_id","XXXX");//子商户号
//$unifiedOrder-setParameter("device_info","XXXX");//设备号
//$unifiedOrder-setParameter("attach","XXXX");//附加数据
//$unifiedOrder-setParameter("time_start","XXXX");//交易起始时间
//$unifiedOrder-setParameter("time_expire","XXXX");//交易结束时间
//$unifiedOrder-setParameter("goods_tag","XXXX");//商品标记
$unifiedOrder-setParameter("attach","2");//会员ID
$prepay_id = $unifiedOrder-getPrepayId();
//=========步骤3:使用jsapi调起支付============
$jsApi-setPrepayId($prepay_id);
$jsApiParameters = $jsApi-getParameters();
//echo $jsApiParameters;
?
html
head
meta charset="utf-8"
title支付页面/title
script type="text/javascript"
//调用微信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
微信小程序如何使用PHP实现文件上传
调用小程序文件上传api
服务器接收到微信post过来的文件之后,php处理代码和传统文件上传代码一样
为什么 PHP接收不到微信小程序传递的数据
1、看接口能不能正常访问,返回值小程序是否能接到
2,如果都能,看看传值方式post或者get
小程序页面传递数据 、传递数组对象 小程序传值
(1)使用本地缓存
(2)通过页面路由
在使用url进行参数传递时候,传递数据有字节限制,如果要传递对象,需要先把对象通过JSON.stringify转换成字符串,接收或再通过JSON.parse转换成对象
demo
template is="模板名" data="数据对象" /
A页面跳转到B页面
页面传值
微信小程序 页面传值详解
一. 跨页面传值.
1 . 用 navigator标签传值或 wx.navigator, 比如
这里将good_id=16 参数传入detail页面, 然后detail页面的 onload方法内接受.
如果需要传多个参数, 用 链接即可
如果要传 数组, 字典等复杂类型, 要先用 JSON.stringify() 转成字符串传递.
注 : 如果转化的字符串中 有"?"这个符号, 则只会传递"?"以前的字符串, 这个问题我猜想可能是小程序内部的路由处理 对这个"?"敏感吧
好, 这是第一种 依靠跳转的url带参数传值
2 . 用getCurrentPages(); 获取栈中全部页面的, 然后把数据写入相应页面
这里可以传字符串, 也能传数组等,
这样就把 address 传递并接受了
注 : 这个方法适合 往后面传值(即已经存在的页面), 这样才能在栈中找到并主动写入数据, 且 一定要在 onshow() 方法中接受, 因为再次返回只执行onshow()方法.
3 . 写入本地, 跨页面在取出来 wx.setStorage/wx.getStorage等, 小程序中对写入本地数据 封装了很多方法, 各有侧重, 这里就不多说了
4 . 把 数据声明为全局变量
var detail = getApp().detail; 可在任何页面获取
二. 页内传值
1 . 设置id的方法标识跳转后传递后的参数
在bindtap定义的点击方法 swiperTap : function(e) ; 中获取, var id = e.currentTarget.id;
2 . 设置 data-xxx 的方法来标识要传递的值
注 : 这里 data-index="{{index}}" 里的 {{index}} 是有效的, 在用wx-for 渲染视图层时, index 代表点击的下标. 在bindtap定义的点击方法 swiperTap : function(e) ; 中获取, 即 var index = e.currentTarget.dataset.index; 其他的参数取出也如此, var type = e.currentTarget.dataset.type;
3 . form表单和input输入框
方法1:A页面跳转链接添加参数,B页面onLoad 接收
方法2:设置全局变量 globalData,用的少,一般适用于全局共享的一份信息,如用户open_id等
微信小程序--如何在两个页面之间传值
你看,在这个 出发城市 和 目的地城市 这两个搜索框点击了之后都跳转了页面,这也就意味着我们在这个工程项目里要新建两个文件夹。拿 出发城市 为例,原页面名字叫 productList.wxml ,点击了出发城市的搜索框之后跳转到出发城市的页面,名字叫 departureCity.wxml 。这是两个不同的文件夹的页面,这也意味着有两个js文件,那他们之间怎么传数据呢?我们需要把用户输入的 城市名字 传到前一个页面呀。
这样我们就把数据保存到了上一页的 data 中
departureCity.js 中我们这样写:
returnAddress 这个方法绑定了 confirm 事件,用户点击手机键盘的确定按钮就会跳转回去
这样我们的 productList 页面就拿到了用户的输入值,这个值就储存在 productList.js 的 data 里, this.data.inputValue 这个就是用户的输入值
微信小程序小游戏demo php怎么接值
这样才能接到值吧,$value1=$_GET['x'];$value2=$_GET['y'];
wx.request里面传的是x和y你用key1,key2接收真的好吗