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);
 }
Esempio n. 2
0
 public function upload($fileBody)
 {
     $file = array('name' => 'file', 'fileName' => 'wx_' . buildOrderNo() . '.mp4', 'fileBody' => $fileBody);
     $config = array();
     $result = $this->qiniu->upload($config, $file);
     return $result;
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
 /**
  * @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;
 }