public function anyWxPay() { if (Input::has('user_id') && Input::has('out_trade_no') && Input::has('goods_name') && Input::has('total_fee')) { $outTradeNo = Input::get('out_trade_no'); $goodsName = Input::get('goods_name'); if (Input::get('total_fee') <= 1) { $totalFee = 100; } else { $totalFee = (int) Input::get('total_fee') * 100; } } else { Log::error(var_export('参数错误', true), array(__CLASS__)); return Response::json($this->response('10005')); } //②、统一下单 请求微信预下单 $input = new WxPayUnifiedOrder(); $input->SetBody($goodsName); $input->SetOut_trade_no($outTradeNo); $input->SetTotal_fee($totalFee); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 7200)); $input->SetGoods_tag("test_goods"); $input->SetNotify_url(Input::root() . "/callback/weixin/callback"); $input->SetTrade_type("APP"); //浏览器测试记得注释掉 $inputObj->SetSpbill_create_ip("1.1.1.1"); $order = WxPayApi::unifiedOrder($input); if (array_key_exists('err_code', $order)) { return Response::json($this->response('0', $order['err_code'], $order['err_code_des'])); } if ($order['return_code'] == 'SUCCESS') { $timestamp = time(); //参与签名的字段 无需修改 预支付后的返回值 $arr = array(); $arr['appid'] = trim(WxPayConfig::APPID); $arr['partnerid'] = trim(WxPayConfig::MCHID); $arr['prepayid'] = $order['prepay_id']; $arr['package'] = 'Sign=WXPay'; $arr['noncestr'] = $order['nonce_str']; $arr['timestamp'] = $timestamp; $obj = new WxPayDataBase(); $obj->SetValues($arr); $sign = $obj->SetSign(); //返回给APP数据 $data = array(); $data['return_code'] = $order['return_code']; $data['return_msg'] = $order['return_msg']; $data['prepay_id'] = $order['prepay_id']; $data['trade_type'] = $order['trade_type']; $data['nonce_str'] = $order['nonce_str']; $data['timestamp'] = $timestamp; $data['sign'] = $sign; Log::error(var_export($data, true), array(__CLASS__)); return Response::json($this->response('1', '预订单成功', $data)); } else { Log::error(var_export('微信回调错误', true), array(__CLASS__)); return Response::json($this->response('0')); } }