示例#1
0
 function save_charge()
 {
     $data['charge_value'] = floatval($_REQUEST['charge_value']);
     $data['charge_score'] = floatval($_REQUEST['charge_score']);
     tsload(ADDON_PATH . '/library/WxPayPubHelper/WxPayPubHelper.php');
     // 		dump(WxPayConf_pub::APPID);
     // 		dump(WxPayConf_pub::MCHID);
     // 		dump(WxPayConf_pub::KEY);
     // 		dump(WxPayConf_pub::APPSECRET);
     // 		dump(WxPayConf_pub::NOTIFY_URL);
     $out_trade_no = $_REQUEST["out_trade_no"];
     empty($out_trade_no) && ($out_trade_no = 'e2e5096d574976e8f115a8f1e0ffb52b');
     // 使用订单查询接口
     $orderQuery = new OrderQuery_pub();
     $orderQuery->setParameter("out_trade_no", "{$out_trade_no}");
     // 商户订单号
     // 获取订单查询结果
     $orderQueryResult = $orderQuery->getResult();
     // 商户根据实际情况设置相应的处理流程,此处仅作举例
     if ($orderQueryResult["return_code"] == "FAIL") {
         return array('status' => 0, 'msg' => "通信出错:" . $orderQueryResult['return_msg']);
     } elseif ($orderQueryResult["result_code"] == "FAIL") {
         return array('status' => 0, 'msg' => "错误代码:" . $orderQueryResult['err_code'] . " " . "错误代码描述:" . $orderQueryResult['err_code_des']);
     } elseif ($data['charge_value'] != $orderQueryResult['total_fee']) {
         return array('status' => 0, 'msg' => "对账失败");
     }
     // 		echo "交易状态:" . $orderQueryResult ['trade_state'] . "<br>";
     // 		echo "设备号:" . $orderQueryResult ['device_info'] . "<br>";
     // 		echo "用户标识:" . $orderQueryResult ['openid'] . "<br>";
     // 		echo "是否关注公众账号:" . $orderQueryResult ['is_subscribe'] . "<br>";
     // 		echo "交易类型:" . $orderQueryResult ['trade_type'] . "<br>";
     // 		echo "付款银行:" . $orderQueryResult ['bank_type'] . "<br>";
     // 		echo "总金额:" . $orderQueryResult ['total_fee'] . "<br>";
     // 		echo "现金券金额:" . $orderQueryResult ['coupon_fee'] . "<br>";
     // 		echo "货币种类:" . $orderQueryResult ['fee_type'] . "<br>";
     // 		echo "微信支付订单号:" . $orderQueryResult ['transaction_id'] . "<br>";
     // 		echo "商户订单号:" . $orderQueryResult ['out_trade_no'] . "<br>";
     // 		echo "商家数据包:" . $orderQueryResult ['attach'] . "<br>";
     // 		echo "支付完成时间:" . $orderQueryResult ['time_end'] . "<br>";
     $data['serial_number'] = t($_REQUEST['serial_number']);
     $data['uid'] = $this->mid;
     // TODO 以下信息海全需要从财富通接口取
     $data['charge_order'] = t($_REQUEST['charge_order']);
     $data['charge_type'] = intval($_REQUEST['charge_type']);
     $data['ctime'] = intval($_REQUEST['ctime']);
     $data['status'] = intval($_REQUEST['status']);
     M('credit_charge')->add($data);
     $des['content'] = "充值了" . $data['charge_score'] . "积分";
     model('Credit')->setUserCredit($data['uid'], array('name' => 'credit_charge', 'score' => $data['charge_score']), 1, $des);
     return array('status' => 1, 'msg' => '充值成功');
 }
示例#2
0
 function check($order_info)
 {
     if (!defined('WXAPPID')) {
         $_SESSION['order_info'] = $order_info;
         define("WXAPPID", $this->_config['appid']);
         define("WXMCHID", $this->_config['mchid']);
         define("WXKEY", $this->_config['key']);
         define("WXAPPSECRET", $this->_config['appsecret']);
         define("WXCURL_TIMEOUT", 30);
         define('WXNOTIFY_URL', $this->_create_notify_url($order_info["order_id"], $order_info['payment_code']));
         define('WXJS_API_CALL_URL', $this->_create_notify_url($order_info["order_id"], $order_info['payment_code']));
         define('WXSSLCERT_PATH', ROOT_PATH . '/data/cacert/1/apiclient_cert.pem');
         define('WXSSLKEY_PATH', ROOT_PATH . '/data/cacert/1/apiclient_key.pem');
     }
     require_once dirname(__FILE__) . "/WxPayPubHelper/WxPayPubHelper.php";
     $orderquery = new OrderQuery_pub();
     $orderquery->parameters["out_trade_no"] = $_SESSION['out_trade_on'];
     //商品描述
     Paylog::info("success,{$order_info['payment_name']},{$order_info['order_sn']},{$order_info['order_amount']},{$notify['total_fee']},{$order_info['order_id']},{$order_info['seller_id']},{$order_info['buyer_id']}");
     return $orderquery->getResult();
 }
 public function directQuery($order)
 {
     $config = $this->getConfig($order);
     $orderQueryObj = new \OrderQuery_pub($config);
     //商户订单号
     $orderQueryObj->setParameter('out_trade_no', $order['mer_recharge_no']);
     //商户订单号
     //$orderQuery->setParameter("sub_mch_id","XXXX") ;                          //子商户号
     //获取订单查询结果
     $orderQueryResult = $orderQueryObj->getResult();
     /// 商户根据实际情况设置相应的处理流程,此处仅作举例
     $ret = new \stdClass();
     if ($orderQueryResult["return_code"] == "SUCCESS") {
         if ($orderQueryResult["result_code"] == "SUCCESS") {
             $ret->is_success = 'T';
             //商户订单号
             $ret->mer_recharge_no = strval($orderQueryResult['out_trade_no']);
             //第三方订单号
             $ret->ser_recharge_no = strval($orderQueryResult['transaction_id']);
             $ret->gateway_account = strval($orderQueryResult['openid']);
             $ret->seller_partner = $orderQueryResult['mch_id'];
             $ret->notify_status = in_array($orderQueryResult['trade_state'], ['SUCCESS', 'REFUND']) ? 2 : 1;
             $ret->notify_log = in_array($orderQueryResult['trade_state'], ['SUCCESS', 'REFUND']) ? '支付成功' : '';
             $ret->pay_time = strtotime($orderQueryResult['time_end']);
             $ret->notify_time = strtotime($orderQueryResult['time_end']);
             $ret->amount = strval($orderQueryResult['total_fee']);
             $ret->is_refund = $orderQueryResult['trade_state'] == 'REFUND' ? true : false;
         } else {
             $ret->is_success = 'F';
             $ret->code = $orderQueryResult['err_code'];
             $ret->error = $orderQueryResult['err_code_des'];
         }
     } else {
         $ret->is_success = 'F';
         $ret->exception = true;
         $ret->error = $orderQueryResult['return_msg'];
     }
     return $ret;
 }
示例#4
0
 public function save_charge()
 {
     $data['charge_value'] = floatval($_REQUEST['charge_value']);
     $data['charge_score'] = floatval($_REQUEST['charge_score']);
     tsload(ADDON_PATH . '/library/WxPayPubHelper/WxPayPubHelper.php');
     // 		dump(WxPayConf_pub::APPID);
     // 		dump(WxPayConf_pub::MCHID);
     // 		dump(WxPayConf_pub::KEY);
     // 		dump(WxPayConf_pub::APPSECRET);
     // 		dump(WxPayConf_pub::NOTIFY_URL);
     $out_trade_no = $_REQUEST['out_trade_no'];
     empty($out_trade_no) && ($out_trade_no = 'e2e5096d574976e8f115a8f1e0ffb52b');
     // 使用订单查询接口
     $orderQuery = new OrderQuery_pub();
     $orderQuery->setParameter('out_trade_no', "{$out_trade_no}");
     // 商户订单号
     // 获取订单查询结果
     $orderQueryResult = $orderQuery->getResult();
     // 商户根据实际情况设置相应的处理流程,此处仅作举例
     if ($orderQueryResult['return_code'] == 'FAIL') {
         return array('status' => 0, 'msg' => '通信出错:' . $orderQueryResult['return_msg']);
     } elseif ($orderQueryResult['result_code'] == 'FAIL') {
         return array('status' => 0, 'msg' => '错误代码:' . $orderQueryResult['err_code'] . ' ' . '错误代码描述:' . $orderQueryResult['err_code_des']);
     } elseif ($data['charge_value'] != $orderQueryResult['total_fee']) {
         return array('status' => 0, 'msg' => '对账失败');
     }
     $data['serial_number'] = t($_REQUEST['serial_number']);
     $data['uid'] = $this->mid;
     // TODO 以下信息海全需要从积分通接口取
     $data['charge_order'] = t($_REQUEST['charge_order']);
     $data['charge_type'] = intval($_REQUEST['charge_type']);
     $data['ctime'] = intval($_REQUEST['ctime']);
     $data['status'] = intval($_REQUEST['status']);
     M('credit_charge')->add($data);
     $des['content'] = '充值了' . $data['charge_score'] . '积分';
     model('Credit')->setUserCredit($data['uid'], array('name' => 'credit_charge', 'score' => $data['charge_score']), 1, $des);
     return array('status' => 1, 'msg' => '充值成功');
 }
示例#5
0
文件: order.php 项目: elmoy/wenheyou
 /**
  * 支付状态确认
  */
 public function pay_status()
 {
     if ($this->pay_status > 0) {
         return true;
     }
     require_once W_LIBRARY_PATH . '/wx/pay/WxPayPubHelper/WxPayPubHelper.php';
     $out_trade_no = $this->order_id;
     //使用订单查询接口
     $orderQuery = new \OrderQuery_pub();
     //设置必填参数
     //appid已填,商户无需重复填写
     //mch_id已填,商户无需重复填写
     //noncestr已填,商户无需重复填写
     //sign已填,商户无需重复填写
     $orderQuery->setParameter("out_trade_no", "{$out_trade_no}");
     //商户订单号
     //非必填参数,商户可根据实际情况选填
     //$orderQuery->setParameter("sub_mch_id","XXXX");//子商户号
     //$orderQuery->setParameter("transaction_id","XXXX");//微信订单号
     //获取订单查询结果
     $orderQueryResult = $orderQuery->getResult();
     if ($orderQueryResult["return_code"] == 'SUCCESS') {
         //$this->mch_id = $notify->data['mch_id'];
         $this->trade_type = $orderQueryResult['trade_type'];
         $this->transaction_id = $orderQueryResult['transaction_id'];
         $this->bank_type = $orderQueryResult['bank_type'];
         $this->mch_id = $notify->data['mch_id'];
         $this->fee_type = $orderQueryResult['fee_type'];
         //$this->coupon_fee = $orderQueryResult['coupon_fee'];
         $this->pay_status = 1;
         if ($this->order_status < 1) {
             $this->order_status = 1;
         }
         $this->pay_time = W_START_TIME;
         $this->update();
         return true;
     } else {
         log_message(var_export($orderQueryResult, true));
     }
     return false;
 }
示例#6
0
 public function houtai()
 {
     $this->db = System::load_sys_class('model');
     include_once dirname(__FILE__) . "/lib/wxpay/WxPayPubHelper.php";
     //引入文件需求
     if (!isset($_POST["out_trade_no"])) {
         $out_trade_no = " ";
     } else {
         $out_trade_no = $_POST["out_trade_no"];
         //使用订单查询接口
         $orderQuery = new OrderQuery_pub();
         //设置必填参数
         //appid已填,商户无需重复填写
         //mch_id已填,商户无需重复填写
         //noncestr已填,商户无需重复填写
         //sign已填,商户无需重复填写
         $orderQuery->setParameter("out_trade_no", "{$out_trade_no}");
         //商户订单号
         $time = time();
         //file_put_contents("111.txt",$out_trade_no."----".$time."\n",FILE_APPEND);
         //非必填参数,商户可根据实际情况选填
         //$orderQuery->setParameter("sub_mch_id","XXXX");//子商户号
         //$orderQuery->setParameter("transaction_id","XXXX");//微信订单号
         //获取订单查询结果
         $orderQueryResult = $orderQuery->getResult();
         //商户根据实际情况设置相应的处理流程,此处仅作举例
         if ($orderQueryResult["return_code"] == "FAIL") {
             echo "通信出错:" . $orderQueryResult['return_msg'] . "<br>";
             //file_put_contents("wxpay_2.txt",$orderQueryResult['return_msg']);
             //file_put_contents("ccc.txt","通信出错:".$orderQueryResult['return_msg']."\n",FILE_APPEND);
         } elseif ($orderQueryResult["result_code"] == "FAIL") {
             //file_put_contents("wxpay_3.txt","qweqwe");
             echo "错误代码:" . $orderQueryResult['err_code'] . "<br>";
             echo "错误代码描述:" . $orderQueryResult['err_code_des'] . "<br>";
             //file_put_contents("ccc.txt","错误代码:".$orderQueryResult['err_code']."\n",FILE_APPEND);
             //file_put_contents("ccc.txt","错误代码描述:".$orderQueryResult['err_code_des']."\n",FILE_APPEND);
         } else {
             file_put_contents("hhyds.txt", "111");
             //file_put_contents("ccc.txt","交易状态:".$orderQueryResult['trade_state']."\n",FILE_APPEND);
             $total_fee_t = $orderQueryResult['total_fee'] / 100;
             $out_trade_no = $orderQueryResult['out_trade_no'];
             $this->db->Autocommit_start();
             $dingdaninfo = $this->db->GetOne("select * from `@#_member_addmoney_record` where `code` = '{$out_trade_no}' and `money` = '{$total_fee_t}' and `status` = '未付款' for update");
             if (!$dingdaninfo) {
                 echo "fail";
                 exit;
             }
             $time = time();
             $up_q1 = $this->db->Query("UPDATE `@#_member_addmoney_record` SET `pay_type` = '微信支付', `status` = '已付款' where `id` = '{$dingdaninfo['id']}' and `code` = '{$dingdaninfo['code']}'");
             $up_q2 = $this->db->Query("UPDATE `@#_member` SET `money` = `money` + {$total_fee_t} where (`uid` = '{$dingdaninfo['uid']}')");
             $up_q3 = $this->db->Query("INSERT INTO `@#_member_account` (`uid`, `type`, `pay`, `content`, `money`, `time`) VALUES ('{$dingdaninfo['uid']}', '1', '账户', '充值', '{$total_fee_t}', '{$time}')");
             //file_put_contents("wxpay_2.txt",$up_q3);
             if ($up_q1 && $up_q2 && $up_q3) {
                 //file_put_contents("momo.txt","yes");
                 $this->db->Autocommit_commit();
             } else {
                 //file_put_contents("momo.txt","no");
                 $this->db->Autocommit_rollback();
                 echo "fail";
                 exit;
             }
             if (empty($dingdaninfo['scookies'])) {
                 echo "success";
                 exit;
             }
             $uid = $dingdaninfo['uid'];
             $scookies = unserialize($dingdaninfo['scookies']);
             $pay = System::load_app_class('pay', 'pay');
             $pay->scookie = $scookies;
             $ok = $pay->init($uid, $pay_type['pay_id'], 'go_record');
             //闪购商品
             if ($ok != 'ok') {
                 _setcookie('Cartlist', NULL);
                 echo "fail";
                 exit;
                 //商品购买失败
             }
             $check = $pay->go_pay(1);
             if ($check) {
                 $this->db->Query("UPDATE `@#_member_addmoney_record` SET `scookies` = '1' where `code` = '{$out_trade_no}' and `status` = '已付款'");
                 _setcookie('Cartlist', NULL);
                 echo "success";
                 exit;
             } else {
                 echo "fail";
                 exit;
             }
             //------------------------------
             //处理业务完毕
             //------------------------------
             //log_result("即时到帐后台回调成功");
         }
     }
 }
示例#7
0
 public function query_order()
 {
     if (empty($this->pay_config['pay_weixin_appid']) || empty($this->pay_config['pay_weixin_mchid']) || empty($this->pay_config['pay_weixin_key']) || empty($this->pay_config['pay_weixin_appsecret'])) {
         return array('error' => 1, 'msg' => '微信支付缺少配置信息!请联系管理员处理或选择其他支付方式。');
     }
     import('@.ORG.pay.Weixinnewpay.WxPayPubHelper');
     $out_trade_no = $_POST["out_trade_no"];
     //使用订单查询接口
     $orderQuery = new OrderQuery_pub($this->pay_config['pay_weixin_appid'], $this->pay_config['pay_weixin_mchid'], $this->pay_config['pay_weixin_key'], $this->pay_config['pay_weixin_appsecret']);
     //设置必填参数
     $orderQuery->setParameter('out_trade_no', $this->order_info['order_type'] . '_' . $this->order_info['order_id']);
     //商户订单号
     //获取订单查询结果
     $orderQueryResult = $orderQuery->getResult();
     if ($orderQueryResult['return_code'] == 'FAIL') {
         return array('error' => 1, 'msg' => '通信出错:' . $orderQueryResult['return_msg']);
     } else {
         if ($orderQueryResult['result_code'] == 'FAIL') {
             return array('error' => 1, 'msg' => '错误代码描述:' . $orderQueryResult['err_code_des']);
         } else {
             if ($orderQueryResult['trade_state'] != 'SUCCESS') {
                 return array('error' => 1, 'msg' => '交易状态:' . $orderQueryResult['trade_state_desc']);
             } else {
                 $order_param['pay_type'] = 'weixin';
                 $order_param['is_mobile'] = '1';
                 $order_param['order_type'] = $this->order_info['order_type'];
                 $order_param['order_id'] = $this->order_info['order_id'];
                 $order_param['third_id'] = $orderQueryResult['transaction_id'];
                 $order_param['pay_money'] = $orderQueryResult['total_fee'] / 100;
                 return array('error' => 0, 'order_param' => $order_param);
             }
         }
     }
 }
示例#8
0
/**
 * 订单查询-demo
 * ====================================================
 * 该接口提供所有微信支付订单的查询。
 * 当支付通知处理异常或丢失的情况,商户可以通过该接口查询订单支付状态。
 * 
*/
include_once "../WxPayPubHelper/WxPayPubHelper.php";
//退款的订单号
if (!isset($_POST["out_trade_no"])) {
    $out_trade_no = " ";
} else {
    $out_trade_no = $_POST["out_trade_no"];
    //使用订单查询接口
    $orderQuery = new OrderQuery_pub();
    //设置必填参数
    //appid已填,商户无需重复填写
    //mch_id已填,商户无需重复填写
    //noncestr已填,商户无需重复填写
    //sign已填,商户无需重复填写
    $orderQuery->setParameter("out_trade_no", "{$out_trade_no}");
    //商户订单号
    //非必填参数,商户可根据实际情况选填
    //$orderQuery->setParameter("sub_mch_id","XXXX");//子商户号
    //$orderQuery->setParameter("transaction_id","XXXX");//微信订单号
    //获取订单查询结果
    $orderQueryResult = $orderQuery->getResult();
    //商户根据实际情况设置相应的处理流程,此处仅作举例
    if ($orderQueryResult["return_code"] == "FAIL") {
        echo "通信出错:" . $orderQueryResult['return_msg'] . "<br>";