/** * 领取福利 */ public function order() { $id = I('request.id', '', 'strval'); $json = array('msg_code' => 10001, 'msg_content' => ''); do { $hongbao = M('bao')->where(array('number_no' => $id))->find(); if (!$hongbao) { $json['msg_code'] = 10002; $json['msg_content'] = '没找到福利'; break; } // if($hongbao['state'] != 2){ // $json['msg_code'] = 10002; // $json['msg_content'] = '福利已经领取完毕.'; // break; // } $order = M('bao_order')->where(array('from_number_no' => $id, 'user_id' => $this->user_id))->find(); $user = M('user')->find($this->user_id); if (!$order) { $user_id = $this->user_id; $time = time(); M('bao_order')->execute("UPDATE zml_bao_order SET user_id='{$user_id}',openid='{$user['openid']}',addtime='{$time}' WHERE from_number_no='{$id}' AND user_id=0 LIMIT 1"); $order = M('bao_order')->where(array('from_number_no' => $id, 'user_id' => $this->user_id))->find(); $is_have = M('bao_order')->where(array('from_number_no' => $id, 'user_id' => 0))->find(); if (!$is_have) { // M('bao')->where(array('from_number_no' => $id, 'state' => array('in', array(2))))->save(array('success_time' => time(), 'state' => 3)); } // else{ // if($hongbao['state'] == 3){ // M('bao')->where(array('from_number_no'=>$id))->save(array('success_time'=>time(), 'state'=>2)); // } // } } $honbao_user = M('user')->find($order['bao_user_id']); if ($order) { if ($order['state'] == 1) { $data = array('partner_trade_no' => $order['order_sn'], 're_user_name' => $user['name'], 'openid' => $user['openid'], 'amount' => $order['amount'] * 100, 'desc' => "您成功领取了”{$honbao_user['name']}“发的福利,¥ {$order['amount']}元"); $result = sendPay($data); if ($result['result_code'] == 'SUCCESS' && $result['return_code'] == 'SUCCESS') { M('bao_order')->where(array('id' => $order['id']))->save(array('pay_time' => time(), 'state' => 2, 'transaction_id' => $result['payment_no'])); } } $json['msg_content'] = '成功领取福利.'; break; } $json['msg_code'] = 10002; $json['msg_content'] = '福利领取失败.'; break; } while (false); echo json_encode($json); }
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'); }
public function zhaopian($result, $pay_log_id = 0) { // 更改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' => $pay_log_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']); $zhaopian = M('zhaopian')->where("id='{$order['hongbao_id']}'")->save($data); $zhaopian_user = M('user')->find($zhaopian['user_id']); // 自动发送红包 if (true) { $bao = array('partner_trade_no' => get_order_sn(), 're_user_name' => $zhaopian_user['name'], 'openid' => $zhaopian['openid'], 'amount' => floor($order['amount'] * 0.98 * 100), 'desc' => "好消息!“{$user['name']}”刚刚购买了您的私货照片。"); $send = $bao; $send['user_id'] = $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())); $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_id}'"))->save(array('state' => 2, 'payment_no' => $data['payment_no'])); $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 = "oV3oMxP5wdTR8BpptzNq2tDdGtLk"; $msg = "重要提示! 红包发送异常!!! 可能余额不足,或支付金额异常,支付金额:{$user_amount},请及时处理."; \Wechat\Wxapi::send_wxmsg($sys_openid, '红包照片状态提醒', "http://{$_SERVER['HTTP_HOST']}", $msg); } } } } } return true; }