我用的是微信支付demo源码基础上修改的$tools = new JsApiPay();
$openId = $tools->GetOpenid();//②、统一下单
$input = new WxPayUnifiedOrder();
$input->SetBody("test");
$input->SetAttach("test");
$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
$input->SetTotal_fee("1");//我想改变金额
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools->GetJsApiParameters($order);
printf_info($order);
//获取共享收货地址js函数参数
$editAddress = $tools->GetEditAddressParameters();想把上面的订单号和支付金额,根据业务需要改变,根据每一个商品来,
但是我怎么也传递不过来。
GET, POST都不行。
$openId = $tools->GetOpenid();//②、统一下单
$input = new WxPayUnifiedOrder();
$input->SetBody("test");
$input->SetAttach("test");
$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
$input->SetTotal_fee("1");//我想改变金额
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools->GetJsApiParameters($order);
printf_info($order);
//获取共享收货地址js函数参数
$editAddress = $tools->GetEditAddressParameters();想把上面的订单号和支付金额,根据业务需要改变,根据每一个商品来,
但是我怎么也传递不过来。
GET, POST都不行。
加载这个页面之前这段话,会给服务器发送指令的,返回openid回来,可能在这个过程中刷新了,金额数字丢了。
调用这个方法时,会跳转到微信页面获取code,然后在返回到你请求页面,
在获取code时,你的参数没有被保存,所以回到你请求页面是参数当时是获取不到。
建议:
把你的参数保存在变量,复只给state,然后在获取code后回到请求页面时,重新获取state这个变量就行了
文件:Wxpay.jsapipay.php
找到 GetOpenid 这个函数,变量$baseUrl的组合有问题,改成如下形式即可
$baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']);比原来的文件多增加了一个?