public function Queryorder($transaction_id) { $input = new WxPayOrderQuery(); $input->SetTransaction_id($transaction_id); $result = WxPayApi::orderQuery($input); // Log::DEBUG("query:" . json_encode($result)); ilog(iLOG_INFO, 'Queryorder:' . json_encode($result), __LINE__); if (array_key_exists("return_code", $result) && array_key_exists("result_code", $result) && $result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS") { $user_trade_no = $result['out_trade_no']; $transaction_id = $result['transaction_id']; $info1 = 'wxapp/interface/appnotify.php,operator success,session == trade_no,ordernum:' . $user_trade_no . ',wxno:' . $transaction_id; ilog(iLOG_INFO, $info1, __LINE__); $body_arr['order_no'] = $user_trade_no; $body_arr['pay_result'] = 2; //支付成功 $body_arr['alipay_no'] = $transaction_id; //微信流水号 $body_arr['channel'] = 'wxapp'; // $ret = exec_procedure($body_arr, 'p_order_pay_result'); if ($ret['status'] == 0 || $ret['status'] == 1040) { //成功,返回success return true; } else { //返回错误码,非success $info = 'wxapp/interface/appnotify.php,p_order_pay_result failed'; ilog(iLOG_INFO, $info, __LINE__); return false; } } $info = 'wxapp/interface/appnotify.php,operator failed'; ilog(iLOG_INFO, $info, __LINE__); //验证失败 return false; }
/** * 设置用户权限 * @param key * @param value */ function setUserSession_auth() { $body_arr = array("code" => getUserSession_role()); $arr = exec_procedure($body_arr, 'p_getauth_byrole'); if (!empty($_SESSION)) { $_SESSION["auth"] = $arr; return TRUE; } return FALSE; }
function sms_general($body_arr) { $resp_arr = exec_procedure($body_arr, 'p_general_code'); extract($resp_arr); if ($status != 0) { die_err_code_ret($resp_arr, __LINE__); } extract($body_arr); $code = $data[0]['code']; ilog(iLOG_INFO, "contact--->" . $contact, __LINE__); $content = '【' . _MESSAGESUBJECT_ . '】,您的验证码为:' . $code . ',有效期为:' . $deadminutes . '分钟!'; //sendmsg_zx($contact, $content); return $resp_arr; }
function bind_check($body_arr) { $resp_arr = exec_procedure($body_arr, 'p_check_code'); extract($resp_arr); if ($status != 0) { die_err_code($status, __LINE__); } $resp_bind_arr = exec_procedure($body_arr, 'p_bind'); if ($body_arr['type'] == 1) { //避免登录浏览器与邮箱打开超链接的浏览器不同 setSessonUserData('userid', $body_arr['userid']); } return $resp_bind_arr; }
function update_order() { //print_r($_GET);exit; /* Array ( [buyer_email] => 13401042940 [buyer_id] => 2088702563886771 [exterface] => create_direct_pay_by_user [is_success] => T [notify_id] => RqPnCoPT3K9%2Fvwbh3InTvPfuq5BXCf%2F4bocQfLOKmSJa421I10ROCa9eXsKlZ7PGogPL [notify_time] => 2015-03-18 16:09:22 [notify_type] => trade_status_sync [out_trade_no] => 1000003451426666131 [payment_type] => 1 [seller_email] => allstarway@126.com [seller_id] => 2088011992057121 [subject] => 订å•12 [total_fee] => 0.01 [trade_no] => 2015031800001000770046538594 [trade_status] => TRADE_SUCCESS [sign] => 00d8217c3e8fa7eb2f7265f343efda98 [sign_type] => MD5 ) */ extract($_GET); $resp_arr = exec_procedure($_GET, 'p_update_order'); if ($resp_arr['status'] != 0) { die_err_code($resp_arr['status'], __LINE__); } if ($trade_status == 'TRADE_FINISHED' || $trade_status == 'TRADE_SUCCESS') { //成功处理 } else { //订单失败处理 } }
//logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— $usertrade_noarr = explode('-', $user_trade_no); $realuser_trade_no = $usertrade_noarr[0]; //用户订单号 if ($realuser_trade_no) { $info1 = 'alipaybank/notify_url.php,operator success,session == trade_no,ordernum:' . $user_trade_no . ',alipayno:' . $trade_no; ilog(iLOG_INFO, $info1, __LINE__); $body_arr['order_no'] = $realuser_trade_no; $body_arr['pay_result'] = 2; // $body_arr['alipay_no'] = $trade_no; //支付宝流水号 $body_arr['channel'] = 'alipaybank'; // $ret1 = exec_procedure($body_arr, 'p_order_pay_result'); if ($ret['status'] == 0 || $ret1['status'] == 1040) { //get方式 // file_get_contents($alipay_config['root_url'] . '/index.php/Home/Trademark/cmpdf?ordernum=' . $realuser_trade_no // . '&type=' . $realuser_trade_type . '&jump=0'); echo "success"; //请不要修改或删除 } else { // echo $ret['status']; } } else { $info2 = 'alipaybank/notify_url.php,operator failed,session != trade_no,ordernum:' . $user_trade_no . ',alipayno:' . $trade_no; echo '订单号有误,如果支付成功,请联系客服!'; } }
function activeuser_check($body_arr) { $resp_arr = exec_procedure($body_arr, 'p_check_code'); return $resp_arr; }
function wxqueryorderdata($body) { // $data['pay_no'] = isset($body['out_data']['pay_no'])?$body['out_data']['pay_no']:''; // if(!$data['pay_no']){ // $ret1['status'] = 1041; // $ret1['desc'] = '等待支付'; // return $ret1; // } $queryOrderInput = new WxPayOrderQuery(); $queryOrderInput->SetOut_trade_no($body['order_no']); $ret = WxPayApi::orderQuery($queryOrderInput); //数据已经解析为了数组格式 $retexec = array(); if ($ret['return_code'] == 'SUCCESS') { //查询成功 $resp['wx_app_id'] = $ret['appid']; $resp['wx_partner_id'] = $ret['mch_id']; if ($ret['result_code'] == 'SUCCESS') { // switch ($ret['trade_state']) { case 'SUCCESS': //支付成功 $body['pay_result'] = 2; $body['pay_time'] = $ret['time_end']; $retexec = exec_procedure($body, 'p_order_update_result'); $retexec['order_state'] = 2; break; case 'REFUND': //转入退款 //转入退款 case 'NOTPAY': //未支付 //未支付 case 'CLOSED': //已关闭 //已关闭 case 'REVOKED': //已撤销 //已撤销 case 'USERPAYING': //用户支付中 //用户支付中 case 'PAYERROR': //支付失败 $retexec = exec_procedure($body, 'p_order_query_result'); $retexec['out_state'] = isset($retexec['out_data']['out_state']) ? $retexec['out_data']['out_state'] : 0; break; } } return $retexec; } else { $ret['status'] = 1045; return $ret; } }
function get_pwd_check($body_arr) { $resp_arr = exec_procedure($body_arr, 'p_check_code'); return $resp_arr; }
//"http://商户网关地址/create_direct_pay_by_user-PHP-UTF-8/notify_url.php"; //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 $return_url = $alipay_config["alipay_return_url"]; //"http://商户网关地址/create_direct_pay_by_user-PHP-UTF-8/return_url.php"; //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ $body_arr['order_no'] = getSessonUserData('order_no'); if (empty($body_arr['order_no'])) { $body_arr['order_no'] = $_GET['order_no']; if (empty($body_arr['order_no'])) { $data['status'] = 1037; print_r(json_encode($data)); exit; } } $ret = exec_procedure($body_arr, 'p_order_fee_calc'); $ret['order_no'] = $body_arr['order_no']; if ($ret['status'] != 0) { print_r(json_encode($ret)); exit; // header("Location:".$url); } //如果实际支付的价格为0,则不用跳转到支付页面,直接调用存储,使得订单有效 // if($ret['realcost']==0){ // $ret = $vip->userconfirmorder();//确认订单,使得用户具备相应vip属性,如果 // header("location:../../view/personal/portrait.html"); // exit; // } $randnum = rand(1000, 9999); //产生一个4位随机数 $subject = $ret['order_no'];
function base_fun($body_arr) { global $_INTERFACE; //声明配置文件 global $_NOCHECKLOGIN; $inter_num = arr_key_value("inter_num", $body_arr); //获取接口号 $resp_arr = array(); if (!arr_key_value_login($inter_num, $_NOCHECKLOGIN)) { //检测登录状态 $body_arr['userid'] = getSessonUserData('userid'); if (!$body_arr['userid']) { //方便测试,这里先注释 $resp_arr['status'] = 1035; $resp_arr['desc'] = err_info($resp_arr['status']); return $resp_arr; } } switch ($inter_num) { case "0001": //web //web case "0046": //app require_once dirname(__FILE__) . "/pay/index.php"; $resp_arr = generate_order($body_arr); break; case "0005": #绑定提交 require_once dirname(__FILE__) . "/bind/code/bind.php"; $resp_arr = bind_general($body_arr); break; case "0006": #绑定校验 require_once dirname(__FILE__) . "/bind/code/bind.php"; $resp_arr = bind_check($body_arr); break; case "0007": #密码找回提交 require_once dirname(__FILE__) . "/getpwd/code/getpwd.php"; $resp_arr = get_pwd_general($body_arr); break; case "0008": #密码找回校验 require_once dirname(__FILE__) . "/getpwd/code/getpwd.php"; $resp_arr = get_pwd_check($body_arr); break; case "0027": #发送验证码 require_once dirname(__FILE__) . "/sms/code/sendsms.php"; $resp_arr = sms_general($body_arr); break; case "0028": //图片验证码校验 require_once dirname(__FILE__) . "/verifycode/verifyCode.php"; $resp_arr = verify_code($body_arr); break; case "0029": //发送邮件 require_once dirname(__FILE__) . "/mail/sendmail.php"; $resp_arr = sendemail($body_arr); break; case "0030": // 文件上传 require_once dirname(__FILE__) . "/fileupload/code/fileuploadservice.php"; $resp_arr = serviceHandle($body_arr); // 该方法需要根据业务需求进行修改 break; case "0032": //html2pdf require_once dirname(__FILE__) . "/html2pdf/html2pdf.class.php"; $html2pdf = new html2pdf(); $dest = dirname(dirname(__FILE__)) . $body_arr['dest']; $d_filename = $body_arr['d_filename']; $sourcehtmlfile = $body_arr['sourcehtmlfile']; $resp_arr = $html2pdf->createpdf($dest, $d_filename, $sourcehtmlfile); // break; case "0036": // 获取服务器时间 require_once dirname(__FILE__) . "/systime/getsystime.php"; $resp_arr = getsystime(); // 该方法需要根据业务需求进行修改 break; case "0037": //发送注册激活邮件activeuser require_once dirname(__FILE__) . "/activeuser/code/activeuser.php"; $resp_arr = activeuser_general($body_arr); break; case "0038": //验证 注册激活邮件activeuser require_once dirname(__FILE__) . "/activeuser/code/activeuser.php"; $resp_arr = activeuser_check($body_arr); break; case "0039": //登出 require_once dirname(__FILE__) . "/libcode/session.php"; $resp_arr = clearsessionjump($body_arr); break; case "0040": //生成图片,保存在服务器 require_once dirname(__FILE__) . "/createpic/createpic.php"; $resp_arr = createpicserver($body_arr); break; case "0043": //跳转到支付渠道,网页版支付 require_once dirname(__FILE__) . "/pay/index.php"; $resp_arr = jump_paychannel($body_arr); break; case "0044": //返回支付信息,移动端app支付 require_once dirname(__FILE__) . "/pay/index.php"; $resp_arr = echo_paychannel($body_arr); break; case "0045": //查询订单,移动端app require_once dirname(__FILE__) . "/pay/index.php"; $resp_arr = queryorderstatus($body_arr); break; case "0050": //购物车模块 require_once dirname(__FILE__) . "/shopping/index.php"; $resp_arr = dealCartFlow($body_arr); break; case "0051": //会员、积分模块 break; default: $procedure = arr_key_value($inter_num, $_INTERFACE); //根据接口号获取存储名 //执行存储过程 $resp_arr = exec_procedure($body_arr, $procedure); break; } if ($inter_num == "0026" && $resp_arr['status'] == 0) { //登录成功,记录userid到session中 $ret = setSessonUserData('userid', $resp_arr['out_data']['userid']); if ($body_arr['rememberpwd']) { //记住密码 rememberpwd($body_arr['account'], $body_arr['passwd'], $body_arr['second']); } } return $resp_arr; }