public function getPayParameters($openid) { M()->validation(array(array('nickname', 'require', '姓名不能为空', Model::MUST_VALIDATE, 'regex'), array('phonenumber', 'require', '手机号不能为空', Model::MUST_VALIDATE, 'regex'), array('nickname', '2,10', '姓名长度不正确', Model::MUST_VALIDATE, 'length'), array('phonenumber', 'phonenumber', '手机号格式不正确', Model::MUST_VALIDATE, 'regex'))); $nickname = I('nickname'); $phonenumber = I('phonenumber'); $jsApi = D('Jsapi', 'Pay'); //=========步骤2:使用统一支付接口,获取prepay_id============ //使用统一支付接口 $unifiedOrder = D('Unified', 'Pay'); $nid = 6; $quantity = 1; $party = D('Party')->cache("party_" . $nid, 60 * 60 * 24)->relation(true)->where('nid = %d', $nid)->find(); $cntremain = (int) $party['cntremain']; if ($cntremain < $quantity) { $this->retError(202, '没有足够的活动名额'); } sae_log('123'); //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 // A('App/Order') $unifiedOrder->setParameter("openid", "{$openid}"); //用户openid $unifiedOrder->setParameter("body", $party['title']); //商品描述 //自定义订单号,此处仅作举例 $unifiedOrder->setParameter("out_trade_no", buildOrderNo()); //商户订单号 $unifiedOrder->setParameter("product_id","$product_id");//商品ID $money = number_format($party['price'], 2, '.', ''); $money = floatval($money) * 100 * $quantity; $unifiedOrder->setParameter("total_fee", $money); //总金额 $unifiedOrder->setParameter("notify_url", C('WX_NOTIFY_URL')); //通知地址 $unifiedOrder->setParameter("trade_type", "JSAPI"); //交易类型 //非必填参数,商户可根据实际情况选填 //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号 //$unifiedOrder->setParameter("device_info","XXXX");//设备号 $attach = array('nid' => $nid, 'nickname' => $nickname, 'phonenumber' => $phonenumber, 'quantity' => $quantity, 'is_carry' => I('is_carry'), 'pet_type' => I('pet_type'), 'pet_sex' => I('pet_sex')); $attach = json_encode($attach); $currentTime = time(); $unifiedOrder->setParameter("attach", $attach); //附加数据 $unifiedOrder->setParameter("time_start", date('YmdHis', $currentTime)); //交易起始时间 $unifiedOrder->setParameter("time_expire", date('YmdHis', $currentTime + 60 * 5)); //交易结束时间 //$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 //$unifiedOrder->setParameter("openid","XXXX");//用户标识 $prepay_id = $unifiedOrder->getPrepayId(); //=========步骤3:使用jsapi调起支付============ $jsApi->setPrepayId($prepay_id); $jsApiParameters = $jsApi->getParameters(); $this->retSuccess($jsApiParameters); }
public function upload($fileBody) { $file = array('name' => 'file', 'fileName' => 'wx_' . buildOrderNo() . '.mp4', 'fileBody' => $fileBody); $config = array(); $result = $this->qiniu->upload($config, $file); return $result; }
public function upload($fileBody) { $file = array('name' => 'file', 'fileName' => 'wx_' . buildOrderNo() . '.jpg', 'fileBody' => $fileBody); $config = array(); $result = $this->qiniu->upload($config, $file); if ($result) { $result['downLink'] = $this->qiniu->downLink($result['key']); } return $result; }
/** * @author : NanQi * @date : 20150428 13:48 * * @desc 创建订单 */ public function createOrder($uid, $pid, $quantity) { $party = D('Party')->getFullInfo($pid); if (empty($party)) { $this->retError(201, '未能找到所对应的活动'); } $orderNo = buildOrderNo(); $data = array('orderno' => $orderNo, 'uid' => $uid, 'pid' => $pid, 'orderprice' => floatval($party['price']) * $quantity, 'quantity' => $quantity, 'ordertime' => time()); if ($this->create($data)) { $this->add(); return $orderNo; } else { return $this->retError(); } }
public function join() { M()->validation(array(array('openid', 'require', 'openid不能为空', Model::MUST_VALIDATE, 'regex'), array('uid', 'require', '用户不能为空', Model::MUST_VALIDATE, 'regex'), array('aid', 'require', '活动不能为空', Model::MUST_VALIDATE, 'regex'))); $aid = I('aid'); $uid = I('uid'); $activity = D('Activity')->field('id,sid,title,starttime,astatus,money')->find($aid); $user = D('User')->cache('user_base_' . $uid, 3600 * 24)->find($uid); $sid = $activity['sid']; $site = D('Site')->cache('site_base_' . $sid, 3600 * 24)->find($sid); if (!$activity || !$user || !$site) { $this->retError('信息不完整'); } if ($activity['astatus'] != 2 && $activity['astatus'] != 4) { $this->retError('活动状态错误'); } if ($activity['money'] != 0) { $this->retError('人均费用必须为0'); } $cnt = D('ActivityUser')->where("aid = '{$aid}' and uid = '{$uid}'")->count(); if ($cnt) { $this->retError('不能重复报名'); } D("ActivityUser")->addJoin($uid, $aid); $openid = I('openid'); $orderno = 'N' . buildOrderNo(); $res = D('Template')->new_enroll($openid, $user['nickname'], $activity['title'], $orderno, $activity['starttime'], $site['address']); $this->retSuccess(); }
public function callback() { //使用native通知接口 $nativeCall = D('Nativecall', 'Pay'); //接收微信请求 $xml = $GLOBALS['HTTP_RAW_POST_DATA']; $nativeCall->saveData($xml); if ($nativeCall->checkSign() == FALSE) { $nativeCall->setReturnParameter("return_code", "FAIL"); //返回状态码 $nativeCall->setReturnParameter("return_msg", "签名失败"); //返回信息 } else { //提取product_id $product_id = $nativeCall->getProductId(); //使用统一支付接口 $unifiedOrder = D('Unified', 'Pay'); $nid = 2; //根据不同的$product_id设定对应的下单参数,此处只举例一种 switch ($product_id) { case 2: //与native_call_qrcode.php中的静态链接二维码对应 $party = D('Party')->cache("party_" . $nid, 60 * 60 * 24)->relation(true)->where('nid = %d', $nid)->find(); $cntremain = (int) $party['cntremain']; if ($cntremain < 1) { $nativeCall->setReturnParameter("return_code", "SUCCESS"); //返回状态码 $nativeCall->setReturnParameter("result_code", "FAIL"); //业务结果 $nativeCall->setReturnParameter("err_code_des", "没有足够的活动名额"); //业务结果 //将结果返回微信 $returnXml = $nativeCall->returnXml(); echo $returnXml; exit; } //设置统一支付接口参数 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //spbill_create_ip已填,商户无需重复填写 //sign已填,商户无需重复填写 $unifiedOrder->setParameter("body", $party['title']); //商品描述 //自定义订单号,此处仅作举例 $unifiedOrder->setParameter("out_trade_no", buildOrderNo()); //商户订单号 $unifiedOrder->setParameter("product_id","$product_id");//商品ID $money = number_format($party['price'], 2, '.', ''); $money = floatval($money) * 100; $unifiedOrder->setParameter("total_fee", $money); //总金额 $unifiedOrder->setParameter("notify_url", C('WX_NOTIFY_URL')); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 $unifiedOrder->setParameter("product_id", "{$product_id}"); //商品ID //非必填参数,商户可根据实际情况选填 //$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("openid","XXXX");//用户标识 //获取prepay_id $prepay_id = $unifiedOrder->getPrepayId(); //设置返回码 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //sign已填,商户无需重复填写 $nativeCall->setReturnParameter("return_code", "SUCCESS"); //返回状态码 $nativeCall->setReturnParameter("result_code", "SUCCESS"); //业务结果 $nativeCall->setReturnParameter("prepay_id", "{$prepay_id}"); //预支付ID break; default: //设置返回码 //设置必填参数 //appid已填,商户无需重复填写 //mch_id已填,商户无需重复填写 //noncestr已填,商户无需重复填写 //sign已填,商户无需重复填写 $nativeCall->setReturnParameter("return_code", "SUCCESS"); //返回状态码 $nativeCall->setReturnParameter("result_code", "FAIL"); //业务结果 $nativeCall->setReturnParameter("err_code_des", "此商品无效"); //业务结果 break; } } //将结果返回微信 $returnXml = $nativeCall->returnXml(); echo $returnXml; }
public function uploadOne() { $file = $_FILES['qiniu_file']; $info = pathinfo($file['name']); $rext = strtolower($info['extension']); $file = array('name' => 'file', 'fileName' => 'up_' . buildOrderNo() . '.' . $rext, 'fileBody' => file_get_contents($file['tmp_name'])); $config = array(); $result = $this->qiniu->upload($config, $file); if ($result) { $result['downLink'] = $this->qiniu->downLink($result['key']); $this->success('上传成功', '', $result); } else { $this->error('上传失败', '', array('error' => $this->qiniu->error, 'errorStr' => $this->qiniu->errorStr)); } exit; }