Example #1
0
function api_exit($error_txt, $success = false)
{
    global $data_in, $result, $data_in_txt;
    if (!empty($error_txt)) {
        $result['error'] = true;
        $result['error_msg'] .= $error_txt;
    }
    // Текстовый дамп выходного массива для занесения в лог
    $data_out_txt = print_r($result, true);
    $data_out_txt = substr($data_out_txt, 8, strlen($data_out_txt) - 10);
    // Заносим входные и выходные данные в лог
    f_log("{$data_in_txt}\r\n{$data_out_txt}", 'API');
    echo json_encode_cyr($result);
    exit;
}
Example #2
0
 public function index()
 {
     $data = date("Y-m-d H:i:s==");
     if (!empty($_GET)) {
         $data .= "==GET=" . http_build_query($_GET);
     }
     if (!empty($GLOBALS["HTTP_RAW_POST_DATA"])) {
         $data .= "==POST=";
     }
     f_log($data, ROOT_PATH . '/weizhao_api.log');
     $weixin = F('weixin', '', CONF_PATH);
     //define your token
     define("TOKEN", $weixin['weixin_token']);
     $wechatObj = new \Wechat\Wx();
     $wechatObj->valid();
     $wechatObj->responseMsg();
 }
Example #3
0
File: core.php Project: phizio/phix
function add_error($field_name, $error_type)
{
    global $page;
    switch ($error_type) {
        case 'empty':
            $err = "Не заполнено обязательное поле: " . $page['crud_editor']['fields'][$field_name]['desc'];
            break;
        case 'error':
            $err = "Проверьте правильность заполнения поля: " . $page['crud_editor']['fields'][$field_name]['desc'];
            break;
        case 'minlength':
            $err = "Слишком короткое значение поля '" . $page['crud_editor']['fields'][$field_name]['desc'] . "'! Вы должны ввести не менее " . $page['crud_editor']['fields'][$field_name]['minlength'] . " симв.";
            break;
        default:
            $err = $error_type;
            break;
    }
    $page['error_msg'] .= "{$err}<br />";
    $page['crud_editor']['fields'][$field_name]['error_msg'] .= "{$err}<br />";
    f_log($err, 'EDITOR');
}
Example #4
0
 /**
  * 订单退款
  */
 function autorefund()
 {
     //
     //$_GET['show_sql']
     $list = M('bao')->where(array('state' => 2, 'addtime' => array('lt', time() - 259200), 'is_refund' => 0))->select();
     if ($list) {
         foreach ($list as $hongbao) {
             $total_amount = M('bao_order')->where(array('bao_id' => $hongbao['id'], 'user_id' => '0', 'state' => 1))->sum('amount');
             $refund_amount = 0;
             if ($total_amount > 0) {
                 $total_num = M('bao_order')->where(array('bao_id' => $hongbao['id'], 'user_id' => '0', 'state' => 1))->count();
                 if ($total_num == $hongbao['total_num']) {
                     $refund_amount = $hongbao['total_amount'];
                 } else {
                     $refund_amount = $total_amount;
                 }
             }
             if ($refund_amount > 0) {
                 $rs = refund(array('out_trade_no' => $hongbao['order_sn'], 'total_fee' => $hongbao['total_amount'] * 100, 'refund_fee' => $refund_amount * 100));
                 if ($rs['return_code'] == 'SUCCESS' && $rs['result_code'] == 'SUCCESS') {
                     M('bao')->where(array("id" => $hongbao['id']))->save(array('is_refund' => 1, 'state' => 3, 'refund_time' => time()));
                     M('bao_order')->where(array("bao_id" => $hongbao['id'], 'state' => 1, 'user_id' => 0))->save(array('state' => 3, 'user_id' => '-1'));
                     $log = "订单退款成功, 红包编号:{$hongbao['id']},订单编号:{$hongbao['order_sn']}";
                     f_log($log, ROOT_PATH . 'Runtime/Logs/refund.log');
                     echo $log . "<br/>";
                 } else {
                     print_r($rs);
                     $log = "订单退款失败, 红包编号:{$hongbao['id']},退款订单编号:{$hongbao['order_sn']}";
                     f_log($log, ROOT_PATH . 'Runtime/Logs/refund.log');
                     echo $log . "<br/>";
                 }
             }
             sleep(5);
             //
         }
     }
     die('ok');
 }
Example #5
0
 function sendhongbao()
 {
     header("Content-type:text/html;charset=utf-8");
     $order_list = M('zhaopian_order')->where(array('state' => 2, 'is_send_zhaopian' => 0))->select();
     foreach ($order_list as $order) {
         $hongbao_send = M('zhaopian_pay')->where(array('id' => $order['send_id']))->find();
         $hongbao_user = M('user')->find($order['zhaopian_user_id']);
         $order_user = M('user')->find($order['user_id']);
         if (!$hongbao_send) {
             //                $bao = array(
             //                    'mch_billno' =>get_order_sn(),
             //                    'send_name' => '红包照片',
             //                    're_openid' =>$order['zhaopian_openid'],
             //                    'total_amount' => floor($order['amount'] * 0.98 * 100),
             //                    'wishing' => '恭喜您!你发布的照片有朋友购买了。',
             //                    'act_name'=> '红包照片',
             //                    'remark' => '红包照片',
             //                );
             $bao = array('partner_trade_no' => get_order_sn(), 're_user_name' => $hongbao_user['name'], 'openid' => $order['zhaopian_openid'], 'amount' => floor($order['amount'] * 0.98 * 100), 'desc' => "好消息!“{$order_user['name']}”刚刚购买了您的私货照片。");
             $send = $bao;
             $send['user_id'] = $order['zhaopian_user_id'];
             $send['addtime'] = time();
             $send['order_id'] = $order['id'];
             $send['zhaopian_id'] = $order['zhaopian_id'];
             $hongbao_id = M('zhaopian_pay')->add($send);
             if ($hongbao_id) {
                 M('zhaopian_order')->where(array("id='{$order['id']}'"))->save(array('send_id' => $hongbao_id, 'send_sn' => $bao['partner_trade_no'], 'send_time' => time()));
                 $hongbao_send = M('zhaopian_pay')->find($hongbao_id);
             }
         }
         // 发送红包
         if ($hongbao_send) {
             if ($hongbao_send['state'] == 2) {
                 continue;
             }
             //                $bao = array(
             //                    'mch_billno' =>$hongbao_send['mch_billno'],
             //                    'send_name' => '红包照片',
             //                    're_openid' =>$order['zhaopian_openid'],
             //                    'total_amount' => floor($order['amount'] * 0.98 * 100),
             //                    'wishing' => '恭喜您!你发布的照片有朋友购买了。',
             //                    'act_name'=> '红包照片',
             //                    'remark' => '红包照片',
             //                );
             $bao = array('partner_trade_no' => $hongbao_send['partner_trade_no'], 're_user_name' => $hongbao_send['re_user_name'], 'openid' => $order['zhaopian_openid'], 'amount' => floor($order['amount'] * 0.98 * 100), 'desc' => "好消息!“{$order_user['name']}”刚刚购买了您的私货照片。");
             $data = sendPay($bao);
             if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
                 M('zhaopian_order')->where(array("id='{$order['id']}'"))->save(array('is_send_zhaopian' => 1));
                 M('zhaopian_pay')->where(array("id='{$hongbao_send['id']}'"))->save(array('state' => 2, 'payment_no' => $data['payment_no']));
                 $log = "发送红包成功, 红包编号:{$order['id']},发送编号:{$hongbao_send['id']}";
                 f_log($log, ROOT_PATH . 'Runtime/Logs/zhaopian.log');
                 echo $log . "<br/>";
             } else {
                 echo "amount:" . $order['amount'];
                 print_r($data);
                 $log = "发送红包失败, 红包编号:{$order['id']},发送编号:{$hongbao_send['id']}";
                 f_log($log, ROOT_PATH . 'Runtime/Logs/zhaopian.log');
                 echo $log . "<br/>";
             }
             sleep(5);
         }
     }
     die('ok');
 }
Example #6
0
 public function Queryorder($transaction_id)
 {
     $input = new WxPayOrderQuery();
     $input->SetTransaction_id($transaction_id);
     $result = WxPayApi::orderQuery($input);
     Log::DEBUG("query:" . json_encode($result));
     if (array_key_exists("return_code", $result) && array_key_exists("result_code", $result) && $result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS") {
         f_log(http_build_query($result), dirname(__FILE__) . '/wzlog.log');
         $result['addtime'] = time();
         $id = M('pay_log')->add($result);
         // 更改order 状态
         // 更改 hongbao状态
         $result['out_trade_no'];
         $order = M('zhaopian_order')->where("order_sn='{$result['out_trade_no']}'")->find();
         $user = M('user')->find($order['user_id']);
         if ($order) {
             // 重复操作
             if ($order['state'] > 1) {
                 return true;
             }
             $order_data = array('pay_id' => $id, 'pay_time' => time(), 'transaction_id' => $result['transaction_id'], 'state' => 2);
             M('zhaopian_order')->where("id='{$order['id']}'")->save($order_data);
             $zhaopian = M('zhaopian')->where("id='{$order['hongbao_id']}'")->find();
             if ($zhaopian) {
                 $data = array('update_time' => time(), 'total_num' => $zhaopian['total_num'] + 1, 'total_amount' => $zhaopian['total_amount'] + $order['amount']);
                 // 自动发送红包
                 if (true) {
                     $bao = array('mch_billno' => get_order_sn('wz'), 'send_name' => '红包照片', 're_openid' => $zhaopian['openid'], 'total_amount' => floor($order['amount'] * 0.98 * 100), 'wishing' => '恭喜您!您在照片刚刚"' . $user['name'] . '"购买了', 'act_name' => '红包照片', 'remark' => '红包照片');
                     $send = $bao;
                     $send['user_id'] = $zhaopian['user_id'];
                     $send['addtime'] = time();
                     $hongbao_id = M('zhaopian_send')->add($send);
                     if ($hongbao_id) {
                         M('zhaopian_order')->where(array("id='{$order['id']}'"))->save(array('send_id' => $hongbao_id, 'send_sn' => $bao['mch_billno'], 'send_time' => time()));
                         $data = sendHongBao($bao);
                         if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
                             M('zhaopian_order')->where(array("id='{$order['id']}'"))->save(array('is_send_zhaopian' => 1));
                             M('zhaopian_send')->where(array("id='{$hongbao_id}'"))->save(array('state' => 2, 'send_listid' => $data['send_listid']));
                             $user_amount = number_format($order['amount'] * 0.98, 2);
                             $msg = "你发布的照片有朋友购买了!\n\n照片标题:{$zhaopian['remark']}\n\n支付金额:¥{$order['amount']}元\n\n好友购买照片钱已经通过微信红包打给你,其中已扣除2%微信支付手续费,扣除后金额为{$user_amount}元";
                             \Wechat\Wxapi::send_wxmsg($zhaopian['openid'], '红包照片状态提醒', U('/zhao/zhaopian/detail', array('id' => $zhaopian['number_no']), true, true), $msg);
                         } else {
                             M('hongbao_send')->where(array("id='{$hongbao_id}'"))->save(array('state' => 3));
                             $user_amount = number_format($order['amount'] * 0.98, 2);
                             $msg = "你发布的照片有朋友购买了!\n\n照片标题:{$zhaopian['remark']}\n\n支付金额:¥{$order['amount']}元\n\n红包将会在1~3个工作内,通过微信红包打给你,\n其中已扣除2%的微信支付手续费,扣除后金额为{$user_amount}元。\n因为微信支付到我们的账户需要1~3个工作日,我们\n的账户预存垫付的现金不足,暂时不能实时转账,希望\n理解。资金安全请你放心,如果有疑问请联系客服。";
                             \Wechat\Wxapi::send_wxmsg($zhaopian['openid'], '红包照片状态提醒', U('/zhao/zhaopian/detail', array('id' => $zhaopian['number_no']), true, true), $msg);
                             $sys_openid = "obb1AuA79tIJ-BGY7HA38FXAJwoc";
                             $msg = "重要提示! 红包发送异常!!! 可能余额不足,或支付金额异常,支付金额:{$user_amount},请及时处理.";
                             \Wechat\Wxapi::send_wxmsg($sys_openid, '红包照片状态提醒', "http://{$_SERVER['HTTP_HOST']}", $msg);
                         }
                     }
                 }
             }
         }
         return true;
     }
     return false;
 }
Example #7
0
 /**
  * 订单退款
  */
 function autorefund()
 {
     //
     $list = M('hongbao')->where(array('state' => 3, ' 	is_refund' => 0))->select();
     if ($list) {
         foreach ($list as $hongbao) {
             $order_list = M('hongbao_order')->where(array('hongbao_id' => $hongbao['id'], 'state' => 2, 'is_refund' => 0))->select();
             if ($order_list) {
                 foreach ($order_list as $order) {
                     $rs = refund(array('out_trade_no' => $order['order_sn'], 'total_fee' => $order['total_amount'] * 100, 'refund_fee' => $order['total_amount'] * 100));
                     if ($rs['return_code'] == 'SUCCESS' && $rs['result_code'] == 'SUCCESS') {
                         M('hongbao_order')->where(array("id" => $order['id']))->save(array('is_refund' => 1, 'refund_time' => time()));
                         $log = "订单退款成功, 红包编号:{$hongbao['id']},订单编号:{$order['id']}";
                         f_log($log, ROOT_PATH . 'Runtime/Logs/refund.log');
                         echo $log . "<br/>";
                     } else {
                         $log = "订单退款失败, 红包编号:{$hongbao['id']},订单编号:{$order['id']}";
                         f_log($log, ROOT_PATH . 'Runtime/Logs/refund.log');
                         echo $log . "<br/>";
                     }
                     sleep(5);
                 }
             }
             M('hongbao')->where(array('id' => $hongbao['id']))->save(array('is_refund' => 1));
         }
     }
     die('ok');
 }
Example #8
0
 public function Queryorder($transaction_id)
 {
     $input = new WxPayOrderQuery();
     $input->SetTransaction_id($transaction_id);
     $result = WxPayApi::orderQuery($input);
     Log::DEBUG("query:" . json_encode($result));
     if (array_key_exists("return_code", $result) && array_key_exists("result_code", $result) && $result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS") {
         f_log(http_build_query($result), dirname(__FILE__) . '/mylog.log');
         $result['addtime'] = time();
         $id = M('pay_log')->add($result);
         // 更改order 状态
         // 更改 hongbao状态
         $order_sn = $result['out_trade_no'];
         if (substr($order_sn, 0, 2) == 'HB') {
             $this->bao($result, $id);
             return true;
         }
         if (substr($order_sn, 0, 2) == 'ZP') {
             $this->zhaopian($result, $id);
             return true;
         }
         $order = M('hongbao_order')->where("order_sn='{$result['out_trade_no']}'")->find();
         if ($order) {
             // 重复操作
             if ($order['state'] > 1) {
                 return true;
             }
             $order_data = array('pay_id' => $id, 'pay_time' => time(), 'transaction_id' => $result['transaction_id'], 'state' => 2);
             M('hongbao_order')->where("id='{$order['id']}'")->save($order_data);
             $hongbao = M('hongbao')->where("id='{$order['hongbao_id']}'")->find();
             if ($hongbao) {
                 $data = array('update_time' => time(), 'total_num' => $hongbao['total_num'] + $order['part_num'], 'total_pay_amount' => $hongbao['total_pay_amount'] + $order['total_amount'], 'total_user' => $hongbao['total_user'] + 1);
                 if ($data['total_num'] >= $hongbao['total_part'] || $data['total_pay_amount'] >= $hongbao['total_amount']) {
                     $data['state'] = 2;
                     $data['success_time'] = time();
                 }
                 M('hongbao')->where("id='{$order['hongbao_id']}'")->save($data);
                 if ($hongbao['state'] > 1) {
                     return true;
                 }
                 // 设置幸运星
                 if ($data['state'] == 2) {
                     $list = M('hongbao_order')->where("hongbao_id='{$order['hongbao_id']}' AND state=2")->select();
                     if ($list) {
                         $ids = array();
                         foreach ($list as $r) {
                             $ids[] = $r['id'];
                         }
                         shuffle($ids);
                         $k = array_rand($ids);
                         $id = $ids[$k];
                         if ($id) {
                             $order_info = M('hongbao_order')->find($id);
                             $user_info = M('user')->find($order_info['user_id']);
                             M('hongbao_order')->where("id='{$id}'")->save(array('is_star' => 1));
                         }
                     }
                 }
                 // 自动发送红包
                 if ($data['state'] == 2) {
                     $bao = array('mch_billno' => get_order_sn(), 'send_name' => '凑红包', 're_openid' => $hongbao['openid'], 'total_amount' => floor($hongbao['total_amount'] * 0.98 * 100), 'wishing' => '恭喜您!您在凑红包发起的凑红包已经完成。', 'act_name' => '凑红包', 'remark' => '凑红包');
                     $send = $bao;
                     $send['user_id'] = $hongbao['user_id'];
                     $send['addtime'] = time();
                     $hongbao_id = M('hongbao_send')->add($send);
                     if ($hongbao_id) {
                         M('hongbao')->where(array("id='{$hongbao['id']}'"))->save(array('hongbao_id' => $hongbao_id, 'hongbao_sn' => $bao['mch_billno'], 'hongbao_time' => time()));
                         $data = sendHongBao($bao);
                         if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
                             M('hongbao')->where(array("id='{$hongbao['id']}'"))->save(array('is_send_hongbao' => 1));
                             M('hongbao_send')->where(array("id='{$hongbao_id}'"))->save(array('state' => 2, 'send_listid' => $data['send_listid']));
                             $user_amount = number_format($hongbao['total_amount'] * 0.98, 2);
                             $msg = "你发起的凑红包成功啦!\n\n众筹标题:{$hongbao['remark']}\n\n众筹进度:¥{$hongbao['total_amount']}已成功!\n\n幸运星:{$user_info['name']}\n\n红包已经通过微信红包打给你,其中已扣除2%微信支付手续费,扣除后金额为{$user_amount}元";
                             \Wechat\Wxapi::send_wxmsg($hongbao['openid'], '众筹状态提醒', U('/cou/hongbao/detail', array('id' => $hongbao['number_no']), true, true), $msg);
                             $msg = "幸运星就是你!没想到吧\n\n众筹标题:{$hongbao['remark']}\n\n众筹进度:¥{$hongbao['total_amount']}已成功!\n\n快找发起人要福利吧 :D";
                             \Wechat\Wxapi::send_wxmsg($user_info['openid'], '众筹状态提醒', U('/cou/hongbao/detail', array('id' => $hongbao['number_no']), true, true), $msg);
                         } else {
                             M('hongbao_send')->where(array("id='{$hongbao_id}'"))->save(array('state' => 3));
                             $user_amount = number_format($hongbao['total_amount'] * 0.98, 2);
                             $msg = "你发起的凑红包成功啦!\n\n众筹标题:{$hongbao['remark']}\n\n众筹进度:¥{$hongbao['total_amount']}已成功!\n\n幸运星:{$user_info['name']}\n\n红包将会在1~3个工作内,通过微信红包打给你,\n其中已扣除2%的微信支付手续费,扣除后金额为{$user_amount}元。\n因为微信支付到我们的账户需要1~3个工作日,我们\n的账户预存垫付的现金不足,暂时不能实时转账,希望\n理解。资金安全请你放心,如果有疑问请联系客服。";
                             \Wechat\Wxapi::send_wxmsg($hongbao['openid'], '众筹状态提醒', U('/cou/hongbao/detail', array('id' => $hongbao['number_no']), true, true), $msg);
                             $sys_openid = "oV3oMxP5wdTR8BpptzNq2tDdGtLk";
                             $msg = "重要提示! 红包发送异常!!!";
                             \Wechat\Wxapi::send_wxmsg($sys_openid, '众筹状态提醒', "http://{$_SERVER['HTTP_HOST']}", $msg);
                         }
                     }
                 }
             }
         }
         return true;
     }
     return false;
 }