- 首先控制器里写个方法,用pay来表示:
- case 'pay':
- import('source.class.OrderPay');//调用orderPay.class文件
- $order_pay = new OrderPay();// 实例化这个对象
- $order_pay->pay();//调用pay这个方法
- break;//结束
- orderPay.class.php页面:
- <?php
- class OrderPay
- {
- //定义常量
- public $is_wap;
- public $order_no;
- public $user;
- public $shipping_method;
- public $selffetch_id;
- public $selffetch_name;
- public $selffetch_phone;
- public $selffetch_date;
- public $selffetch_time;
- public $friend_name;
- public $friend_phone;
- public $province;
- public $city;
- public $county;
- public $friend_address;
- public $friend_date;
- public $friend_time;
- public $send_other_number = 0;
- public $send_other_per_number = 0;
- public $send_other_hour = 0;
- public $send_other_comment = '';
- public $send_other_type;
- public $address_id;
- public $msg;
- public $user_coupon_id;
- public $postage_list;
- public $payType;
- public $is_app;
- public $trade_no;
- public $offline_payment = false;
- public $pay_agent = 0;
- public $peerpay_content;
- public $peerpay_type;
- public $order_data;
- public $points_money_data;
- public function __construct($config = array())
- {
- if (!(empty($config))) {
- foreach ($config as $key => $value ) {
- $this->$key = $value;
- }
- }
- if (empty($config['user'])) {
- $this->user = $_SESSION['wap_user'];
- }
- if (empty($config['is_wap'])) {
- $this->is_wap = true;
- }
- $this->trade_no = date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(100000, 999999);
- }
- public function pay($is_request = true)
- {
- $order = M('Order')->find($_POST['orderNo']);
- $this->order = $order;
- $nowOrder = $this->common($is_request);
- if ($nowOrder['total'] <= 0) {
- if (($this->payType == 'point') && (0 < $nowOrder['cash_point'])) {
- $pay_result = $this->pay_callback($nowOrder['trade_no'], 0, 'point', $nowOrder['trade_no'], array());
- if (!(empty($pay_result)) && (0 < $pay_result['err_code'])) {
- json_return(1000, $pay_result['err_msg']);
- }
- }
- else if ($order['is_point_order']) {
- GiftPoint::order($order['order_pay_point'], $order['order_id'], $order['store_id'], $order['uid']);
- }
- else {
- $pay_result = $this->pay_callback($nowOrder['trade_no'], 0, 'other', $nowOrder['trade_no'], array());
- if (!(empty($pay_result)) && (0 < $pay_result['err_code'])) {
- json_return(1000, $pay_result['err_msg']);
- }
- }
- if ($this->is_wap) {
- json_return(0, 'order.php?orderid=' . $nowOrder['order_id'], 'not_pay');
- }
- else {
- json_return(0, url('order:detail', array('order_id' => $nowOrder['order_no_txt'])));
- }
- }
- if (($this->payType == 'offline') && !($this->offline_payment)) {
- json_return(1000, '对不起,订单不支付货到付款');
- }
- else if (($this->payType == 'offline') && $this->offline_payment) {
- json_return(0, '/wap/order.php?orderid=' . $nowOrder['order_id']);
- }
- else if ($this->payType == 'peerpay') {
- if ($this->pay_agent != '1') {
- json_return(1000, '您选择的支付方式不存在a<br/>请更新支付方式');
- }
- else {
- D('Order')->where(array('order_id' => $nowOrder['order_id']))->data(array('useStorePay' => 0))->save();
- json_return(0, '/wap/order_share.php?orderid=' . $this->order_no);
- }
- }
- $payMethodList = M('Config')->get_pay_method();
- foreach ($payMethodList as $key_pay => $item_pay ) {
- if ($item_pay['config']) {
- foreach ($item_pay['config'] as $key_config => $item_config ) {
- $count_arrs = explode(',', $item_config);
- $payMethodList[$key_pay]['config'][$key_config] = $count_arrs[0];
- }
- }
- }
- if (empty($payMethodList[$this->payType])) {
- json_return(1000, '您选择的支付方式不存在<br/>请更新支付方式');
- }
- $nowOrder['order_no_txt'] = option('config.orderid_prefix') . $nowOrder['order_no'];
- unset($_SESSION['float_amount']);
- unset($_SESSION['float_postage']);
- switch ($this->payType) {
- case 'yeepay'://易宝支付
- import('source.class.pay.Yeepay');
- $payClass = new Yeepay($nowOrder, $payMethodList[$this->payType]['config'], $this->user);
- $payInfo = $payClass->pay();
- if ($payInfo['err_code']) {
- json_return(10000, $payInfo['err_msg']);
- }
- else {
- json_return(0, $payInfo['url']);
- }
- break;
- case 'allinpay'://通联支付
- $query_params = array('address_user' => $nowOrder['address_user'], 'product_name' => $nowOrder['product_name'], 'order_no' => $nowOrder['order_no'], 'total' => $nowOrder['total'], 'pro_num' => $nowOrder['pro_num'], 'pay_allinpay_merchantid' => $payMethodList[$this->payType]['config']['pay_allinpay_merchantid'], 'pay_allinpay_merchantkey' => $payMethodList[$this->payType]['config']['pay_allinpay_merchantkey'], 'nickname' => $this->user['nickname']);
- $url_params = http_build_query($query_params);
- $url = 'http://' . $_SERVER['HTTP_HOST'] . '/wap/allinpay.php?orderNo=' . $this->order_no . '&' . $url_params;
- json_return(0, $url);
- break;
- case 'tenpay'://财付通支付
- import('source.class.pay.Tenpay');
- $payClass = new Tenpay($nowOrder, $payMethodList[$this->payType]['config'], $this->user);
- $payInfo = $payClass->pay();
- if ($payInfo['err_code']) {
- json_return(10000, $payInfo['err_msg']);
- }
- else {
- json_return(0, $payInfo['url']);
- }
- break;
- case 'alipay'://支付宝支付
- $is_app = $this->is_app;
- if ($is_app == 'true') {
- $data = array();
- $data['body'] = $nowOrder['order_no_txt'];
- $data['out_trade_no'] = $nowOrder['trade_no'];
- $data['total_fee'] = $nowOrder['total'] * 100;
- $data['notify_url'] = option('config.wap_site_url') . '/paynotice.php';
- $data['attach'] = 'alipay';
- $data['return_url'] = option('config.wap_site_url') . '/order.php?orderno=' . option('config.orderid_prefix') . $nowOrder['order_no'];
- json_return(0, $data);
- }
- $url = 'http://' . $_SERVER['HTTP_HOST'] . '/wap/alipay.php?orderNo=' . $this->order_no . '&payType=alipay';
- json_return(0, $url);
- break;
- case 'weixin'://微信支付
$is_app = $this->is_app; - if ($is_app == true) {
- if($_POST['appType'] == 'wxapp'){
- import('source.class.wxapp');
$payinfo['mchid'] = $now_store['mchid'];//商家商户号
$payinfo['order_no'] = $nowOrder['trade_no'];
$payinfo['body'] = $now_store['name'];
//$payinfo['openid'] = $_SESSION['wap_user']['openid'];
$payinfo['openid'] = $_POST['openid'];
$payinfo['appid'] = $storeWxapp['appid']?$storeWxapp['appid']:'wxabcd10a178d316be';
if ($nowOrder['is_eb'] == 1 && option('credit.ep_balance_open') == 1) {
$nowOrder['total'] = $nowOrder['eb_balace']>0?$nowOrder['total']-$nowOrder['eb_balace']:0;
}
//$payinfo['total_fee'] = 0.01;
$payinfo['total_fee'] = $nowOrder['total'];
$payinfo['pay_secret'] = $now_store['pay_secret'];
$payinfo['type'] = 'quickStart'; - $now_store = M('Store')->getStore($nowOrder['store_id'], true);
- $storeWxapp = D('Aaep_wxappinfo')->where(['store_id'=>$nowOrder['store_id']])->find();
- $payClass = new Wxapp($payinfo);
- $payInfo = $payClass->pay();
- txtlog($payInfo['pay_data'],'log','wxapp');
- json_return(0, json_decode($payInfo['pay_data']));
- }else{
- import('source.class.weixin_app');
- $now_store = M('Store')->getStore($nowOrder['store_id'], true);
- if ($nowOrder['is_eb'] == 1 && option('credit.ep_balance_open') == 1) {
- $nowOrder['total'] = $nowOrder['eb_balace']>0?$nowOrder['total']-$nowOrder['eb_balace']:0;
- }
- // $nowOrder['total'] = 0.01;
- $appPay = new weixin_app();
- $res = $appPay->getPrePayOrder($now_store['name'],$nowOrder['trade_no'],$nowOrder['total']);
- json_return(0, $res);
- }
- }
- if (option('config.store_pay_weixin_open')) {
- //file_put_contents(PIGCMS_PATH.'/INFO.TXT', json_encode($nowOrder));
- import('source.class.wxapp');
- $now_store = M('Store')->getStore($nowOrder['store_id'], true);
- //判断商家是否配置
- if($nowOrder['useStorePay'] && $now_store['mchid'] && $now_store['pay_secret']){
- $openid = $nowOrder['storeOpenid'];
- }else{
- json_return(10000, '商家未配置正确微信支付');
- }
- }else {
- import('source.class.pay.Weixin');
- $openid = $_SESSION['openid'];
- }
- if($nowOrder['useStorePay']){
- $payinfo['mchid'] = $now_store['mchid'];//商家商户号
- $payinfo['order_no'] = $nowOrder['trade_no'];
- $payinfo['body'] = $now_store['name'];
- $payinfo['openid'] = $openid;
- $payinfo['appid'] = option('config.wechat_appid');
- if($now_store['appid']){
- $payinfo['appid'] = $now_store['appid'];
- }
- if ($nowOrder['is_eb'] == 1 && option('credit.ep_balance_open') == 1) {
- $nowOrder['total'] = $nowOrder['eb_balace']>0?$nowOrder['total']-$nowOrder['eb_balace']:0;
- }
- $payinfo['total_fee'] = $nowOrder['total'];
- $payinfo['pay_secret'] = $now_store['pay_secret'];
- //logs('请求参数',json_encode($payinfo));
- //logss('请求参数','openid',$payinfo);
- $payClass = new Wxapp($payinfo);
- }else{
- logss('请求参数','openid',$payinfo);
- $payClass = new Weixin($nowOrder, $payMethodList[$this->payType]['config'], $this->user, $openid);
- }
-
-
//二维码支付
- if ($_GET['qrcode_pay']) {
- $url = $payClass->qrcodePay();
- if (!(is_string($url))) {
- json_return(1000, $url['err_msg']);
- }
- $url = option('Config.site_url') . '/source/qrcode.php?type=qrcodePay&id=0&url=' . urlencode($url);
- json_return(0, array($url));
- } else {
- $payInfo = $payClass->pay();
- }
-
-
//公众号支付
-
- txtlog($payInfo,'支付请求','payInfo');
- if ($payInfo['err_code']) {
- json_return(10000, $payInfo['err_msg']);
- }else {
- json_return(0, json_decode($payInfo['pay_data']));
- }
- break;
- }
- }
- public function eb_pay($is_request = true)
- {
- $order = M('Order')->find($_POST['orderNo']);
- $this->order = $order;
- if ($order['is_point_order']) {
- $user = D('User')->where(array('uid' => $order['uid']))->find();
- if ($user['point_gift'] < $order['order_pay_point']) {
- json_return(1000, '对不起,您的积分不够');
- }
- }
- $nowOrder = $this->common($is_request);
- if ($nowOrder['total'] <= 0) {
- if ($order['is_point_order']) {
- GiftPoint::order($order['order_pay_point'], $order['order_id'], $order['store_id'], $order['uid']);
- }
- if ($this->is_wap) {
- json_return(0, 'order.php?orderid=' . $nowOrder['order_id'], 'not_pay');
- }
- else {
- json_return(0, url('order:detail', array('order_id' => $nowOrder['order_no_txt'])));
- }
- }
- $data = array('pay_money' => $nowOrder['total'], 'trade_no' => $this->trade_no, 'pay_type' => 'eb_pay','orderNo'=>$nowOrder['order_no']);
- dexit(array('error'=>0,'data'=>$data));
- }
- public function test($is_request = true)
- {
- $order = M('Order')->find($_POST['orderNo']);
- $this->order = $order;
- if ($order['is_point_order']) {
- $user = D('User')->where(array('uid' => $order['uid']))->find();
- if ($user['point_gift'] < $order['order_pay_point']) {
- json_return(1000, '对不起,您的积分不够');
- }
- }
- $nowOrder = $this->common($is_request);
- if ($nowOrder['total'] <= 0) {
- if ($order['is_point_order']) {
- GiftPoint::order($order['order_pay_point'], $order['order_id'], $order['store_id'], $order['uid']);
- }
- if ($this->is_wap) {
- json_return(0, 'order.php?orderid=' . $nowOrder['order_id'], 'not_pay');
- }
- else {
- json_return(0, url('order:detail', array('order_id' => $nowOrder['order_no_txt'])));
- }
- }
- if ($order['is_eb'] == 1 && option('credit.ep_balance_open')) {
- $nowOrder['total'] = $nowOrder['total'] - $nowOrder['eb_balace'];
- }
- $data = array('pay_money' => $nowOrder['total'], 'trade_no' => $this->trade_no, 'pay_type' => 'test','orderNo'=>$nowOrder['order_no']);
- dexit(array('error'=>0,'data'=>$data));
- import('source.class.Http');
- $payment_url = option('config.wap_site_url') . '/paynotice.php';
- $result = Http::curlPost($payment_url, $data);
- ob_clean();
- if (!(empty($result['errcode']))) {
- json_return(1001, '支付失败');
- }
- else {
- json_return(0, option('config.wap_site_url') . '/order.php?orderno=' . option('config.orderid_prefix') . $nowOrder['order_no']);
- }
- }
- public function go_pay($is_request = true)
- {
- $order = M('Order')->find($_POST['orderNo']);
- $this->order = $order;
- if ($order['is_point_order']) {
- $user = D('User')->where(array('uid' => $order['uid']))->find();
- if ($user['point_gift'] < $order['order_pay_point']) {
- json_return(1000, '对不起,您的积分不够');
- }
- }
- $nowOrder = $this->common($is_request);
- if ($nowOrder['total'] <= 0) {
- if ($order['is_point_order']) {
- GiftPoint::order($order['order_pay_point'], $order['order_id'], $order['store_id'], $order['uid']);
- }
- if ($this->is_wap) {
- json_return(0, 'order.php?orderid=' . $nowOrder['order_id'], 'not_pay');
- }
- else {
- json_return(0, url('order:detail', array('order_id' => $nowOrder['order_no_txt'])));
- }
- }
- $data = array('store_id' => $nowOrder['store_id'], 'token' => $_SESSION['wap_user']['token'], 'wecha_id' => $_SESSION['wap_user']['third_id'], 'orderName' => option('config.orderid_prefix') . $nowOrder['order_no'], 'orderid' => option('config.orderid_prefix') . $nowOrder['order_no'], 'price' => $nowOrder['total'], 'pro_num' => $nowOrder['pro_num'], 'trade_no' => $nowOrder['trade_no'], 'notOffline' => 1);
- $salt = option('config.weidian_key');
- $sort_data = $data;
- $sort_data['salt'] = ((!(empty($salt)) ? $salt : 'pigcms'));
- ksort($sort_data);
- $sign_key = sha1(http_build_query($sort_data));
- $data['sign_key'] = $sign_key;
- $data['timestamp'] = time();
- $store = M('Store');
- $store = $store->getStore($nowOrder['store_id']);
- $payment_url = $store['payment_url'];
- $request_url = $payment_url;
- $params = http_build_query($data);
- $request_url .= '&' . $params;
- json_return(0, $request_url);
- }
- public function pc_pay($is_request = true)
- {
- $payType = $_REQUEST['payType'];
- if ($payType == 'offline') {
- $nowOrder = M('Order')->find($_POST['orderNo']);
- $store = M('Store')->getStore($nowOrder['store_id'], true);
- $offline_payment = false;
- if ($store['offline_payment']) {
- $offline_payment = true;
- }
- foreach ($nowOrder['proList'] as $product ) {
- if ($product['wholesale_supplier_id'] != '0') {
- $offline_payment = false;
- }
- }
- if ($offline_payment == false) {
- json_return(1000, '不支持货到付款');
- }
- $this->store = $store;
- $this->order = $nowOrder;
- }
- else if ($payType == 'peerpay') {
- if (empty($_POST['peerpay_content']) || empty($_POST['peerpay_type'])) {
- json_return(1000, '请填写代付信息');
- }
- $nowOrder = M('Order')->find($_POST['orderNo']);
- $store = M('Store')->getStore($nowOrder['store_id'], true);
- if ($store['pay_agent'] != '1') {
- json_return(1000, '不支持代付');
- }
- $this->store = $store;
- $this->order = $nowOrder;
- }
- $order = $this->common(true);
- if ($order['total'] <= 0) {
- if (0 < $order['cash_point']) {
- $pay_result = $this->pay_callback($order['trade_no'], 0, 'point', $order['trade_no'], array());
- if (!(empty($pay_result)) && (0 < $pay_result['err_code'])) {
- json_return($pay_result['err_code'], $pay_result['err_msg']);
- }
- }
- else if ($order['is_point_order']) {
- GiftPoint::order($order['order_pay_point'], $order['order_id'], $order['store_id'], $order['uid']);
- }
- else {
- $pay_result = $this->pay_callback($order['trade_no'], 0, 'other', $order['trade_no'], array());
- if (!(empty($pay_result)) && (0 < $pay_result['err_code'])) {
- json_return($pay_result['err_code'], $pay_result['err_msg']);
- }
- }
- json_return(0, url('order:detail', array('order_id' => $order['order_no_txt'])));
- }
- json_return(0, url('order:pay', array('order_id' => $order['order_no_txt'])));
- }
- public function pay_platform()
- {
- $pay_type = $_POST['pay_type'];
- $order_no = $_POST['order_no'];
- if (empty($order_no) || empty($pay_type)) {
- json_return(1000, '缺少基本的参数');
- }
- if (!(in_array($pay_type, array('platform_alipay', 'platform_weixin')))) {
- json_return(1000, '参数错误');
- }
- $platform_margin_log = D('Platform_margin_log')->where(array('order_no' => $order_no))->find();
- if (empty($platform_margin_log) || ($platform_margin_log['type'] != '0')) {
- json_return(1000, '平台保证金充值订单不存在');
- }
- if ($platform_margin_log['status'] == '2') {
- json_return(1000, '此平台保证金充值订单已支付');
- }
- D('Platform_margin_log')->where(array('order_no' => $order_no))->data(array('trade_no' => $this->trade_no))->save();
- switch ($pay_type) {
- case 'platform_alipay':
- $url = 'http://' . $_SERVER['HTTP_HOST'] . '/wap/alipay_platform.php?order_no=' . $order_no . '&payType=alipay';
- json_return(0, $url);
- break;
- case 'platform_weixin':
- import('source.class.pay.Weixin');
- $order = array();
- $order['order_no_txt'] = option('config.orderid_prefix') . $platform_margin_log['order_no'];
- $order['trade_no'] = 'PMPAY' . $this->trade_no;
- $order['total'] = $platform_margin_log['amount'];
- $payment_methods_list = M('Config')->getPlatformPayMethod();
- $payment_method = array();
- $payment_method['pay_weixin_appid'] = $payment_methods_list[$pay_type]['config']['platform_weixin_appid'];
- $payment_method['pay_weixin_mchid'] = $payment_methods_list[$pay_type]['config']['platform_weixin_mchid'];
- $payment_method['pay_weixin_key'] = $payment_methods_list[$pay_type]['config']['platform_weixin_key'];
- $payClass = new Weixin($order, $payment_method, $this->user, $_SESSION['platform_weixin_openid']);
- if ($_GET['qrcode_pay']) {
- $url = $payClass->qrcodePay();
- if (!(is_string($url))) {
- json_return(1000, $url['err_msg']);
- }
- $url = option('Config.site_url') . '/source/qrcode.php?type=qrcodePay&id=0&url=' . urlencode($url);
- json_return(0, array($url));
- }
- else {
- $payInfo = $payClass->pay();
- }
- if ($payInfo['err_code']) {
- json_return(10000, $payInfo['err_msg']);
- }
- else {
- json_return(0, json_decode($payInfo['pay_data']));
- }
- break;
- }
- }
- private function common($is_request)
- {
- if ($is_request) {
- $config = array();
- $config['order_no'] = $_POST['orderNo'];
- if (empty($this->user)) {
- $config['user'] = $_SESSION['wap_user'];
- }
- $config['shipping_method'] = $_REQUEST['shipping_method'];
- $config['selffetch_id'] = $_REQUEST['selffetch_id'];
- $config['selffetch_name'] = $_REQUEST['selffetch_name'];
- $config['selffetch_phone'] = $_REQUEST['selffetch_phone'];
- $config['selffetch_date'] = $_REQUEST['selffetch_date'];
- $config['selffetch_time'] = $_REQUEST['selffetch_time'];
- $config['friend_name'] = $_REQUEST['friend_name'];
- $config['friend_phone'] = $_REQUEST['friend_phone'];
- $config['province'] = $_REQUEST['province'];
- $config['city'] = $_REQUEST['city'];
- $config['county'] = $_REQUEST['county'];
- $config['friend_address'] = $_REQUEST['friend_address'];
- $config['friend_date'] = $_REQUEST['friend_date'];
- $config['friend_time'] = $_REQUEST['friend_time'];
- $config['address_id'] = $_REQUEST['address_id'];
- $config['msg'] = $_REQUEST['msg'];
- $config['user_coupon_id'] = $_REQUEST['user_coupon_id'];
- $config['postage_list'] = $_REQUEST['postage_list'];
- $config['payType'] = $_REQUEST['payType'];
- $config['is_app'] = $_REQUEST['is_app'];
- $config['trade_no'] = date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(100000, 999999);
- //$config['trade_no'] = $this->trade_no;
- $config['send_other_number'] = $_REQUEST['send_other_number'];
- $config['send_other_per_number'] = $_REQUEST['send_other_per_number'];
- $config['send_other_hour'] = $_REQUEST['send_other_hour'];
- $config['send_other_comment'] = $_REQUEST['send_other_comment'];
- $config['send_other_type'] = $_REQUEST['send_other_type'];
- $config['point'] = $_REQUEST['point'];
- $config['point_money'] = $_REQUEST['point_money'];
- $config['platform_point'] = $_REQUEST['platform_point'];
- $config['platform_point_money'] = $_REQUEST['platform_point_money'];
- $config['peerpay_content'] = $_REQUEST['peerpay_content'];
- $config['peerpay_type'] = ((!(in_array($_REQUEST['peerpay_type'], array(1, 2))) ? 1 : $_REQUEST['peerpay_type']));
- if (!(empty($config))) {
- foreach ($config as $key => $value ) {
- $this->$key = $value;
- }
- }
- }
- $user = D('User')->where(array('uid' => $this->user['uid']))->find();
- if ($this->order) {
- $nowOrder = $this->order;
- unset($this->order);
- }
- else {
- $nowOrder = M('Order')->find($this->order_no);
- }
- // dump($nowOrder);
- // die;
- if (empty($nowOrder['total'])) {
- json_return(1000, '订单异常,请稍后再试');
- }
- $trade_no = $this->trade_no;
- if ((1 < $nowOrder['status']) && ($nowOrder['payment_method'] == 'codpay')) {
- json_return(1008, './order.php?orderid=' . $nowOrder['order_id']);
- }
- if (1 < $nowOrder['status']) {
- json_return(1007, '该订单已支付或关闭<br/>不再允许付款');
- }
- if ($this->is_wap == true) {
- $store = M('Store')->getStore($nowOrder['store_id']);
- }
- else {
- $store = $this->store;
- }
- $discount_total_money = 0;
- $discount_total_check = false;
- $type_ingore_arr = array(6, 7, 50, 55);
- if (($nowOrder['is_point_order'] == 1) || in_array($nowOrder['type'], $type_ingore_arr)) {
- $this->platform_point = 0;
- $this->platform_point_money = 0;
- $this->point = 0;
- $this->point_money = 0;
- }
- else if (($nowOrder['status'] == 0) && option('credit.platform_credit_open') && ($this->platform_point == 0) && (0 < option('config.user_point_total')) && (option('config.user_point_total') < ($user['point_balance'] + $user['point_unbalance']))) {
- $discount_total_money = $this->_discount($nowOrder['proList'], $store);
- $discount_total_check = true;
- $total = max(0, ($nowOrder['sub_total'] + $nowOrder['postage'] + $nowOrder['float_amount']) - $discount_total_money);
- //dump($discount_total_money);die;
- if (0 < $total) {
- json_return(1000, '您的积分过多,请使用全积分交易');
- }
- }
- else if (($nowOrder['status'] == 1) && (0 < $nowOrder['total']) && option('credit.platform_credit_open') && (0 < option('config.user_point_total')) && (option('config.user_point_total') < ($user['point_balance'] + $user['point_unbalance']))) {
- json_return(1000, '您的积分过多,暂停使用现金交易');
- }
- foreach ($nowOrder['proList'] as $product ) {
- $product_tmp = D('Product')->where('product_id = \'' . $product['product_id'] . '\'')->find();
- if ($product_tmp['has_property'] == 0) {
- if ($product_tmp['quantity'] < $product['pro_num']) {
- json_return(1010, $product_tmp['name'] . '的库存不足');
- exit();
- }
- }
- else {
- $sku = D('Product_sku')->where(array('sku_id' => $product['sku_id']))->find();
- if ($sku['quantity'] < $product['pro_num']) {
- json_return(1010, $product['name'] . '的库存不足');
- exit();
- }
- }
- if ($product_tmp['buyer_quota']) {
- $buy_quantity = 0;
- $user_type = 'uid';
- $uid = $this->user['uid'];
- if (empty($this->user)) {
- $session_id = session_id();
- $uid = $session_id;
- $user_type = 'session';
- $cart_number = D('User_cart')->field('sum(pro_num) as pro_num')->where(array('product_id' => $product['product_id'], 'session_id' => $session_id))->find();
- if (!(empty($cart_number))) {
- $buy_quantity += $cart_number['pro_num'];
- }
- }
- else {
- $cart_number = D('User_cart')->field('sum(pro_num) as pro_num')->where(array('product_id' => $product['product_id'], 'uid' => $uid))->select();
- if (!(empty($cart_number))) {
- $buy_quantity += $cart_number['pro_num'];
- }
- }
- $buy_quantity += M('Order_product')->getBuyNumber($uid, $product_tmp['product_id'], $user_type);
- if ($product_tmp['buyer_quota'] < $buy_quantity) {
- json_return(1010, '您购买的产品:' . $product['name'] . '超出了限购');
- }
- }
- }
- if ($store['offline_payment']) {
- $this->offline_payment = true;
- }
- $this->pay_agent = $store['pay_agent'];
- if (empty($nowOrder['status'])) {
- if (empty($nowOrder['order_id'])) {
- json_return(1008, '该订单不存在');
- }
- $condition_order['order_id'] = $nowOrder['order_id'];
- if ($this->user['uid']) {
- $condition_order['uid'] = $this->user['uid'];
- }
- else {
- $condition_order['session_id'] = session_id();
- }
- if ($this->shipping_method == 'selffetch') {
- $selffetch_id = $this->selffetch_id;
- $selffetch = array();
- if (strpos($selffetch_id, 'store')) {
- $store_contace = M('Store_contact')->get($nowOrder['store_id']);
- if (!(empty($store_contace))) {
- $selffetch['tel'] = (($store_contace['phone1'] ? $store_contace['phone1'] . '-' : '')) . $store_contace['phone2'];
- $selffetch['business_hours'] = '';
- $selffetch['name'] = $store['name'];
- $selffetch['physical_id'] = 0;
- $selffetch['store_id'] = $nowOrder['store_id'];
- $selffetch['province_txt'] = $store_contace['province_txt'];
- $selffetch['province'] = $store_contace['province'];
- $selffetch['city_txt'] = $store_contace['city_txt'];
- $selffetch['city'] = $store_contace['city'];
- $selffetch['county_txt'] = $store_contace['county_txt'];
- $selffetch['county'] = $store_contace['county'];
- $selffetch['address'] = $store_contace['address'];
- $selffetch['long'] = $store_contace['long'];
- $selffetch['lat'] = $store_contace['lat'];
- }
- }
- else {
- $selffetch = M('Store_physical')->getOne($selffetch_id);
- if (!(empty($selffetch)) && ($selffetch['store_id'] != $nowOrder['store_id'])) {
- $selffetch = '';
- }
- else if (!(empty($selffetch))) {
- $selffetch['tel'] = (($selffetch['phone1'] ? $selffetch['phone1'] . '-' : '')) . $selffetch['phone2'];
- $selffetch['physical_id'] = $selffetch_id;
- $selffetch['store_id'] = $nowOrder['store_id'];
- }
- }
- if (empty($selffetch)) {
- json_return(1009, '该门店不存在');
- }
- $data_order['postage'] = '0';
- $data_order['shipping_method'] = 'selffetch';
- $data_order['address_user'] = $this->selffetch_name;
- $data_order['address_tel'] = $this->selffetch_phone;
- $data_order['address'] = serialize(array('name' => $selffetch['name'], 'address' => $selffetch['address'], 'province' => $selffetch['province_txt'], 'province_code' => $selffetch['province'], 'city' => $selffetch['city_txt'], 'city_code' => $selffetch['city'], 'area' => $selffetch['county_txt'], 'area_code' => $selffetch['county'],'tel' => $selffetch['tel'], 'long' => $selffetch['long'], 'lat' => $selffetch['lat'], 'business_hours' => $selffetch['business_hours'], 'date' => $this->selffetch_date, 'time' => $this->selffetch_time, 'store_id' => $selffetch['store_id'], 'physical_id' => $selffetch['physical_id']));
- $nowOrder['postage'] = 0;
- $_POST['postage_list'] = '';
- }
- else if ($this->shipping_method == 'friend') {
- $friend_name = $this->friend_name;
- $friend_phone = $this->friend_phone;
- $province = $this->province;
- $city = $this->city;
- $county = $this->county;
- $friend_address = $this->friend_address;
- $friend_date = $this->friend_date;
- $friend_time = $this->friend_time;
- if (empty($friend_name)) {
- json_return(1009, '朋友姓名没有填写');
- }
- if (!(preg_match('/\\d{9,13}$/', $friend_phone))) {
- json_return(1009, '请填写正确的手机号');
- }
- if (empty($province)) {
- json_return(1009, '请选择省份');
- }
- if (empty($city)) {
- json_return(1009, '请选择城市');
- }
- if (empty($county)) {
- json_return(1009, '请选择区县');
- }
- import('source.class.area');
- $area_class = new area();
- $province_txt = $area_class->get_name($province);
- $city_txt = $area_class->get_name($city);
- $county_txt = $area_class->get_name($county);
- if (empty($province_txt) || empty($city_txt)) {
- json_return(1009, '该地址不存在');
- }
- $data_order['shipping_method'] = 'friend';
- $data_order['address_user'] = $friend_name;
- $data_order['address_tel'] = $friend_phone;
- $data_order['address'] = serialize(array('address' => $friend_address, 'province' => $province_txt, 'province_code' => $province, 'city' => $city_txt, 'city_code' => $city, 'area' => $county_txt, 'area_code' => $county, 'date' => $friend_date, 'time' => $friend_time));
- }
- else {
- if ($this->send_other_type == 2) {
- $top_store_id = (($store['top_supplier_id'] ? $store['top_supplier_id'] : $store['store_id']));
- $address = M('Commonweal_address')->getAdressById($top_store_id, $this->address_id);
- } else {
- $address = M('User_address')->getAdressById(session_id(), $this->user['uid'], $this->address_id);
- }
- if (empty($address)) {
- json_return(1009, '该地址不存在');
- }
- if (($nowOrder['shipping_method'] == 'send_other') && ($this->shipping_method == 'send_other')) {
- $data_order['send_other_type'] = $this->send_other_type;
- $data_order['send_other_number'] = $this->send_other_number;
- $data_order['send_other_per_number'] = $this->send_other_per_number;
- if ($this->send_other_number == 1) {
- $data_order['send_other_per_number'] = $nowOrder['proList'][0]['pro_num'];
- }
- $data_order['send_other_hour'] = $this->send_other_hour;
- $data_order['send_other_comment'] = $this->send_other_comment;
- $data_order['shipping_method'] = 'send_other';
- }
- else {
- $data_order['shipping_method'] = 'express';
- }
- $data_order['address_user'] = $address['name'];
- $data_order['address_tel'] = $address['tel'];
- $data_order['address'] = serialize(array('address' => $address['address'], 'province' => $address['province_txt'], 'province_code' => $address['province'], 'city' => $address['city_txt'], 'city_code' => $address['city'], 'area' => $address['area_txt'], 'area_code' => $address['area'],'lng'=>$address['lng'],'lat'=>$address['lat']));
- }
- if (option('credit.platform_credit_open') && empty($nowOrder['is_point_order'])) {
- if ($user['point_balance'] < $this->platform_point) {
- json_return(1000, '您的' . option('credit.platform_credit_name') . '不够');
- }
- if (option('credit.force_use_platform_credit')) {
- Margin::init($nowOrder['store_id']);
- $margin_balance = Margin::balance();
- if ($margin_balance < (((($nowOrder['sub_total'] + $nowOrder['postage'] + $nowOrder['float_amount']) - $this->platform_point_money) * option('credit.credit_deposit_ratio')) / 100)) {
- Margin::check_balance(((($nowOrder['sub_total'] + $nowOrder['postage'] + $nowOrder['float_amount']) - $this->platform_point_money) * option('credit.credit_deposit_ratio')) / 100);
- json_return(1000, '店铺' . option('credit.platform_credit_name') . '的保证金不够');
- }
- }
- if (0 && (0 < $this->platform_point)) {
- $max_platform_point = Margin::orderPoint($nowOrder['order_id']) + ($nowOrder['postage'] * option('credit.platform_credit_use_value'));
- if ($max_platform_point < $this->platform_point) {
- json_return(1000, '此订单最多只能使用' . $max_platform_point . '个' . option('credit.platform_credit_name'));
- }
- }
- if ((0 < option('credit.online_trade_money')) && (0 < $this->platform_point)) {
- if (option('credit.platform_credit_use_value') == 0) {
- json_return(1000, '此订单不能使用' . option('credit.platform_credit_name'));
- }
- else {
- if ($discount_total_check == false) {
- $discount_total_money = $this->_discount($nowOrder['proList'], $store);
- }
- $total = max(0, ($nowOrder['sub_total'] + $nowOrder['postage'] + $nowOrder['float_amount']) - $discount_total_money);
- $platform_point_money = $this->platform_point / option('credit.platform_credit_use_value');
- if ($platform_point_money < $total) {
- json_return(10000, '请使用' . ($total * option('credit.platform_credit_use_value')) . '个' . option('credit.platform_credit_name'));
- }
- if ($platform_point_money != $this->platform_point_money) {
- json_return(10000, '数据不正确,即将刷新页面');
- }
- if (0 && (round($total - $platform_point_money, 2) < round(($total * option('credit.online_trade_money')) / 100, 2))) {
- $max_platform_point = round(($total - (($total * option('credit.online_trade_money')) / 100)) * option('credit.platform_credit_use_value'), 2);
- json_return(1000, '此订单最多只能使用' . $max_platform_point . '个' . option('credit.platform_credit_name'));
- }
- }
- }
- }
- else {
- $this->platform_point = 0;
- $this->platform_point_money = 0;
- }
- $data_order['status'] = '1';
- $data_order['comment'] = $this->msg;
- $data_order['trade_no'] = $trade_no;
- if (!(D('Order')->where($condition_order)->data($data_order)->save())) {
- json_return(1010, '订单信息保存失败');
- }
- $order_data = array();
- if (!(in_array($nowOrder['type'], $type_ingore_arr))) {
- if (empty($this->order_data) && empty($nowOrder['is_point_order'])) {
- import('source.class.Order');
- $order_data = new Order($nowOrder['proList'], array('uid' => $this->user['uid']));
- $order_data = $order_data->all();
- }
- else {
- $order_data = $this->order_data;
- }
- }
- $product_id_arr = array();
- $discount_money = 0;
- $product_price_arr = array();
- $supplier_money = 0;
- $first_product_name = '';
- foreach ($nowOrder['proList'] as $product ) {
- if (!($first_product_name)) {
- $first_product_name = msubstr($product[name], 0, 11);
- }
- $discount = 10;
- if (!(in_array($nowOrder['type'], $type_ingore_arr))) {
- if ($product['wholesale_supplier_id']) {
- $discount = $order_data['discount_list'][$product['wholesale_supplier_id']];
- $product_price_arr[$product['wholesale_supplier_id']] += $product['pro_price'] * $product['pro_num'];
- }
- else {
- $discount = $order_data['discount_list'][$product['store_id']];
- $product_price_arr[$product['store_id']] += $product['pro_price'] * $product['pro_num'];
- }
- if ((0 < $product['discount']) && ($product['discount'] <= 10)) {
- $discount = $product['discount'];
- }
- }
- if (($discount != 10) && (0 < $discount)) {
- $discount_money += ($product['pro_num'] * $product['pro_price'] * (10 - $discount)) / 10;
- if (empty($product['wholesale_supplier_id'])) {
- $supplier_money += ($product['pro_num'] * $product['pro_price'] * $discount) / 10;
- }
- }
- else if (empty($product['wholesale_supplier_id'])) {
- $supplier_money += $product['pro_num'] * $product['pro_price'];
- }
- if ($product['wholesale_supplier_id'] != '0') {
- $offline_payment = false;
- }
- $product_id_arr[] = $product['product_id'];
- }
- $money = 0;
- $pro_num = 0;
- $pro_count = 0;
- $supplier_reward_money = 0;
- $supplier_coupon_money = 0;
- if ($this->user['uid'] && empty($nowOrder['is_point_order'])) {
- if (isset($order_data['reward_list']) && is_array($order_data['reward_list'])) {
- foreach ($order_data['reward_list'] as $tmp_store_id => $reward_list ) {
- foreach ($reward_list as $key => $reward ) {
- if ($key === 'product_price_list') {
- continue;
- }
- if (($store['store_id'] == $tmp_store_id) || ($store['top_supplier_id'] == $tmp_store_id)) {
- $supplier_reward_money += $reward['cash'];
- }
- if (0 < $reward['score']) {
- $data_point_record = array('uid' => $this->user['uid'], 'store_id' => $tmp_store_id, 'points' => $reward['score'], 'order_id' => $nowOrder['order_id'], 'is_call_to_fans' => 0, 'type' => '5', 'is_available' => 0, 'timestamp' => time());
- }
- if (is_array($reward['present']) && (0 < count($reward['present']))) {
- foreach ($reward['present'] as $present ) {
- $data_order_product = array();
- $data_order_product['order_id'] = $nowOrder['order_id'];
- $data_order_product['product_id'] = $present['product_id'];
- if ($present['has_property']) {
- $sku_arr = M('Product_sku')->getRandSku($present['product_id']);
- $data_order_product['sku_id'] = $sku_arr['sku_id'];
- $data_order_product['sku_data'] = $sku_arr['propertiey'];
- }
- $data_order_product['pro_num'] = 1;
- $data_order_product['pro_price'] = 0;
- $data_order_product['is_present'] = 1;
- ++$pro_num;
- if (!(in_array($present['product_id'], $product_id_arr))) {
- ++$pro_count;
- }
- D('Order_product')->data($data_order_product)->add();
- unset($data_order_product);
- }
- }
- if ($reward['coupon']) {
- $data_user_coupon = array();
- $data_user_coupon['uid'] = $this->user['uid'];
- $data_user_coupon['store_id'] = $reward['coupon']['store_id'];
- $data_user_coupon['coupon_id'] = $reward['coupon']['id'];
- $data_user_coupon['card_no'] = String::keyGen();
- $data_user_coupon['cname'] = $reward['coupon']['name'];
- $data_user_coupon['face_money'] = $reward['coupon']['face_money'];
- $data_user_coupon['limit_money'] = $reward['coupon']['limit_money'];
- $data_user_coupon['start_time'] = $reward['coupon']['start_time'];
- $data_user_coupon['end_time'] = $reward['coupon']['end_time'];
- $data_user_coupon['is_expire_notice'] = $reward['coupon']['is_expire_notice'];
- $data_user_coupon['is_share'] = $reward['coupon']['is_share'];
- $data_user_coupon['is_all_product'] = $reward['coupon']['is_all_product'];
- $data_user_coupon['is_original_price'] = $reward['coupon']['is_original_price'];
- $data_user_coupon['description'] = $reward['coupon']['description'];
- $data_user_coupon['timestamp'] = time();
- $data_user_coupon['type'] = 2;
- $data_user_coupon['give_order_id'] = $nowOrder['order_id'];
- D('User_coupon')->data($data_user_coupon)->add();
- }
- $reward['store_id'] = $tmp_store_id;
- $data = array();
- $data['order_id'] = $nowOrder['order_id'];
- $data['uid'] = $this->user['uid'];
- $data['rid'] = $reward['rid'];
- $data['name'] = $reward['name'];
- $data['content'] = serialize($reward);
- $money += $reward['cash'];
- D('Order_reward')->data($data)->add();
- }
- }
- }
- $coupon_id = $this->user_coupon_id;
- if (isset($order_data['user_coupon_list']) && is_array($order_data['user_coupon_list'])) {
- foreach ($order_data['user_coupon_list'] as $tmp_store_id => $user_coupon_list ) {
- foreach ($user_coupon_list as $user_coupon ) {
- while (in_array($user_coupon['id'], $coupon_id)) {
- $data = array();
- $data['order_id'] = $nowOrder['order_id'];
- $data['uid'] = $this->user['uid'];
- $data['store_id'] = $tmp_store_id;
- $data['coupon_id'] = $user_coupon['coupon_id'];
- $data['name'] = $user_coupon['cname'];
- $data['user_coupon_id'] = $user_coupon['id'];
- $data['money'] = $user_coupon['face_money'];
- $money += $user_coupon['face_money'];
- D('Order_coupon')->data($data)->add();
- if (($store['store_id'] == $tmp_store_id) || ($store['top_supplier_id'] == $tmp_store_id)) {
- $supplier_coupon_money += $reward['cash'];
- }
- $data = array();
- $data['is_use'] = 1;
- $data['use_time'] = time();
- $data['use_order_id'] = $nowOrder['order_id'];
- D('User_coupon')->where(array('id' => $user_coupon['id']))->data($data)->save();
- break;
- }
- }
- }
- }
- }
- if (isset($order_data['discount_list']) && empty($nowOrder['is_point_order'])) {
- $postage_free_list = $order_data['postage_free_list'];
- $postage_list = $this->postage_list;
- if (!(empty($postage_list))) {
- $postage_list = unserialize($postage_list);
- }
- foreach ($order_data['discount_list'] as $tmp_store_id => $discount ) {
- if ((($discount != 0) && ($discount != 10)) || !(empty($postage_free_list[$tmp_store_id]))) {
- $order_discount_data = array();
- $order_discount_data['order_id'] = $nowOrder['order_id'];
- $order_discount_data['uid'] = $this->user['uid'];
- $order_discount_data['store_id'] = $tmp_store_id;
- $order_discount_data['discount'] = $discount;
- $order_discount_data['is_postage_free'] = $postage_free_list[$tmp_store_id];
- $order_discount_data['postage_money'] = 0;
- if (isset($postage_list[$tmp_store_id])) {
- $order_discount_data['postage_money'] = $postage_list[$tmp_store_id];
- }
- D('Order_discount')->data($order_discount_data)->add();
- }
- }
- }
- $top_supplier_id = (($store['root_supplier_id'] ? $store['root_supplier_id'] : $store['store_id']));
- $point_money = 0;
- if (!(in_array($nowOrder['type'], $type_ingore_arr)) && $this->point && $this->point_money) {
- $postage_list = $this->postage_list;
- if (!(empty($postage_list))) {
- $postage_list = unserialize($postage_list);
- }
- if (!(empty($this->points_money_data))) {
- $points_money_data = $this->points_money_data;
- }
- else {
- $points_money_data = Points::getPointMoney($this->user['uid'], $top_supplier_id, ($supplier_money - $supplier_reward_money - $supplier_coupon_money) + $postage_list[$top_supplier_id]);
- }
- if ($points_money_data['money'] || $points_money_data['point']) {
- $point_money = $points_money_data['money'];
- $data = array();
- $data['dateline'] = $_SERVER['REQUEST_TIME'];
- $data['order_id'] = $nowOrder['order_id'];
- $data['store_id'] = $top_supplier_id;
- $data['uid'] = $this->user['uid'];
- $data['money'] = $points_money_data['money'];
- $data['point'] = $points_money_data['point'];
- if (D('Order_point')->data($data)->add()) {
- $data = array();
- $data['uid'] = $this->user['uid'];
- $data['store_id'] = $top_supplier_id;
- $data['order_id'] = $nowOrder['order_id'];
- $data['points'] = -1 * $points_money_data['point'];
- $data['type'] = 9;
- $data['is_available'] = 1;
- $data['timestamp'] = $_SERVER['REQUEST_TIME'];
- if (D('User_points')->data($data)->add()) {
- D('Store_user_data')->where(array('uid' => $this->user['uid'], 'store_id' => $top_supplier_id))->setDec('point', $points_money_data['point']);
- }
- }
- }
- }
- if (in_array($nowOrder['type'], $type_ingore_arr)) {
- $this->platform_point = 0;
- $this->platform_point_money = 0;
- $money = 0;
- $discount_money = 0;
- $points_money_data['money'] = 0;
- }
- $total = max(0, ($nowOrder['sub_total'] + $nowOrder['postage'] + $nowOrder['float_amount']) - $money - $discount_money - $points_money_data['money'] - $this->platform_point_money);
- if ($nowOrder['type'] == 7) {
- if ($nowOrder['order_id'] == $nowOrder['presale_order_id']) {
- $total = $total - $nowOrder['data_money'];
- }
- }
- $pro_count = $nowOrder['pro_count'] + $pro_count;
- $pro_num = $nowOrder['pro_num'] + $pro_num;
- $data = array();
- $data['total'] = $total;
- $data['pro_count'] = $pro_count;
- $data['pro_num'] = $pro_num;
- $data['cash_point'] = $this->platform_point;
- $data['point2money_rate'] = option('credit.platform_credit_use_value');
- $data['status'] = 1;
- if (($this->payType == 'offline') && $this->offline_payment) {
- $data['status'] = 2;
- $data['payment_method'] = 'codpay';
- }
- else if ($this->payType == 'peerpay') {
- $data['payment_method'] = 'peerpay';
- if ($this->is_wap == false) {
- $data['peerpay_content'] = $this->peerpay_content;
- $data['peerpay_type'] = $this->peerpay_type;
- }
- }
- if ($this->platform_point) {
- Margin::user_point_log($this->user['uid'], $nowOrder['order_id'], $nowOrder['store_id'], $this->platform_point * -1, 1, 1, '订单使用', $nowOrder['is_offline'], '', false, true);
- }
- D('Order')->where(array('order_id' => $nowOrder['order_id']))->data($data)->save();
- $nowOrder['total'] = $total;
- $nowOrder['cash_point'] = $this->platform_point;
- }else {
- foreach ($nowOrder['proList'] as $product ) {
- while ($product['source_product_id'] != '0') {
- $this->offline_payment = false;
- break;
- }
- }
- $data_order = array();
- if (($this->payType == 'offline') && $this->offline_payment) {
- $data_order['status'] = 2;
- $data_order['payment_method'] = 'codpay';
- }
- else if ($this->payType == 'peerpay') {
- $data_order['payment_method'] = 'peerpay';
- }
- $condition_order['order_id'] = $nowOrder['order_id'];
- $data_order['trade_no'] = $trade_no;
- $data_order['send_other_comment'] = $this->send_other_comment;
- if (!(D('Order')->where($condition_order)->data($data_order)->save())) {
- json_return(1010, '订单信息保存失败');
- }
- }
- $nowOrder['trade_no'] = $trade_no;
- if (($nowOrder['total'] <= 0) && ($nowOrder['cash_point'] == 0)) {
- D('Order')->where(array('order_id' => $nowOrder['order_id']))->data(array('status' => 2, 'paid_time' => time()))->save();
- M('User_coupon')->save(array('is_valid' => 1), array('give_order_id' => $nowOrder['order_id']));
- $database_product = D('Product');
- $database_product_sku = D('Product_sku');
- foreach ($nowOrder['proList'] as $value ) {
- if ($value['sku_id']) {
- $condition_product_sku['sku_id'] = $value['sku_id'];
- $database_product_sku->where($condition_product_sku)->setInc('sales', $value['pro_num']);
- $database_product_sku->where($condition_product_sku)->setDec('quantity', $value['pro_num']);
- }
- $condition_product['product_id'] = $value['product_id'];
- $database_product->where($condition_product)->setInc('sales', $value['pro_num']);
- $database_product->where($condition_product)->setDec('quantity', $value['pro_num']);
- }
- }
- /*if(D('Order')->where(array('order_id' => $nowOrder['order_id']))->data(array('trade_no'=>$trade_no))->save()){
- $Order = D('Order')->where(array('order_id' => $nowOrder['order_id']))->find();
- logs('修改后',$Order['trade_no']);
- $nowOrder['trade_no'] = $Order['trade_no'];
- }*/
- return $nowOrder;
- }
- private function _discount($product_list, $store)
- {
- import('source.class.Order');
- $order_data = new Order($product_list, array('uid' => $this->user['uid']));
- $order_data = $order_data->all();
- $this->order_data = $order_data;
- $discount_money = 0;
- $supplier_money = 0;
- foreach ($product_list as $product ) {
- $discount = 10;
- if ($product['wholesale_supplier_id']) {
- $discount = $order_data['discount_list'][$product['wholesale_supplier_id']];
- }
- else {
- $discount = $order_data['discount_list'][$product['store_id']];
- }
- if ((0 < $product['discount']) && ($product['discount'] <= 10)) {
- $discount = $product['discount'];
- }
- if (($discount != 10) && (0 < $discount)) {
- $discount_money += ($product['pro_num'] * $product['pro_price'] * (10 - $discount)) / 10;
- if (empty($product['wholesale_supplier_id'])) {
- $supplier_money += ($product['pro_num'] * $product['pro_price'] * $discount) / 10;
- }
- }
- else if (empty($product['wholesale_supplier_id'])) {
- $supplier_money += $product['pro_num'] * $product['pro_price'];
- }
- }
- $money = 0;
- $supplier_reward_money = 0;
- $supplier_coupon_money = 0;
- if ($this->user['uid']) {
- if (isset($order_data['reward_list']) && is_array($order_data['reward_list'])) {
- foreach ($order_data['reward_list'] as $tmp_store_id => $reward_list ) {
- foreach ($reward_list as $key => $reward ) {
- if ($key === 'product_price_list') {
- continue;
- }
- if (($store['store_id'] == $tmp_store_id) || ($store['top_supplier_id'] == $tmp_store_id)) {
- $supplier_reward_money += $reward['cash'];
- }
- $money += $reward['cash'];
- }
- }
- }
- $coupon_id = $this->user_coupon_id;
- if (isset($order_data['user_coupon_list']) && is_array($order_data['user_coupon_list'])) {
- foreach ($order_data['user_coupon_list'] as $tmp_store_id => $user_coupon_list ) {
- foreach ($user_coupon_list as $user_coupon ) {
- while (in_array($user_coupon['id'], $coupon_id)) {
- $money += $user_coupon['face_money'];
- if (($store['store_id'] == $tmp_store_id) || ($store['top_supplier_id'] == $tmp_store_id)) {
- $supplier_coupon_money += $reward['cash'];
- }
- break;
- }
- }
- }
- }
- }
- $top_supplier_id = (($store['top_supplier_id'] ? $store['top_supplier_id'] : $store['store_id']));
- $point_money = 0;
- if ($this->point && $this->point_money) {
- $postage_list = $this->postage_list;
- if (!(empty($postage_list))) {
- $postage_list = unserialize($postage_list);
- }
- $points_money_data = Points::getPointMoney($this->user['uid'], $top_supplier_id, ($supplier_money - $supplier_reward_money - $supplier_coupon_money) + $postage_list[$top_supplier_id]);
- if ($points_money_data['money']) {
- $point_money = $points_money_data['money'];
- }
- $this->points_money_data = $points_money_data;
- }
- return $discount_money + $money + $point_money;
- }
- public function pay_callback($trade_no, $pay_money, $payment_method, $out_trade_no, $trade_data = array())
- {
- // file_put_contents('./jeje.txt', 'data');
- import('source.class.Points');
- import('source.class.Margin');
- import('source.class.Order');
- import('source.class.Notice');
- import('source.class.GiftPoint');
- import('source.class.EbNotic');
- //import('source.class.wx_message');
- import('source.class.Epapi');
- if (empty($trade_no)) {
- return array('err_code' => 1000, 'err_msg' => '内部交易单号为空');
- }
- if (!(is_numeric($pay_money)) || ($pay_money < 0)) {
- return array('err_code' => 1001, 'err_msg' => '实付金额无效');
- }
- if (empty($payment_method)) {
- return array('err_code' => 1002, 'err_msg' => '未选择支付方式');
- }
- if ($payment_method != 'peerpay') {
- $check_payment_method = M('Order')->getPaymentMethod($payment_method);
- if (empty($check_payment_method) || is_array($check_payment_method)) {
- return array('err_code' => 1003, 'err_msg' => '无效的支付方式');
- }
- }
- if (empty($out_trade_no)) {
- return array('err_code' => 1005, 'err_msg' => '支付流水号为空');
- }
- $data_order = array();
- $where = array();
- if (strpos($trade_no, '_')) {
- $order_no_arr = explode('_', $trade_no);
- $order_no = $order_no_arr[0];
- $trade_no = $order_no_arr[1];
- $data_order['trade_no'] = $trade_no;
- $where['order_no'] = $order_no;
- }
- else {
- $where['trade_no'] = $trade_no;
- }
- $nowOrder = D('Order')->where($where)->find();
- if (empty($nowOrder)) {
- return array('err_code' => 1006, 'err_msg' => '订单不存在');
- }
- if ($nowOrder['status'] == 0) {
- return array('err_code' => 1007, 'err_msg' => '临时订单无法支付');
- }
- if ($nowOrder['status'] == 5) {
- return array('err_code' => 1008, 'err_msg' => '订单已取消');
- }
- if (1 < $nowOrder['status']) {
- return array('err_code' => 0, 'err_msg' => '订单已支付');
- }
- $nowStore = D('Store')->field('`store_id`,`uid`,`name`,`income`,`unbalance`,`drp_level`,`drp_supplier_id`,`root_supplier_id`,`store_pay_income`,`drp_degree_id`,`sales`,`orders`,`drp_team_id`')->where(array('store_id' => $nowOrder['store_id']))->find();
- if (empty($nowStore)) {
- return array('err_code' => 1009, 'err_msg' => '店铺不存在');
- }
- $cash_point_money = 0;
- if (0 < $nowOrder['cash_point']) {
- $cash_point_money = $nowOrder['cash_point'] / $nowOrder['point2money_rate'];
- }
- //$userinfo = D('User')->field('phone')->where(['uid'=>$nowOrder['uid']])->find();
- //txtlog($userinfo);
- //$userstore = D('User')->field('smscount')->where(['uid'=>$nowStore['uid']])->find();
- //file_put_contents(PIGCMS_PATH.'/upload/aa1.txt',$nowStore['name']);
- // dump($userstore);
- // die;
- //是否有订单支付完成发送短信的权限
- /*$store_notice_manager = M('Store_system_notice_manage')->get($nowOrder['store_id']);
- $has_power = $store_notice_manager['has_power'];
- $has_power_arr = explode('|', $has_power);
- $arr = [];
- foreach($has_power_arr as $k=>$v){
- list($a,$b) = @explode('^',$v);
- $arr[$a] = $b;
- }*/
- //if(in_array(1, array_keys($arr)) && strpos($arr[1],'1')===0){
- /*拥有发送的权限判断短信条数*/
- //if($userstore['smscount']>0){
- /*订单支付成功之后发送短信模板*/
- //file_put_contents(PIGCMS_PATH.'/upload/aa.txt','lalallala');
- /* import('Alimessage');
- $pay_return = new Alimessage();
- $res = $pay_return->order_pay_success('SMS_109160011',$nowStore['name'],$nowOrder['order_no'],$userinfo['phone']);
- if($res){
- //短信发送成功,余数更改
- $left_count = $userstore['smscount'] - 1;
- $result = D('User')->where(['uid'=>$nowStore['uid']])->data(['smscount'=>$left_count])->save();*/
- // if($result){
- // echo 'success';
- // }else{
- // echo 'fail';
- // }
- //}
- //}
- //}
- //商家订单提醒
- $Epapi = new Epapi(['appid'=>option('config.wechat_appid'),'appsecret'=>option('config.wechat_appsecret')]);
- $res = $Epapi->payment_success($nowOrder['order_no'],$payment_method);
- //E币混合支付
- if($nowOrder['is_eb'] == 1 && option('credit.ep_balance_open')){
- EbNotic::EditEb($nowOrder);
- $cash_point_money = $nowOrder['eb_balace'];
- }
- $order_total = $pay_money + $cash_point_money;
- $data_order['third_id'] = $out_trade_no;
- $data_order['payment_method'] = $payment_method;
- $data_order['pay_money'] = $pay_money;
- $data_order['paid_time'] = $_SERVER['REQUEST_TIME'];
- $data_order['total'] = $order_total;
- if (empty($nowOrder['is_fx']) && empty($nowOrder['user_order_id'])) {
- $data_order['sale_total'] = $order_total;
- }
- if (empty($nowOrder['presale_order_id']) && ($nowOrder['type'] == 7)) {
- $data_order['status'] = 7;
- }else {
- $data_order['status'] = 2;
- }
- //扫描直接支付
- if ($nowOrder['is_offline'] == 1) {
- $data_order['status'] = 7;
- $data_order['sent_time'] = time();
- $data_order['delivery_time'] = time();
- }
- /*D('Aaep_api_log')->data(['type'=>'ceshi2','time'=>time(),'content'=>json_encode($data_order)])->add();
- file_put_contents('./lallaaaaaaaa.txt', json_encode($data_order));*/
- if (D('Order')->where(array('order_id' => $nowOrder['order_id']))->data($data_order)->save()) {
- $tuan_team = array();
- if ($nowOrder['type'] == 4) {
- if ($nowOrder['activity_data'] != '') {
- $this->_activity_pay_callback($nowStore, $out_trade_no, $payment_method);
- }
- }
- else if ($nowOrder['type'] == 5) {
- $this->_dealer_pay_callback($order_total, $nowOrder, $nowStore);
- return array('err_code' => 0, 'err_msg' => '付款成功');
- }
- else if ($nowOrder['type'] == 6) {
- $order_count = D('Order')->where(array(
- 'store_id' => $nowOrder['store_id'],
- 'type' => 6,
- 'data_id' => $nowOrder['data_id'],
- 'data_item_id' => $nowOrder['data_item_id'],
- 'status' => array(
- 'in',
- array(2, 3, 4, 7)
- )
- ))->sum('pro_num');
- D('Tuan_team')->where(array('tuan_id' => $nowOrder['data_id'], 'order_id' => $nowOrder['order_id']))->data(array('pay_status' => 1))->save();
- D('Tuan_team')->where(array('tuan_id' => $nowOrder['data_id'], 'team_id' => $nowOrder['data_item_id']))->data(array('order_number' => $order_count + 0))->save();
- $tuan_count = D('Tuan_team')->where(array('tuan_id' => $nowOrder['data_id'], 'pay_status' => 1))->count('team_id');
- D('Tuan')->where(array('id' => $nowOrder['data_id']))->data(array('count' => $tuan_count))->save();
- }
- else if ($nowOrder['type'] == 7) {
- if ($nowOrder['presale_order_id'] == $nowOrder['order_id']) {
- D('Presale')->where(array('id' => $nowOrder['data_id']))->setInc('buyer_count', 1);
- }
- else {
- D('Presale')->where(array('id' => $nowOrder['data_id']))->setInc('pre_buyer_count', 1);
- $presale_num = (($nowOrder['pro_num'] ? $nowOrder['pro_num'] : 0));
- D('Presale')->where(array('id' => $nowOrder['data_id']))->setInc('buy_count', $presale_num);
- }
- }
- else if ($nowOrder['type'] == 53) {
- $seckill_id = $nowOrder['activity_id'];
- $seckill_info = D('Seckill')->where(array('pigcms_id' => $seckill_id))->find();
- if (!(empty($seckill_info['sku_id']))) {
- $product_sku = D('Product_sku')->where(array('product_id' => $seckill_info['product_id'], 'sku_id' => $seckill_info['sku_id']))->find();
- $product_info = D('Product')->where(array('product_id' => $seckill_info['product_id']))->find();
- D('Product_sku')->where(array('product_id' => $seckill_info['product_id'], 'sku_id' => $seckill_info['sku_id']))->data(array('sales' => $product_sku['sales'] + 1, 'quantity' => $product_sku['quantity'] - 1))->save();
- D('Product')->where(array('product_id' => $seckill_info['product_id']))->data(array('sales' => $product_info['sales'] + 1, 'quantity' => $product_info['quantity'] - 1))->save();
- D('Seckill')->where(array('pigcms_id' => $seckill_id))->data(array('sales_volume' => $seckill_info['sales_volume'] + 1))->save();
- }
- else {
- $product_info = D('Product')->where(array('product_id' => $seckill_info['product_id']))->find();
- D('Product')->where(array('product_id' => $seckill_info['product_id']))->data(array('sales' => $product_info['sales'] + 1))->save();
- D('Seckill')->where(array('pigcms_id' => $seckill_id))->data(array('sales_volume' => $seckill_info['sales_volume'] + 1))->save();
- }
- }
- if (!(in_array($nowOrder['type'], array(6, 7)))) {
- Margin::init($nowStore['store_id']);
- $margin_balance = Margin::balance();
- if (0 <= $margin_balance) {
- Margin::consume($order_total, 2, '保证金扣除', 1, $nowOrder['order_id']);
- }
- }
- if (empty($nowOrder['useStorePay'])) {
- M('Common_data')->setData('total', $pay_money);
- }
- if (!(empty($nowOrder['drp_team_id']))) {
- if (M('Drp_team')->checkDrpTeam($nowOrder['store_id'], true)) {
- M('Drp_team')->setSalesInc($nowOrder['drp_team_id'], $order_total);
- }
- }
- if (!(empty($nowOrder['uid']))) {
- M('Store_user_data')->upUserData($nowOrder['store_id'], $nowOrder['uid'], 'unsend');
- }
- if (!(empty($nowOrder['is_point_order']))) {
- GiftPoint::order($nowOrder['order_pay_point'], $nowOrder['order_id'], $nowOrder['store_id'], $nowOrder['uid']);
- }
- M('User_coupon')->save(array('is_valid' => 1), array('give_order_id' => $nowOrder['order_id']));
- if (!(empty($trade_data))) {
- $data_trade = array();
- $data_trade['order_id'] = $nowOrder['order_id'];
- $data_trade['third_data'] = serialize($trade_data);
- D('Order_trade')->data($data_trade)->add();
- }
- $top_supplier_id = $nowStore['store_id'];
- $type = 1;
- if (!(empty($nowOrder['is_fx']))) {
- if (!(empty($nowStore['drp_supplier_id']))) {
- $type = 5;
- $top_supplier_id = M('Store_supplier')->getSupplierId($nowStore['store_id']);
- }
- }
- $data_store = array();
- $data_store['income'] = $nowStore['income'] + $order_total;
- $data_store['sales'] = $nowStore['sales'] + $order_total;
- $data_store['orders'] = $nowStore['orders'] + 1;
- if (empty($nowOrder['useStorePay']) || ($nowOrder['storePay'] != $nowStore['store_id'])) {
- if (!(empty($nowOrder['is_fx'])) || ($payment_method != 'point')) {
- $data_store['unbalance'] = $nowStore['unbalance'] + $order_total;
- }//平台支付
- }else if(!empty($nowOrder['useStorePay'])){//商家自己的支付
- $cash_point_money = 0;
- if($nowOrder['is_eb'] == 1 && option('credit.ep_balance_open')){
- $cash_point_money = $nowOrder['eb_balace'];
- }
- if($payment_method == 'eb_pay' || $payment_method == 'test'){
- $data_store['unbalance'] = $nowStore['unbalance'] + $order_total;
- }else{
- $data_store['unbalance'] = $nowStore['unbalance'] + $cash_point_money;
- }
- }
- $data_store['last_edit_time'] = time();
- if (D('Store')->where(array('store_id' => $nowOrder['store_id']))->data($data_store)->save()) {
- $data_financial_record['store_id'] = $nowOrder['store_id'];
- $data_financial_record['order_id'] = $nowOrder['order_id'];
- $data_financial_record['order_no'] = $nowOrder['order_no'];
- $data_financial_record['income'] = $order_total;
- $data_financial_record['type'] = $type;
- $data_financial_record['balance'] = $nowStore['income'];
- $data_financial_record['payment_method'] = $payment_method;
- $data_financial_record['trade_no'] = $nowOrder['trade_no'];
- $data_financial_record['add_time'] = $_SERVER['REQUEST_TIME'];
- $data_financial_record['user_order_id'] = $nowOrder['order_id'];
- $data_financial_record['storeOwnPay'] = $nowOrder['useStorePay'];
- $data_financial_record['supplier_id'] = $top_supplier_id;
- arrlog($data_financial_record,'Financial_record');
- $financial_record_id = D('Financial_record')->data($data_financial_record)->add();
- }
- $drp_level = $nowStore['drp_level'];
- $max_drp_level = $drp_level;
- $drp_multi_level = false;
- $max_store_drp_level = option('config.max_store_drp_level');
- if ((3 < $drp_level) && ((3 < $max_store_drp_level) || empty($max_store_drp_level))) {
- $drp_level = 3;
- $drp_multi_level = true;
- }
- $order_products = D('Order_product')->where(array('order_id' => $nowOrder['order_id']))->select();
- $wholesale_products = array();
- $wholesale_suppliers = array();
- $owner_products = array();
- $first_product_name = '';
- foreach ($order_products as $i => $value ) {
- $subscribed_discount = 0;
- if (!(empty($value['subscribed_discount'])) && (0 < $value['subscribed_discount']) && ($value['subscribed_discount'] < 10)) {
- $subscribed_discount = ($value['pro_price'] / $value['subscribed_discount'] / 10) - $value['pro_price'];
- }
- $order_products[$i]['subscribed_discount'] = $subscribed_discount;
- $product = M('Product')->get(array('product_id' => $value['product_id']));
- if (!($first_product_name)) {
- $first_product_name = msubstr($product['name'], 0, 11);
- }
- if (!(empty($value['is_fx']))) {
- $order_products[$i] = array('store_id' => (empty($product['supplier_id']) ? $product['store_id'] : 0), 'order_product_id' => $value['pigcms_id'], 'product_id' => $value['product_id'], 'sku_id' => $value['sku_id'], 'sku_data' => $value['sku_data'], 'quantity' => $value['pro_num'], 'price' => $value['pro_price'], 'cost_price' => $product['cost_price'], 'postage_type' => $product['postage_type'], 'postage' => $product['postage'], 'postage_template_id' => $product['postage_template_id'], 'source_product_id' => (!(empty($product['source_product_id'])) ? $product['source_product_id'] : $product['product_id']), 'original_product_id' => (!(empty($product['original_product_id'])) ? $product['original_product_id'] : $product['product_id']), 'comment' => $value['comment'], 'is_fx' => $product['is_fx'], 'unified_price_setting' => $product['unified_price_setting'], 'unified_profit' => (!(empty($product['unified_profit'])) ? $product['unified_profit'] : 0), 'drp_level_1_cost_price' => $product['drp_level_1_cost_price'], 'drp_level_2_cost_price' => $product['drp_level_2_cost_price'], 'drp_level_3_cost_price' => $product['drp_level_3_cost_price'], 'drp_level_1_price' => $product['drp_level_1_price'], 'drp_level_2_price' => $product['drp_level_2_price'], 'drp_level_3_price' => $product['drp_level_3_price'], 'subscribed_discount' => $subscribed_discount);
- }
- if (!(empty($value['supplier_id']))) {
- if (!(empty($product['wholesale_product_id']))) {
- $wholesale_products[$product['supplier_id'] . ',' . $product['store_id']][] = array('order_product_id' => $value['pigcms_id'], 'product_id' => $value['product_id'], 'sku_id' => $value['sku_id'], 'sku_data' => $value['sku_data'], 'quantity' => $value['pro_num'], 'comment' => $value['comment'], 'wholesale_price' => $product['wholesale_price'], 'wholesale_product_id' => $product['wholesale_product_id'], 'unified_profit' => (!(empty($product['unified_profit'])) ? $product['unified_profit'] : 0), 'price' => $value['pro_price'], 'is_comment' => $value['is_comment'], 'is_present' => $value['is_present'], 'user_order_id' => $value['user_order_id'], 'return_status' => $value['return_status'], 'cost_price' => $product['cost_price'], 'drp_level_1_cost_price' => $product['drp_level_1_cost_price']);
- $wholesale_suppliers[] = $product['supplier_id'];
- }
- if (!(empty($nowOrder['presale_order_id'])) || ($nowOrder['type'] != 7)) {
- if (!(empty($product['wholesale_product_id']))) {
- sync_sku($value['product_id'], $product['wholesale_product_id'], $value['sku_data'], $value['pro_num']);
- }
- else {
- sync_sku($value['product_id'], $value['product_id'], $value['sku_data'], $value['pro_num']);
- }
- }
- }
- else {
- $owner_products[] = array('product_id' => $product['product_id'], 'store_id' => $nowStore['store_id'], 'sku_data' => $value['sku_data'], 'wholesale_product_id' => 0, 'supplier_id' => 0, 'pro_num' => $value['pro_num'], 'pro_price' => $value['pro_price']);
- if (!(empty($nowOrder['presale_order_id'])) || ($nowOrder['type'] != 7)) {
- sync_sku($value['product_id'], $value['product_id'], $value['sku_data'], $value['pro_num'], false);
- D('Product')->where(array('product_id' => $value['product_id']))->setInc('sales', $value['pro_num']);
- if (!(empty($value['sku_id']))) {
- D('Product')->where(array('product_id' => $value['product_id'], 'sku_id' => $value['sku_id']))->setInc('sales', $value['pro_num']);
- }
- }
- }
- }
- if (!(empty($owner_products))) {
- $owner_sub_total = 0;
- foreach ($owner_products as $owner_product ) {
- $owner_sub_total += $owner_product['pro_price'] * $owner_product['pro_num'];
- }
- $postages = unserialize($nowOrder['fx_postage']);
- $postage = 0;
- if (!(empty($postages[$nowOrder['store_id']]))) {
- $postage = $postages[$nowOrder['store_id']];
- }
- $owner_discount_amount = Order::orderDiscount($nowOrder, $owner_products, true);
- $owner_total = ($owner_sub_total - $owner_discount_amount) + $postage;
- if (0 < $owner_total) {
- D('Order')->where(array('order_id' => $nowOrder['order_id']))->data(array('sale_total' => $owner_total))->save();
- }
- }
- if (!(empty($nowOrder['useStorePay'])) && !(empty($nowOrder['storePay']))) {
- D('Store')->where(array('store_id' => $nowOrder['storePay']))->setInc('store_pay_income', $nowOrder['total']);
- }
- if (empty($nowOrder['is_fx'])) {
- if ($nowOrder['is_offline'] == 1) {
- $recom = $this->auto_order_save($nowOrder['store_id'],$nowOrder['order_no']);
- //logs('一码支付订单完成',$recom);
- }
- Notice::OrderPaymentSuccess($nowOrder, $first_product_name);
- return array('err_code' => 0, 'err_msg' => '付款成功');
- }
- if (!(empty($order_products)) && !(empty($nowOrder['is_fx']))) {
- $fx_order = M('Fx_order');
- $fx_order_product = M('Fx_order_product');
- $disabled_sellers = array();
- $disabled_levels = array();
- global $drp_degree_reward_profits;
- $drp_degree_reward_profits = array();
- global $subscribed_discounts;
- $subscribed_discounts = array();
- $supplier_id = $nowStore['drp_supplier_id'];
- $supplier_info = D('Store')->field('store_id,status,drp_supplier_id,drp_level')->where(array('store_id' => $supplier_id))->find();
- if ($supplier_info['status'] != 1) {
- if (!(empty($supplier_info['drp_supplier_id']))) {
- $supplier_id = $supplier_info['drp_supplier_id'];
- }
- $disabled_sellers[] = $supplier_id;
- $disabled_levels[] = $drp_level - 1;
- }
- if (!(empty($supplier_info['drp_supplier_id']))) {
- $supplier_info = D('Store')->field('store_id,status,drp_supplier_id,drp_level')->where(array('store_id' => $supplier_info['drp_supplier_id']))->find();
- if ($supplier_info['status'] != 1) {
- if (in_array($supplier_id, $disabled_sellers)) {
- $supplier_id = $top_supplier_id;
- }
- $disabled_sellers[] = $supplier_info['store_id'];
- $disabled_levels[] = $drp_level - 2;
- }
- }
- $fx_order_no = date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(100000, 999999);
- $sub_total = 0;
- $cost_sub_total = 0;
- $sale_profit_total = 0;
- $disabled_seller_profit = 0;
- $quantity = 0;
- $supplier_product_sub_total = 0;
- $supplier_product_cost_sub_total = 0;
- $sub_profit_total = 0;
- $tmp_drp_level = $drp_level;
- foreach ($order_products as $k => $product ) {
- if (!(empty($product['unified_profit']))) {
- $drp_level = 3;
- }
- else {
- $drp_level = $tmp_drp_level;
- }
- $drp_degree_reward = Order::drpDegreeReward($top_supplier_id, $nowOrder['store_id'], $product['product_id'], $drp_level);
- $properties = getProperty2Str($product['sku_data']);
- $sale_profit = 0;
- $seller_profit = 0;
- if (!(empty($properties))) {
- $sku = M('Product_sku')->getSku($product['product_id'], $properties);
- if (!(empty($product['is_fx']))) {
- $cost_price = ((0 < $sku['drp_level_' . $drp_level . '_cost_price'] ? $sku['drp_level_' . $drp_level . '_cost_price'] : $sku['price']));
- if (!(empty($disabled_sellers))) {
- foreach ($disabled_sellers as $key2 => $disabled_seller ) {
- if ($disabled_seller == $nowStore['drp_supplier_id']) {
- $cost_price = ((0 < $sku['drp_level_' . $disabled_levels[$key2] . '_cost_price'] ? $sku['drp_level_' . $disabled_levels[$key2] . '_cost_price'] : $sku['price']));
- }
- $cost_price_1 = ((0 < $sku['drp_level_' . ($disabled_levels[$key2] + 1) . '_cost_price'] ? $sku['drp_level_' . ($disabled_levels[$key2] + 1) . '_cost_price'] : $sku['price']));
- $cost_price_2 = ((0 < $sku['drp_level_' . $disabled_levels[$key2] . '_cost_price'] ? $sku['drp_level_' . $disabled_levels[$key2] . '_cost_price'] : $sku['price']));
- $disabled_seller_profit += $cost_price_1 - $cost_price_2;
- }
- }
- }
- else {
- $cost_price = $sku['price'];
- }
- if ((0 < $drp_level) && ($drp_level < 3) && empty($product['unified_profit'])) {
- $sub_profit = $sku['price'] - $sku['drp_level_' . ($drp_level + 1) . '_cost_price'];
- $sub_profit_total += $sub_profit;
- $cost_price += $sub_profit;
- }
- if (0 < $product['subscribed_discount']) {
- $cost_price -= $product['subscribed_discount'];
- $subscribed_discounts[$properties . ':' . $product['product_id']] = $product['subscribed_discount'];
- }
- $order_products[$k]['cost_price'] = $cost_price;
- }
- else {
- if (!(empty($product['is_fx']))) {
- $cost_price = ((0 < $product['drp_level_' . $drp_level . '_cost_price'] ? $product['drp_level_' . $drp_level . '_cost_price'] : $product['price']));
- if (!(empty($disabled_sellers))) {
- foreach ($disabled_sellers as $key2 => $disabled_seller ) {
- if ($disabled_seller == $nowStore['drp_supplier_id']) {
- $cost_price = ((0 < $product['drp_level_' . $disabled_levels[$key2] . '_cost_price'] ? $product['drp_level_' . $disabled_levels[$key2] . '_cost_price'] : $product['price']));
- }
- $cost_price_1 = ((0 < $product['drp_level_' . ($disabled_levels[$key2] + 1) . '_cost_price'] ? $product['drp_level_' . ($disabled_levels[$key2] + 1) . '_cost_price'] : $product['price']));
- $cost_price_2 = ((0 < $product['drp_level_' . $disabled_levels[$key2] . '_cost_price'] ? $product['drp_level_' . $disabled_levels[$key2] . '_cost_price'] : $product['price']));
- $disabled_seller_profit += $cost_price_1 - $cost_price_2;
- }
- }
- }
- else {
- $cost_price = $product['price'];
- }
- if ((0 < $drp_level) && ($drp_level < 3) && empty($product['unified_profit'])) {
- $sub_profit = $product['price'] - $product['drp_level_' . ($drp_level + 1) . '_cost_price'];
- $sub_profit_total += $sub_profit;
- $cost_price += $sub_profit;
- }
- if (0 < $product['subscribed_discount']) {
- $cost_price -= $product['subscribed_discount'];
- $subscribed_discounts[$product['product_id']] = $product['subscribed_discount'];
- }
- $order_products[$k]['cost_price'] = $cost_price;
- }
- if (0 < ($product['price'] - $cost_price)) {
- $pro_profit = $product['price'] - $cost_price;
- $drp_degree_reward_profit = 0;
- if (0 < $drp_degree_reward) {
- $drp_degree_reward_profit = $pro_profit * $drp_degree_reward;
- if ($properties) {
- $drp_degree_reward_profits[$properties . ':' . $product['product_id']] = $drp_degree_reward_profit;
- }
- else {
- $drp_degree_reward_profits[$product['product_id']] = $drp_degree_reward_profit;
- }
- $cost_price -= $drp_degree_reward_profit;
- $pro_profit += $drp_degree_reward_profit;
- $order_products[$k]['cost_price'] -= $drp_degree_reward_profit;
- }
- if (0 < $pro_profit) {
- D('Order_product')->where(array('pigcms_id' => $product['order_product_id']))->data(array('profit' => $pro_profit, 'drp_degree_profit' => $drp_degree_reward_profit))->save();
- }
- }
- $price = $product['price'];
- $sub_total += $price * $product['quantity'];
- $cost_sub_total += $cost_price * $product['quantity'];
- $quantity += $product['quantity'];
- if ($top_supplier_id == $product['store_id']) {
- $supplier_product_sub_total += $price * $product['quantity'];
- $supplier_product_cost_sub_total += $cost_price * $product['quantity'];
- }
- }
- $sale_profit_total += $sub_profit_total;
- $postage = ((!(empty($nowOrder['postage'])) ? $nowOrder['postage'] : 0));
- $total = $sub_total + $postage;
- $cost_total = $cost_sub_total + $postage;
- $data = array('fx_order_no' => $fx_order_no, 'uid' => $nowOrder['uid'], 'session_id' => $nowOrder['session_id'], 'order_id' => $nowOrder['order_id'], 'order_no' => $nowOrder['order_no'], 'fx_trade_no' => date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(100000, 999999), 'supplier_id' => $supplier_id, 'store_id' => $nowOrder['store_id'], 'quantity' => $quantity, 'sub_total' => $sub_total, 'cost_sub_total' => $cost_sub_total, 'postage' => $postage, 'total' => $total, 'cost_total' => $cost_total, 'delivery_user' => $nowOrder['address_user'], 'delivery_tel' => $nowOrder['address_tel'], 'delivery_address' => $nowOrder['address'], 'add_time' => time(), 'user_order_id' => $nowOrder['order_id'], 'fx_postage' => $nowOrder['fx_postage'], 'status' => 2, 'suppliers' => $nowOrder['suppliers']);
- if ($fx_order_id = $fx_order->add($data)) {
- M('Order')->setFxOrder($nowOrder['store_id'], $nowOrder['order_id']);
- foreach ($order_products as $product ) {
- $fx_order_product->add(array('fx_order_id' => $fx_order_id, 'product_id' => $product['product_id'], 'source_product_id' => $product['product_id'], 'price' => $product['price'], 'cost_price' => $product['cost_price'], 'quantity' => $product['quantity'], 'sku_id' => $product['sku_id'], 'sku_data' => $product['sku_data'], 'comment' => $product['comment']));
- }
- }
- if (!(empty($financial_record_id)) && (0 <= $cost_total)) {
- if (!(empty($wholesale_products)) && empty($nowStore['drp_supplier_id'])) {
- $type = 6;
- }
- $profit = $total - $cost_total;
- if (0 <= $profit) {
- D('Financial_record')->where(array('pigcms_id' => $financial_record_id))->data(array('profit' => $profit, 'type' => $type))->save();
- }
- }
- }
- $supplier_chain = D('Store_supplier')->field('supply_chain')->where(array('seller_id' => $nowStore['store_id'], 'type' => 1))->find();
- $supply_chain = $supplier_chain['supply_chain'];
- $supply_chain = explode(',', $supply_chain);
- $where = array();
- $where['status'] = 1;
- $where['drp_approve'] = 1;
- $where['drp_level'] = array('<', $nowStore['drp_level']);
- $where['store_id'] = array('in', $supply_chain);
- $where['_string'] = '(root_supplier_id = \'' . $nowStore['root_supplier_id'] . '\' OR store_id = \'' . $nowStore['root_supplier_id'] . '\')';
- $suppliers = D('Store')->where($where)->order('drp_level DESC')->limit(3)->select();
- if (!(empty($suppliers))) {
- foreach ($suppliers as $i => $supplier ) {
- $fx_order_info = D('Fx_order')->where(array('supplier_id' => $supplier['store_id'], 'user_order_id' => $nowOrder['order_id']))->find();
- if (!(empty($fx_order_info))) {
- $tmp_data['trade_no'] = date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(100000, 999999);
- $tmp_data['total'] = $fx_order_info['cost_total'];
- $tmp_data['postage'] = $fx_order_info['postage'];
- $tmp_data['order_id'] = $fx_order_info['fx_order_id'];
- $tmp_data['supplier_id'] = $supplier['store_id'];
- $tmp_data['seller_id'] = $fx_order_info['store_id'];
- $tmp_data['max_drp_level'] = $max_drp_level;
- $tmp_data['drp_supplier_id'] = ((!(empty($suppliers[$i + 1]['store_id'])) ? $suppliers[$i + 1]['store_id'] : $top_supplier_id));
- if ($max_drp_level < 3) {
- $tmp_data['drp_level'] = 1 - $i;
- }
- else {
- $tmp_data['drp_level'] = 2 - $i;
- }
- $tmp_data['useStorePay'] = $nowOrder['useStorePay'];
- $tmp_data['storePay'] = $nowOrder['storePay'];
- $tmp_data['third_id'] = $out_trade_no;
- $tmp_data['payment_method'] = $payment_method;
- $tmp_data['top_supplier_id'] = $top_supplier_id;
- $tmp_data['user_order_id'] = $nowOrder['order_id'];
- $tmp_data['pay_money'] = $nowOrder['total'] + ($nowOrder['cash_point'] / $nowOrder['point2money_rate']);
- $tmp_data['drp_multi_level'] = $drp_multi_level;
- if ((0 < $sale_profit_total) || (0 < $disabled_seller_profit)) {
- if ((1 < $max_drp_level) && ($i == 0) && (0 < $sale_profit_total)) {
- $tmp_data['sale_profit_total'] = $sale_profit_total;
- }
- else if (1 < $max_drp_level) {
- $tmp_data['sale_profit_total'] = -($sale_profit_total + $disabled_seller_profit);
- }
- }
- $this->_fx_order($tmp_data);
- }
- }
- }
- if (!(empty($wholesale_products)) && ($drp_level == 0)) {
- foreach ($wholesale_products as $tmp_key => $tmp_wholesale_products ) {
- $keys = explode(',', $tmp_key);
- $supplier_id = $keys[0];
- $seller_id = $keys[1];
- $this->_ws_order($nowOrder['order_id'], $supplier_id, $seller_id, $tmp_wholesale_products, false, $nowOrder['useStorePay']);
- }
- }
- if ($nowOrder['type'] == 6) {
- $tuan_team = D('Tuan_team')->where(array('team_id' => $nowOrder['data_item_id']))->find();
- if (!(empty($tuan_team)) && ($tuan_team['order_id'] != $nowOrder['order_id'])) {
- $url = option('config.site_url') . '/webapp/groupbuy/#/detailinfo/' . $tuan_team['tuan_id'] . '/' . $tuan_team['type'] . '/' . $tuan_team['item_id'] . '/' . $tuan_team['team_id'];
- ShopNotice::TuanSuccessNotice($tuan_team['uid'], $nowOrder['uid'], $nowOrder['store_id'], $nowOrder['data_id'], $url);
- }
- }
- /*if ($nowOrder['is_offline'] == 1) {
- $this->auto_order_save($nowOrder['store_id'],$nowOrder['order_no']);
- }*/
- Notice::OrderPaymentSuccess($nowOrder, $first_product_name);
- return array('err_code' => 0, 'err_msg' => '付款成功');
- }
- }
- //一码支付订单处理
- public function auto_order_save($store_id,$order_no)
- {
- import('source.class.Order');
- $order = D('Order')->where(array('order_no' => $order_no, 'status' => array('in', array(2, 3, 7))))->find();
- if (empty($order)) {
- json_return(1001, '订单不存在');
- }
- $result = Order::complate($order['order_id']);
- if (!empty($result['err_code'])) {
- json_return($result['err_code'], $result['err_msg']);
- } else {
- //客户经理/城主提成
- import('source.class.Reward');
- $reward = new Reward('ep7941ffea4379e027','1483239892','epoiqg81tlknwgqiqlk0815ymdvqi1lk');
- $reward->bonus($order['order_id']);
- //首单店铺
- import('FirstStore');
- FirstStore::confirmation($order['order_id'],$order['uid']);
- return true;
- //json_return(0, '订单交易完成');
- }
- }
- private function _ws_order($user_order_id, $supplier_id, $seller_id, $products, $is_seller, $useStorePay)
- {
- $sub_total = 0;
- $cost_sub_total = 0;
- $quantity = 0;
- $seller = D('Store')->field('uid,name,income')->where(array('store_id' => $seller_id))->find();
- $supplier = D('Store')->field('uid,name,income,wxpay')->where(array('store_id' => $supplier_id))->find();
- if (!(empty($is_seller))) {
- $order = D('Order')->where(array('store_id' => $seller_id, 'user_order_id' => $user_order_id))->find();
- }
- else {
- $order = D('Order')->where(array('store_id' => $seller_id, 'order_id' => $user_order_id))->find();
- }
- $dealer_profit = 0;
- foreach ($products as $key => $product ) {
- $properties = getProperty2Str($product['sku_data']);
- if ($properties) {
- $sku = M('Product_sku')->getSku($product['product_id'], $properties);
- $price = $sku['price'];
- $cost_price = $sku['wholesale_price'];
- $drp_level_1_cost_price = ((0 < $sku['drp_level_1_cost_price'] ? $sku['drp_level_1_cost_price'] : $price));
- $tmp_order_product = D('Order_product')->field('pro_price')->where(array('user_order_id' => $user_order_id, 'product_id' => $product['product_id'], 'sku_data' => $product['sku_data']))->order('pigcms_id DESC')->find();
- if (!(empty($product['unified_profit'])) || ($tmp_order_product['pro_price'] != $drp_level_1_cost_price)) {
- if (!(empty($tmp_order_product['pro_price']))) {
- $drp_level_1_cost_price = $tmp_order_product['pro_price'];
- }
- }
- }
- else {
- $price = $product['price'];
- $cost_price = $product['wholesale_price'];
- $drp_level_1_cost_price = ((0 < $product['drp_level_1_cost_price'] ? $product['drp_level_1_cost_price'] : $price));
- $tmp_order_product = D('Order_product')->field('pro_price')->where(array('user_order_id' => $user_order_id, 'product_id' => $product['product_id']))->order('pigcms_id DESC')->find();
- if (!(empty($product['unified_profit'])) || ($tmp_order_product['pro_price'] != $drp_level_1_cost_price)) {
- if (!(empty($tmp_order_product['pro_price']))) {
- $drp_level_1_cost_price = $tmp_order_product['pro_price'];
- }
- }
- }
- if (0 < ($price - $cost_price)) {
- if (!(empty($is_seller))) {
- $pro_profit = $drp_level_1_cost_price - $cost_price;
- }
- else {
- $pro_profit = $price - $cost_price;
- }
- D('Order_product')->where(array('pigcms_id' => $product['order_product_id']))->data(array('profit' => $pro_profit))->save();
- $dealer_profit += $product['quantity'] * $pro_profit;
- }
- $products[$key]['cost_price'] = $cost_price;
- $sub_total += $price * $product['quantity'];
- $cost_sub_total += $cost_price * $product['quantity'];
- $quantity += $product['quantity'];
- }
- $fx_postages = array();
- if (!(empty($order['fx_postage']))) {
- $fx_postages = unserialize($order['fx_postage']);
- }
- $postage = ((!(empty($fx_postages[$supplier_id])) ? $fx_postages[$supplier_id] : 0));
- $total = $sub_total + $postage;
- $cost_total = $cost_sub_total + $postage;
- $fx_order_no = date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(100000, 999999);
- $data = array('fx_order_no' => $fx_order_no, 'uid' => $order['uid'], 'session_id' => $order['session_id'], 'order_id' => $order['order_id'], 'order_no' => $order['order_no'], 'fx_trade_no' => date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(100000, 999999), 'supplier_id' => $supplier_id, 'store_id' => $seller_id, 'quantity' => $quantity, 'sub_total' => $sub_total, 'cost_sub_total' => $cost_sub_total, 'postage' => $postage, 'total' => $total, 'cost_total' => $cost_total, 'delivery_user' => $order['address_user'], 'delivery_tel' => $order['address_tel'], 'delivery_address' => $order['address'], 'add_time' => time(), 'user_order_id' => $user_order_id, 'fx_postage' => $order['fx_postage'], 'paid_time' => time(), 'status' => 2);
- if ($fx_order_id = M('Fx_order')->add($data)) {
- foreach ($products as $product ) {
- M('Fx_order_product')->add(array('fx_order_id' => $fx_order_id, 'product_id' => $product['product_id'], 'source_product_id' => $product['wholesale_product_id'], 'price' => $product['price'], 'cost_price' => $product['cost_price'], 'quantity' => $product['quantity'], 'sku_id' => $product['sku_id'], 'sku_data' => $product['sku_data'], 'comment' => $product['comment']));
- }
- $fx_order_info = M('Fx_order')->getOrder($seller_id, $fx_order_id);
- $order_id = $fx_order_info['order_id'];
- $order_info = D('Order')->where(array('order_id' => $order_id))->find();
- $trade_no = date('YmdHis', time()) . mt_rand(100000, 999999);
- unset($order_info['order_id']);
- $order_info['order_no'] = date('YmdHis', time()) . mt_rand(100000, 999999);
- $order_info['store_id'] = $data['supplier_id'];
- $order_info['uid'] = $seller['uid'];
- $order_info['session_id'] = '';
- $order_info['postage'] = $fx_order_info['postage'];
- $order_info['sub_total'] = $fx_order_info['cost_sub_total'];
- $order_info['total'] = $fx_order_info['cost_total'];
- if (!(empty($useStorePay))) {
- $order_info['status'] = 1;
- $order_info['trade_no'] = '';
- $order_info['paid_time'] = 0;
- $order_info['third_id'] = '';
- $order_info['payment_method'] = 'balance';
- }
- else {
- $order_info['status'] = 2;
- $order_info['trade_no'] = $trade_no;
- $order_info['paid_time'] = time();
- $order_info['third_id'] = $order['third_id'];
- $order_info['payment_method'] = $order['payment_method'];
- }
- $order_info['pro_count'] = 0;
- $order_info['pro_num'] = $fx_order_info['quantity'];
- $order_info['type'] = 5;
- $order_info['add_time'] = time();
- $order_info['sent_time'] = 0;
- $order_info['cancel_time'] = 0;
- $order_info['complate_time'] = 0;
- $order_info['refund_time'] = 0;
- $order_info['star'] = 0;
- $order_info['pay_money'] = $fx_order_info['cost_total'];
- $order_info['cancel_method'] = 0;
- $order_info['float_amount'] = 0;
- $order_info['is_fx'] = 0;
- $order_info['fx_order_id'] = $fx_order_id;
- $order_info['user_order_id'] = $fx_order_info['user_order_id'];
- $order_info['suppliers'] = $data['supplier_id'];
- $order_info['fx_postage'] = '';
- if ($order_id = M('Order')->add($order_info)) {
- $order_info['order_id'] = $order_id;
- $nowOrder = $order_info;
- $order_ws_products = array();
- $owner_products = array();
- foreach ($products as $product ) {
- $properties = getProperty2Str($product['sku_data']);
- if ($properties) {
- $sku = M('Product_sku')->getSku($product['wholesale_product_id'], $properties);
- $sku_id = $sku['sku_id'];
- }
- else {
- $sku_id = 0;
- }
- $data = array('order_id' => $order_id, 'product_id' => $product['wholesale_product_id'], 'sku_id' => $sku_id, 'sku_data' => $product['sku_data'], 'pro_num' => $product['quantity'], 'pro_price' => $product['cost_price'], 'pro_weight' => $product['pro_weight'], 'comment' => $product['comment'], 'is_packaged' => 0, 'in_package_status' => 0, 'is_fx' => 0, 'supplier_id' => 0, 'original_product_id' => 0, 'user_order_id' => $product['user_order_id'], 'is_present' => $product['is_present'], 'is_comment' => $product['is_comment']);
- $order_ws_products[] = array('product_id' => $product['wholesale_product_id'], 'store_id' => $supplier_id, 'sku_data' => $product['sku_data'], 'wholesale_product_id' => 0, 'supplier_id' => 0, 'pro_num' => $product['quantity'], 'pro_price' => $product['cost_price']);
- M('Order_product')->add($data);
- $order_product = D('Order_product')->field('pro_num, pro_price')->where(array('order_id' => $user_order_id, 'original_product_id' => $product['wholesale_product_id'], 'sku_id' => $product['sku_id']))->find();
- $owner_products[] = array('product_id' => $product['wholesale_product_id'], 'store_id' => $supplier_id, 'sku_data' => $product['sku_data'], 'wholesale_product_id' => 0, 'supplier_id' => 0, 'pro_num' => $order_product['pro_num'], 'pro_price' => $order_product['pro_price']);
- }
- $owner_sub_total = 0;
- foreach ($owner_products as $owner_product ) {
- $owner_sub_total += $owner_product['pro_price'] * $owner_product['pro_num'];
- }
- $owner_discount_amount = Order::orderDiscount($nowOrder, $owner_products, true);
- $owner_total = ($owner_sub_total - $owner_discount_amount) + $postage;
- $discount_amount = Order::orderDiscount($nowOrder, $order_ws_products, true);
- $order_total = $fx_order_info['cost_total'] - $discount_amount;
- $order_data = array();
- $profit = 0;
- if (0 < ($total - $order_total)) {
- if (0 < $dealer_profit) {
- D('Financial_record')->where(array(
- 'user_order_id' => $user_order_id,
- 'store_id' => $seller_id,
- 'income' => array('>', 0)
- ))->setInc('profit', $dealer_profit);
- }
- }
- $bond_balance_pay = false;
- $bond = D('Supp_dis_relation')->field('bond')->where(array('supplier_id' => $order_info['store_id'], 'distributor_id' => $seller_id))->find();
- $bond = ((!(empty($bond['bond'])) ? $bond['bond'] : 0));
- if ($order_total < $bond) {
- $bond_balance = ((0 < ($bond - $order_total) ? $bond - $order_total : 0));
- $bond_data['order_id'] = $order_id;
- $bond_data['order_no'] = $order_info['order_no'];
- $bond_data['transaction_no'] = $trade_no;
- $bond_data['supplier_id'] = $order_info['store_id'];
- $bond_data['wholesale_id'] = $seller_id;
- $bond_data['add_time'] = time();
- $bond_data['status'] = 0;
- $bond_data['deduct_bond'] = $order_total;
- $bond_data['residue_bond'] = $bond_balance;
- if (D('Bond_record')->data($bond_data)->add()) {
- $bond_balance_pay = true;
- $order_data['trade_no'] = $trade_no;
- $order_data['status'] = 2;
- $order_data['paid_time'] = time();
- $order_data['third_id'] = date('YmdHis', time()) . mt_rand(100000, 999999);
- $order_data['use_deposit_pay'] = 1;
- M('Store')->setIncomeInc($supplier_id, $order_total);
- if (!(empty($dealer_profit)) && (0 < $dealer_profit)) {
- D('Supp_dis_relation')->where(array('supplier_id' => $order_info['store_id'], 'distributor_id' => $seller_id))->setInc('profit', $dealer_profit);
- }
- if (0 < $order_total) {
- D('Supp_dis_relation')->where(array('supplier_id' => $order_info['store_id'], 'distributor_id' => $seller_id))->setInc('paid', $order_total);
- D('Supp_dis_relation')->where(array('supplier_id' => $order_info['store_id'], 'distributor_id' => $seller_id))->setInc('sales', $order_total);
- }
- if (0 < $bond_balance) {
- D('Supp_dis_relation')->where(array('supplier_id' => $order_info['store_id'], 'distributor_id' => $seller_id))->data(array('bond' => $bond_balance))->save();
- }
- $data_record = array();
- $data_record['store_id'] = $supplier_id;
- $data_record['order_id'] = $nowOrder['order_id'];
- $data_record['order_no'] = $nowOrder['order_no'];
- $data_record['income'] = $order_total;
- $data_record['type'] = 1;
- $data_record['balance'] = $supplier['income'];
- $data_record['payment_method'] = $order['payment_method'];
- $data_record['trade_no'] = $trade_no;
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $user_order_id;
- D('Financial_record')->data($data_record)->add();
- }
- }
- if (empty($bond_balance_pay) && empty($useStorePay) && ($order['cash_point'] == 0)) {
- if (0 < $order_total) {
- D('Supp_dis_relation')->where(array('supplier_id' => $order_info['store_id'], 'distributor_id' => $seller_id))->setInc('sales', $order_total);
- }
- M('Store')->setIncomeInc($supplier_id, $order_total);
- M('Store')->setUnBalanceInc($supplier_id, $order_total);
- if (!(empty($dealer_profit))) {
- D('Supp_dis_relation')->where(array('distributor_id' => $seller_id, 'supplier_id' => $supplier_id))->setInc('profit', $dealer_profit);
- }
- $data_record = array();
- $data_record['store_id'] = $supplier_id;
- $data_record['order_id'] = $nowOrder['order_id'];
- $data_record['order_no'] = $nowOrder['order_no'];
- $data_record['income'] = $order_total;
- $data_record['type'] = 1;
- $data_record['balance'] = $supplier['income'];
- $data_record['payment_method'] = $order['payment_method'];
- $data_record['trade_no'] = $trade_no;
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $user_order_id;
- D('Financial_record')->data($data_record)->add();
- }
- if (empty($bond_balance_pay) && !(empty($useStorePay))) {
- D('Supp_dis_relation')->where(array('supplier_id' => $supplier_id, 'distributor_id' => $seller_id))->setInc('not_paid', $order_total);
- }
- M('Store')->setIncomeDec($seller_id, $order_total);
- M('Store')->setUnBalanceDec($seller_id, $order_total);
- $data_record = array();
- $data_record['store_id'] = $seller_id;
- $data_record['order_id'] = $order['order_id'];
- $data_record['order_no'] = $order['order_no'];
- $data_record['income'] = -$order_total;
- $data_record['type'] = 6;
- $data_record['balance'] = $seller['income'];
- $data_record['payment_method'] = $order['payment_method'];
- $data_record['trade_no'] = $order['trade_no'];
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $user_order_id;
- if (0 < $dealer_profit) {
- $data_record['profit'] = $dealer_profit;
- }
- $data_record['supplier_id'] = $supplier_id;
- D('Financial_record')->data($data_record)->add();
- $order_data['total'] = $order_total;
- $order_data['pay_money'] = $order_total;
- if (0 < $owner_total) {
- $order_data['sale_total'] = $owner_total;
- }
- D('Order')->where(array('order_id' => $order_id))->data($order_data)->save();
- D('Fx_order')->where(array('fx_order_id' => $fx_order_id))->data(array('cost_total' => $order_total))->save();
- }
- }
- }
- private function _fx_order($data)
- {
- $wholesale_products = array();
- $useStorePay = $data['useStorePay'];
- $storePay = $data['storePay'];
- $total = $data['total'];
- $drp_level = ((isset($data['drp_level']) ? $data['drp_level'] : 0));
- $drp_multi_level = ((isset($data['drp_multi_level']) ? $data['drp_multi_level'] : false));
- $max_drp_level = ((isset($data['max_drp_level']) ? $data['max_drp_level'] : 0));
- $fx_order_id = $data['order_id'];
- $third_id = $data['third_id'];
- $payment_method = $data['payment_method'];
- $top_supplier_id = $data['top_supplier_id'];
- $user_order_id = $data['user_order_id'];
- $pay_money = $data['pay_money'];
- $supplier = M('Store')->getStore($data['supplier_id']);
- global $drp_degree_reward_profits;
- global $subscribed_discounts;
- if (!(empty($supplier['drp_supplier_id']))) {
- $tmp_supplier = D('Store')->field('store_id,status,drp_supplier_id,drp_level')->where(array('store_id' => $supplier['drp_supplier_id']))->find();
- if ($tmp_supplier['status'] != 1) {
- if ((3 < $max_drp_level) && ($drp_level == 2)) {
- $supplier_chain = D('Store_supplier')->where(array('seller_id' => $supplier['drp_supplier_id'], 'type' => 1))->find();
- $supply_chain = explode(',', $supplier_chain['supply_chain']);
- $supplier['drp_supplier_id'] = $supply_chain[1];
- }
- else {
- $supplier['drp_supplier_id'] = ((!(empty($tmp_supplier['drp_supplier_id'])) ? $tmp_supplier['drp_supplier_id'] : $tmp_supplier['store_id']));
- }
- }
- else if ((3 < $max_drp_level) && (3 <= $max_drp_level - $tmp_supplier['drp_level'])) {
- $supplier_chain = D('Store_supplier')->where(array('seller_id' => $supplier['drp_supplier_id'], 'type' => 1))->find();
- $supply_chain = explode(',', $supplier_chain['supply_chain']);
- $supplier['drp_supplier_id'] = $supply_chain[1];
- }
- $is_supplier = false;
- }
- else {
- $is_supplier = true;
- }
- $seller = M('Store')->getStore($data['seller_id']);
- if (empty($drp_level)) {
- $drp_level = $seller['drp_level'];
- --$drp_level;
- }
- $data['sale_profit_total'] = ((isset($data['sale_profit_total']) ? $data['sale_profit_total'] : 0));
- if (0 < $total) {
- $fx_order_info = D('Fx_order')->where(array('fx_order_id' => $fx_order_id))->find();
- $order_id = $fx_order_info['order_id'];
- $order_info = M('Order')->getOrder($data['seller_id'], $order_id);
- $fx_products = M('Order_product')->getFxProducts($order_id, $fx_order_id, $is_supplier);
- $order_trade_no = $order_info['trade_no'];
- $order_no = date('YmdHis', time()) . mt_rand(100000, 999999);
- unset($order_info['order_id']);
- $order_info['order_no'] = $order_no;
- $order_info['store_id'] = $data['supplier_id'];
- $order_info['trade_no'] = date('YmdHis', time()) . mt_rand(100000, 999999);
- $order_info['third_id'] = $third_id;
- $order_info['uid'] = $seller['uid'];
- $order_info['session_id'] = '';
- $order_info['postage'] = $fx_order_info['postage'];
- if ($data['sale_profit_total'] < 0) {
- $order_info['sub_total'] = $fx_order_info['cost_sub_total'] - $data['sale_profit_total'];
- }
- else {
- $order_info['sub_total'] = $fx_order_info['cost_sub_total'];
- }
- $order_info['total'] = $fx_order_info['cost_total'] - $data['sale_profit_total'];
- $order_info['status'] = 2;
- $order_info['pro_count'] = 0;
- $order_info['pro_num'] = $fx_order_info['quantity'];
- $order_info['payment_method'] = $payment_method;
- $order_info['type'] = 3;
- $order_info['add_time'] = time();
- $order_info['paid_time'] = time();
- $order_info['sent_time'] = 0;
- $order_info['cancel_time'] = 0;
- $order_info['complate_time'] = 0;
- $order_info['refund_time'] = 0;
- $order_info['star'] = 0;
- $order_info['pay_money'] = $fx_order_info['cost_total'];
- $order_info['cancel_method'] = 0;
- $order_info['float_amount'] = 0;
- $order_info['is_fx'] = 0;
- $order_info['fx_order_id'] = $fx_order_id;
- $order_info['user_order_id'] = $fx_order_info['user_order_id'];
- $order_info['suppliers'] = $fx_order_info['suppliers'];
- if (!(empty($supplier['drp_supplier_id']))) {
- $order_info['drp_degree_id'] = Points::drpDegree($supplier['store_id']);
- }
- else {
- $order_info['drp_degree_id'] = 0;
- }
- if ($new_order_id = M('Order')->add($order_info)) {
- $suppliers = array();
- $owner_products = array();
- foreach ($fx_products as $key => $fx_product ) {
- $tmp_product = M('Product')->get(array('product_id' => $fx_product['product_id']), 'product_id,store_id,wholesale_product_id,wholesale_price,supplier_id,is_fx,unified_price_setting,drp_level_1_cost_price,drp_level_2_cost_price,drp_level_3_cost_price,drp_level_1_price,drp_level_2_price,drp_level_3_price,cost_price,unified_profit');
- unset($fx_product['pigcms_id']);
- $properties = getProperty2Str($fx_product['sku_data']);
- if (!(empty($properties))) {
- $sku = M('Product_sku')->getSku($fx_product['product_id'], $properties);
- $fx_product['sku_id'] = $sku['sku_id'];
- }
- else {
- $fx_product['sku_id'] = 0;
- }
- $fx_product['pro_price'] = $fx_product['price'];
- $fx_product['order_id'] = $new_order_id;
- $fx_product['is_packaged'] = 0;
- $fx_product['in_package_status'] = 0;
- $fx_product['profit'] = 0;
- $fx_product['drp_degree_profit'] = 0;
- if ($tmp_product['store_id'] != $data['supplier_id']) {
- $fx_product['supplier_id'] = $supplier['drp_supplier_id'];
- $fx_product['is_fx'] = 1;
- if (($drp_level == 1) && (3 < $max_drp_level)) {
- $fx_product['supplier_id'] = $tmp_product['store_id'];
- }
- }
- else {
- $fx_product['supplier_id'] = 0;
- $fx_product['is_fx'] = 0;
- }
- unset($fx_product['price']);
- $order_product_id = M('Order_product')->add($fx_product);
- $fx_products[$key]['is_fx'] = $tmp_product['is_fx'];
- $fx_products[$key]['top_supplier_id'] = ((empty($tmp_product['supplier_id']) ? $tmp_product['store_id'] : 0));
- $fx_products[$key]['drp_level_1_cost_price'] = $tmp_product['drp_level_1_cost_price'];
- $fx_products[$key]['drp_level_2_cost_price'] = $tmp_product['drp_level_2_cost_price'];
- $fx_products[$key]['drp_level_3_cost_price'] = $tmp_product['drp_level_3_cost_price'];
- $fx_products[$key]['drp_level_1_price'] = $tmp_product['drp_level_1_price'];
- $fx_products[$key]['drp_level_2_price'] = $tmp_product['drp_level_2_price'];
- $fx_products[$key]['drp_level_3_price'] = $tmp_product['drp_level_3_price'];
- $fx_products[$key]['cost_price'] = $tmp_product['cost_price'];
- $fx_products[$key]['supplier_id'] = ((!(empty($tmp_product['supplier_id'])) ? $tmp_product['supplier_id'] : $tmp_product['store_id']));
- $fx_products[$key]['source_product_id'] = $fx_product['product_id'];
- $fx_products[$key]['wholesale_product_id'] = $tmp_product['wholesale_product_id'];
- $fx_products[$key]['wholesale_price'] = $tmp_product['wholesale_price'];
- $fx_products[$key]['order_product_id'] = $order_product_id;
- $fx_products[$key]['unified_profit'] = ((!(empty($tmp_product['unified_profit'])) ? $tmp_product['unified_profit'] : 0));
- if (!(empty($tmp_product['wholesale_product_id']))) {
- $fx_products[$key]['wholesale_supplier_id'] = $tmp_product['supplier_id'];
- $wholesale_supplier_id = $tmp_product['supplier_id'];
- $fx_products[$key]['store_id'] = $tmp_product['store_id'];
- }
- if (!(empty($tmp_product)) && (empty($tmp_product['supplier_id']) || !(empty($tmp_product['wholesale_product_id']))) && ($data['supplier_id'] == $tmp_product['store_id'])) {
- unset($fx_products[$key]);
- if (!(empty($wholesale_supplier_id)) && !(empty($tmp_product['supplier_id']))) {
- $wholesale_products[$wholesale_supplier_id . ',' . $tmp_product['store_id']][] = array('order_product_id' => $order_product_id, 'product_id' => $fx_product['product_id'], 'sku_id' => $fx_product['sku_id'], 'wholesale_product_id' => $tmp_product['wholesale_product_id'], 'wholesale_price' => $tmp_product['wholesale_price'], 'unified_profit' => $tmp_product['unified_profit'], 'sku_data' => $fx_product['sku_data'], 'quantity' => $fx_product['pro_num'], 'comment' => $fx_product['comment'], 'price' => $fx_product['pro_price'], 'is_comment' => $fx_product['is_comment'], 'is_present' => $fx_product['is_present'], 'user_order_id' => $fx_product['user_order_id'], 'return_status' => $fx_product['return_status'], 'cost_price' => $tmp_product['cost_price'], 'drp_level_1_cost_price' => $tmp_product['drp_level_1_cost_price']);
- }
- }
- $suppliers[] = $tmp_product['store_id'];
- if (empty($tmp_product['supplier_id']) && ($tmp_product['store_id'] == $data['supplier_id'])) {
- $temp_order_product = D('Order_product')->field('sku_data,pro_num,pro_price')->where(array('order_id' => $user_order_id, 'product_id' => $tmp_product['product_id']))->find();
- $owner_products[] = array('product_id' => $tmp_product['product_id'], 'store_id' => $data['supplier_id'], 'sku_data' => $temp_order_product['sku_data'], 'wholesale_product_id' => 0, 'supplier_id' => 0, 'pro_num' => $temp_order_product['pro_num'], 'pro_price' => $temp_order_product['pro_price']);
- }
- }
- if (!(empty($owner_products))) {
- $owner_sub_total = 0;
- foreach ($owner_products as $owner_product ) {
- $owner_sub_total += $owner_product['pro_price'] * $owner_product['pro_num'];
- }
- $postages = unserialize($order_info['fx_postage']);
- $postage = 0;
- if (!(empty($postages[$data['supplier_id']]))) {
- $postage = $postages[$data['supplier_id']];
- }
- $owner_discount_amount = Order::orderDiscount($order_info, $owner_products, true);
- $owner_total = ($owner_sub_total - $owner_discount_amount) + $postage;
- if (0 < $owner_total) {
- D('Order')->where(array('order_id' => $new_order_id))->data(array('sale_total' => $owner_total))->save();
- }
- }
- $nowOrder = M('Order')->getOrder($data['supplier_id'], $new_order_id);
- $products = M('Order_product')->getProducts($new_order_id);
- $discount_amount = Order::orderDiscount($nowOrder, $products, true);
- $discount_amount = ((!(empty($discount_amount)) ? $discount_amount : 0));
- $order_total = $fx_order_info['cost_total'] - $discount_amount;
- if ($data['sale_profit_total'] < 0) {
- D('Order')->where(array('order_id' => $new_order_id))->data(array('total' => $order_total - $data['sale_profit_total'], 'pay_money' => $order_total - $data['sale_profit_total']))->save();
- D('Fx_order')->where(array('fx_order_id' => $fx_order_info['fx_order_id']))->data(array('cost_sub_total' => $fx_order_info['cost_sub_total'] - $data['sale_profit_total'], 'cost_total' => $order_total - $data['sale_profit_total']))->save();
- }
- else {
- D('Order')->where(array('order_id' => $new_order_id))->data(array('total' => $order_total, 'pay_money' => $order_total))->save();
- D('Fx_order')->where(array('fx_order_id' => $fx_order_info['fx_order_id']))->data(array('cost_sub_total' => $fx_order_info['cost_sub_total'], 'cost_total' => $order_total))->save();
- }
- if (empty($useStorePay) || ($storePay != $data['supplier_id'])) {
- if ($data['supplier_id'] == $top_supplier_id) {
- if ($payment_method != 'point') {
- M('Store')->setUnBalanceInc($data['supplier_id'], $pay_money);
- }
- }
- else {
- M('Store')->setUnBalanceInc($data['supplier_id'], $order_total - $data['sale_profit_total']);
- }
- }
- M('Store')->setIncomeInc($data['supplier_id'], $order_total - $data['sale_profit_total']);
- M('Fx_order')->edit(array('fx_order_id' => $fx_order_id), array('status' => 2, 'paid_time' => time()));
- $suppliers = array_unique($suppliers);
- $data_record = array();
- $data_record['store_id'] = $data['supplier_id'];
- $data_record['order_id'] = $new_order_id;
- $data_record['order_no'] = $order_info['order_no'];
- if ($data['sale_profit_total'] < 0) {
- $data_record['income'] = $order_total - $data['sale_profit_total'];
- }
- else {
- $data_record['income'] = $order_total;
- }
- $data_record['type'] = 5;
- if (empty($supplier['drp_supplier_id '])) {
- if (!(empty($wholesale_products))) {
- $data_record['type'] = 6;
- }
- else {
- $data_record['type'] = 1;
- }
- }
- $data_record['balance'] = $supplier['income'];
- $data_record['payment_method'] = $payment_method;
- $data_record['trade_no'] = $order_info['trade_no'];
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $order_info['user_order_id'];
- if ($top_supplier_id != $data['supplier_id']) {
- $data_record['supplier_id'] = $top_supplier_id;
- }
- else {
- $data_record['supplier_id'] = 0;
- }
- $financial_record_id = D('Financial_record')->data($data_record)->add();
- if (empty($is_supplier)) {
- $supplier_id = $supplier['drp_supplier_id'];
- $cost_sub_total = 0;
- $sub_total = 0;
- $supplier_product_sub_total = 0;
- $supplier_product_cost_sub_total = 0;
- $tmp_fx_products = array();
- $tmp_drp_level = $drp_level;
- foreach ($fx_products as $k => $fx_product ) {
- if (!(empty($fx_product['unified_profit'])) && ($max_drp_level < 3)) {
- $drp_level = $drp_level + 1;
- }
- else {
- $drp_level = $tmp_drp_level;
- }
- $drp_degree_reward = Order::drpDegreeReward($top_supplier_id, $data['supplier_id'], $fx_product['product_id'], $drp_level);
- $properties = getProperty2Str($fx_product['sku_data']);
- $tmp_fx_product = $fx_product;
- if (!(empty($properties))) {
- $sku = M('Product_sku')->getSku($fx_product['product_id'], $properties);
- if (!(empty($fx_product['is_fx']))) {
- $cost_price = ((0 < $sku['drp_level_' . $drp_level . '_cost_price'] ? $sku['drp_level_' . $drp_level . '_cost_price'] : $sku['price']));
- if (!(empty($max_drp_level)) && ($drp_level < $max_drp_level)) {
- $drp_level_cost_price = $sku['drp_level_' . $drp_level . '_cost_price'];
- $max_drp_level_cost_price = $sku['drp_level_' . $max_drp_level . '_cost_price'];
- if (($drp_level < 3) && ($drp_level_cost_price != $max_drp_level_cost_price) && (0 < ($max_drp_level_cost_price - $drp_level_cost_price))) {
- $price = ((0 < $sku['drp_level_' . ($drp_level + 1) . '_cost_price'] ? $sku['drp_level_' . ($drp_level + 1) . '_cost_price'] : $sku['price']));
- }
- else {
- $price = ((0 < $sku['drp_level_' . ($drp_level + 1) . '_cost_price'] ? $sku['drp_level_' . ($drp_level + 1) . '_cost_price'] : $sku['price']));
- }
- }
- else {
- $price = ((0 < $sku['drp_level_' . ($drp_level + 1) . '_cost_price'] ? $sku['drp_level_' . ($drp_level + 1) . '_cost_price'] : $sku['price']));
- }
- }
- else {
- $cost_price = $sku['price'];
- $price = $fx_product['pro_price'];
- }
- $sku_id = $sku['sku_id'];
- }
- else if (!(empty($fx_product['is_fx']))) {
- $cost_price = ((0 < $fx_product['drp_level_' . $drp_level . '_cost_price'] ? $fx_product['drp_level_' . $drp_level . '_cost_price'] : $fx_product['pro_price']));
- if (!(empty($max_drp_level)) && ($drp_level < $max_drp_level)) {
- $drp_level_cost_price = $fx_product['drp_level_' . $drp_level . '_cost_price'];
- $max_drp_level_cost_price = $fx_product['drp_level_' . $max_drp_level . '_cost_price'];
- if (($drp_level < 3) && ($drp_level_cost_price != $max_drp_level_cost_price) && (0 < ($max_drp_level_cost_price - $drp_level_cost_price))) {
- $price = ((0 < $fx_product['drp_level_' . ($drp_level + 1) . '_cost_price'] ? $fx_product['drp_level_' . ($drp_level + 1) . '_cost_price'] : $fx_product['price']));
- }
- else {
- $price = ((0 < $fx_product['drp_level_' . ($drp_level + 1) . '_cost_price'] ? $fx_product['drp_level_' . ($drp_level + 1) . '_cost_price'] : $fx_product['pro_price']));
- }
- }
- else {
- $price = ((0 < $fx_product['drp_level_' . ($drp_level + 1) . '_cost_price'] ? $fx_product['drp_level_' . ($drp_level + 1) . '_cost_price'] : $sku['price']));
- }
- }
- else {
- $cost_price = $fx_product['pro_price'];
- $price = $fx_product['pro_price'];
- }
- $pro_profit = $price - $cost_price;
- if (!(empty($subscribed_discounts))) {
- if ($properties) {
- $subscribed_discount = ((!(empty($subscribed_discounts[$properties . ':' . $fx_product['product_id']])) ? $subscribed_discounts[$properties . ':' . $fx_product['product_id']] : 0));
- }
- else {
- $subscribed_discount = ((!(empty($subscribed_discounts[$fx_product['product_id']])) ? $subscribed_discounts[$fx_product['product_id']] : 0));
- }
- $cost_price -= $subscribed_discount;
- }
- $drp_degree_reward_profit = 0;
- $tmp_data = array();
- $tmp_data['drp_degree_profit'] = $drp_degree_reward_profit;
- $drp_degree_reward_profit = $pro_profit * $drp_degree_reward;
- if ($properties) {
- $drp_degree_reward_profit += ((!(empty($drp_degree_reward_profits[$properties . ':' . $fx_product['product_id']])) ? $drp_degree_reward_profits[$properties . ':' . $fx_product['product_id']] : 0));
- $drp_degree_reward_profits[$properties . ':' . $fx_product['product_id']] += $pro_profit * $drp_degree_reward;
- }
- else {
- $drp_degree_reward_profit += ((!(empty($drp_degree_reward_profits[$fx_product['product_id']])) ? $drp_degree_reward_profits[$fx_product['product_id']] : 0));
- $drp_degree_reward_profits[$fx_product['product_id']] += $pro_profit * $drp_degree_reward;
- }
- $cost_price -= $drp_degree_reward_profit;
- $price -= $drp_degree_reward_profit;
- if (!(empty($supplier['drp_degree_id']))) {
- $tmp_data['drp_degree_profit'] = $pro_profit * $drp_degree_reward;
- $pro_profit += $pro_profit * $drp_degree_reward;
- }
- $tmp_data['profit'] = $pro_profit;
- D('Order_product')->where(array('pigcms_id' => $fx_product['order_product_id']))->data($tmp_data)->save();
- $cost_sub_total += $cost_price * $fx_product['pro_num'];
- $sub_total += $price * $fx_product['pro_num'];
- if (!(empty($top_supplier_id)) && ($top_supplier_id == $fx_product['top_supplier_id'])) {
- $supplier_product_sub_total += $price * $fx_product['pro_num'];
- $supplier_product_cost_sub_total += $cost_price * $fx_product['pro_num'];
- }
- if (($max_drp_level < 3) && !(empty($fx_product['unified_profit']))) {
- $cost_price = $fx_product['price'] - $price - $cost_price;
- }
- $tmp_fx_product['product_id'] = $fx_product['product_id'];
- $tmp_fx_product['price'] = $price;
- $tmp_fx_product['cost_price'] = $cost_price;
- $tmp_fx_product['sku_id'] = $sku_id;
- $tmp_fx_product['original_product_id'] = $fx_product['product_id'];
- $tmp_fx_products[] = $tmp_fx_product;
- $fx_products[$k]['cost_price'] = $cost_price;
- }
- if (!(empty($tmp_fx_products))) {
- $fx_order_no = date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(100000, 999999);
- $postage = ((!(empty($order_info['postage'])) ? $order_info['postage'] : 0));
- $data2 = array('fx_order_no' => $fx_order_no, 'uid' => $order_info['uid'], 'order_id' => $new_order_id, 'order_no' => $order_info['order_no'], 'fx_trade_no' => $data['trade_no'], 'supplier_id' => (($drp_level == 1) && (3 < $max_drp_level) ? $supplier_id : $data['drp_supplier_id']), 'store_id' => $data['supplier_id'], 'quantity' => $fx_order_info['quantity'], 'sub_total' => $sub_total, 'cost_sub_total' => $cost_sub_total, 'postage' => $postage, 'total' => $sub_total + $postage, 'cost_total' => $cost_sub_total + $postage, 'delivery_user' => $order_info['address_user'], 'delivery_tel' => $order_info['address_tel'], 'delivery_address' => $order_info['address'], 'add_time' => time(), 'user_order_id' => $order_info['user_order_id'], 'fx_postage' => $order_info['fx_postage'], 'suppliers' => $order_info['suppliers']);
- if ($fx_order_id = M('Fx_order')->add($data2)) {
- foreach ($tmp_fx_products as $tmp_fx_product ) {
- if (!(empty($tmp_fx_product['product_id']))) {
- M('Fx_order_product')->add(array('fx_order_id' => $fx_order_id, 'product_id' => $tmp_fx_product['product_id'], 'source_product_id' => $tmp_fx_product['source_product_id'], 'price' => $tmp_fx_product['price'], 'cost_price' => $tmp_fx_product['cost_price'], 'quantity' => $tmp_fx_product['pro_num'], 'sku_id' => $tmp_fx_product['sku_id'], 'sku_data' => $tmp_fx_product['sku_data'], 'comment' => $tmp_fx_product['comment']));
- }
- }
- }
- if (!(empty($financial_record_id)) && (0 < $pro_profit)) {
- D('Financial_record')->where(array('pigcms_id' => $financial_record_id))->data(array('profit' => $pro_profit))->save();
- }
- if (M('Store')->setUnBalanceDec($data['seller_id'], $order_total) && M('Store')->setIncomeDec($data['seller_id'], $order_total)) {
- $order_no = $order_info['order_no'];
- $data_record = array();
- $data_record['store_id'] = $data['seller_id'];
- $data_record['order_id'] = $order_id;
- $data_record['order_no'] = $order_no;
- if ($data['sale_profit_total'] < 0) {
- $data_record['income'] = -$order_total - $data['sale_profit_total'];
- }
- else {
- $data_record['income'] = -$order_total;
- }
- $data_record['type'] = 5;
- $data_record['balance'] = $seller['income'];
- $data_record['payment_method'] = $payment_method;
- $data_record['trade_no'] = $order_trade_no;
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $order_info['user_order_id'];
- if ($top_supplier_id != $data['seller_id']) {
- $data_record['supplier_id'] = $top_supplier_id;
- }
- else {
- $data_record['supplier_id'] = 0;
- }
- D('Financial_record')->data($data_record)->add();
- }
- if (($drp_level == 1) && (3 < $max_drp_level)) {
- $supplier_id = $top_supplier_id;
- $current_supplier = M('Store')->getStore($supplier_id, 'income');
- $fx_order_info = M('Fx_order')->getOrder($data['supplier_id'], $fx_order_id);
- $order_id = $fx_order_info['order_id'];
- $order_info = M('Order')->getOrder($data['supplier_id'], $order_id);
- unset($order_info['order_id']);
- $order_info['order_no'] = date('YmdHis', time()) . mt_rand(100000, 999999);
- $order_info['store_id'] = $supplier_id;
- $order_info['trade_no'] = date('YmdHis', time()) . mt_rand(100000, 999999);
- $order_info['third_id'] = $third_id;
- $order_info['uid'] = $supplier['uid'];
- $order_info['session_id'] = '';
- $order_info['postage'] = $fx_order_info['postage'];
- $order_info['sub_total'] = $fx_order_info['cost_sub_total'];
- $order_info['total'] = $fx_order_info['cost_total'];
- $order_info['status'] = 2;
- $order_info['pro_count'] = 0;
- $order_info['pro_num'] = $fx_order_info['quantity'];
- $order_info['payment_method'] = $payment_method;
- $order_info['type'] = 3;
- $order_info['add_time'] = time();
- $order_info['paid_time'] = time();
- $order_info['sent_time'] = 0;
- $order_info['cancel_time'] = 0;
- $order_info['complate_time'] = 0;
- $order_info['refund_time'] = 0;
- $order_info['star'] = 0;
- $order_info['pay_money'] = $fx_order_info['cost_total'];
- $order_info['cancel_method'] = 0;
- $order_info['float_amount'] = 0;
- $order_info['is_fx'] = 0;
- $order_info['fx_order_id'] = $fx_order_id;
- $order_info['user_order_id'] = $fx_order_info['user_order_id'];
- $order_info['suppliers'] = $fx_order_info['suppliers'];
- $order_info['drp_degree_id'] = 0;
- if ($new_order_id = M('Order')->add($order_info)) {
- foreach ($fx_products as $fx_product ) {
- $tmp_product = M('Product')->get(array('product_id' => $fx_product['product_id']), 'product_id,store_id,wholesale_product_id,wholesale_price,supplier_id,unified_price_setting,drp_level_1_cost_price,drp_level_2_cost_price,drp_level_3_cost_price,drp_level_1_price,drp_level_2_price,drp_level_3_price,cost_price,unified_profit');
- $fx_product['pro_price'] = $fx_product['cost_price'];
- $fx_product['order_id'] = $new_order_id;
- $fx_product['is_packaged'] = 0;
- $fx_product['in_package_status'] = 0;
- if (empty($fx_product['wholesale_product_id'])) {
- $fx_product['is_fx'] = 0;
- $fx_product['supplier_id'] = 0;
- unset($fx_product['wholesale_product_id']);
- }
- else {
- $fx_product['is_fx'] = 0;
- $fx_product['original_product_id'] = $fx_product['wholesale_product_id'];
- }
- $wholesale_product_id = ((!(empty($fx_product['wholesale_product_id'])) ? $fx_product['wholesale_product_id'] : 0));
- $store_id = $fx_product['store_id'];
- $cost_price = $fx_product['cost_price'];
- $drp_level_1_cost_price = $fx_product['drp_level_1_cost_price'];
- $wholesale_price = $fx_product['wholesale_price'];
- unset($fx_product['is_fx'], $fx_product['top_supplier_id'], $fx_product['store_id'], $fx_product['pigcms_id'], $fx_product['order_product_id'], $fx_product['price'], $fx_product['profit'], $fx_product['unified_price_setting'], $fx_product['source_product_id'], $fx_product['wholesale_product_id'], $fx_product['wholesale_price'], $fx_product['cost_price'], $fx_product['drp_level_1_cost_price'], $fx_product['drp_level_2_cost_price'], $fx_product['drp_level_3_cost_price'], $fx_product['drp_level_1_price'], $fx_product['drp_level_2_price'], $fx_product['drp_level_3_price'], $fx_product['unified_profit']);
- if (!(empty($fx_product['wholesale_supplier_id']))) {
- $wholesale_supplier_id = $fx_product['wholesale_supplier_id'];
- unset($fx_product['wholesale_supplier_id']);
- }
- $order_product_id = M('Order_product')->add($fx_product);
- if (!(empty($wholesale_supplier_id)) && !(empty($tmp_product['supplier_id']))) {
- $wholesale_products[$wholesale_supplier_id . ',' . $store_id][] = array('order_product_id' => $order_product_id, 'product_id' => $fx_product['product_id'], 'wholesale_product_id' => $wholesale_product_id, 'wholesale_price' => $wholesale_price, 'sku_id' => $fx_product['sku_id'], 'sku_data' => $fx_product['sku_data'], 'quantity' => $fx_product['pro_num'], 'comment' => $fx_product['comment'], 'price' => $fx_product['pro_price'], 'is_comment' => $fx_product['is_comment'], 'is_present' => $fx_product['is_present'], 'user_order_id' => $fx_product['user_order_id'], 'return_status' => $fx_product['return_status'], 'cost_price' => $cost_price, 'drp_level_1_cost_price' => $drp_level_1_cost_price);
- }
- if (empty($tmp_product['supplier_id']) && ($tmp_product['store_id'] == $supplier_id)) {
- $temp_order_product = D('Order_product')->field('sku_data,pro_num,pro_price')->where(array('order_id' => $fx_order_info['user_order_id'], 'product_id' => $tmp_product['product_id']))->find();
- $owner_products[] = array('product_id' => $tmp_product['product_id'], 'store_id' => $supplier_id, 'sku_data' => $temp_order_product['sku_data'], 'wholesale_product_id' => 0, 'supplier_id' => 0, 'pro_num' => $temp_order_product['pro_num'], 'pro_price' => $temp_order_product['pro_price']);
- }
- }
- if (!(empty($owner_products))) {
- $owner_sub_total = 0;
- foreach ($owner_products as $owner_product ) {
- $owner_sub_total += $owner_product['pro_price'] * $owner_product['pro_num'];
- }
- $postages = unserialize($order_info['fx_postage']);
- $postage = 0;
- if (!(empty($postages[$supplier_id]))) {
- $postage = $postages[$supplier_id];
- }
- $owner_discount_amount = Order::orderDiscount($order_info, $owner_products, true);
- $owner_total = ($owner_sub_total - $owner_discount_amount) + $postage;
- if (0 < $owner_total) {
- D('Order')->where(array('order_id' => $new_order_id))->data(array('sale_total' => $owner_total))->save();
- }
- }
- $nowOrder = M('Order')->getOrder($supplier_id, $new_order_id);
- $products = M('Order_product')->getProducts($new_order_id);
- $discount_amount = Order::orderDiscount($nowOrder, $products, true);
- $order_total = $fx_order_info['cost_total'] - $discount_amount;
- D('Order')->where(array('order_id' => $new_order_id))->data(array('total' => $order_total, 'pay_money' => $order_total))->save();
- D('Fx_order')->where(array('fx_order_id' => $fx_order_id))->data(array('cost_total' => $order_total))->save();
- M('Fx_order')->edit(array('fx_order_id' => $fx_order_id), array('status' => 2, 'paid_time' => time(), 'supplier_id' => $supplier_id));
- if (empty($order_info['useStorePay']) || ($order_info['storePay'] != $supplier_id)) {
- M('Store')->setUnBalanceInc($supplier_id, $pay_money);
- }
- M('Store')->setIncomeInc($supplier_id, $order_total);
- $data_record = array();
- $data_record['store_id'] = $supplier_id;
- $data_record['order_id'] = $new_order_id;
- $data_record['order_no'] = $order_info['order_no'];
- $data_record['income'] = $order_total;
- $data_record['type'] = 5;
- $data_record['balance'] = $current_supplier['income'];
- $data_record['payment_method'] = $payment_method;
- $data_record['trade_no'] = $order_info['trade_no'];
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $order_info['user_order_id'];
- if ($top_supplier_id != $supplier_id) {
- $data_record['supplier_id'] = $top_supplier_id;
- }
- else {
- $data_record['supplier_id'] = 0;
- }
- $financial_record_id = D('Financial_record')->data($data_record)->add();
- if (M('Store')->setUnBalanceDec($data['supplier_id'], $order_total) && M('Store')->setIncomeDec($data['supplier_id'], $order_total)) {
- $data_record = array();
- $data_record['store_id'] = $data['supplier_id'];
- $data_record['order_id'] = $order_id;
- $data_record['order_no'] = $order_no;
- $data_record['income'] = -$order_total;
- $data_record['type'] = 5;
- $data_record['balance'] = $supplier['income'];
- $data_record['payment_method'] = $payment_method;
- $data_record['trade_no'] = $order_trade_no;
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $fx_order_info['user_order_id'];
- if ($top_supplier_id != $data['supplier_id']) {
- $data_record['supplier_id'] = $top_supplier_id;
- }
- else {
- $data_record['supplier_id'] = 0;
- }
- D('Financial_record')->data($data_record)->add();
- }
- }
- }
- }
- }
- else if ($max_drp_level <= 3) {
- if (M('Store')->setUnBalanceDec($data['seller_id'], $order_total) && M('Store')->setIncomeDec($data['seller_id'], $order_total)) {
- $order_no = $order_info['order_no'];
- $data_record = array();
- $data_record['store_id'] = $data['seller_id'];
- $data_record['order_id'] = $order_id;
- $data_record['order_no'] = $order_no;
- if ($data['sale_profit_total'] < 0) {
- $data_record['income'] = -$order_total - $data['sale_profit_total'];
- }
- else {
- $data_record['income'] = -$order_total;
- }
- $data_record['type'] = 5;
- $data_record['balance'] = $seller['income'];
- $data_record['payment_method'] = $payment_method;
- $data_record['trade_no'] = $order_trade_no;
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $order_info['user_order_id'];
- if ($top_supplier_id != $data['seller_id']) {
- $data_record['supplier_id'] = $top_supplier_id;
- }
- else {
- $data_record['supplier_id'] = 0;
- }
- D('Financial_record')->data($data_record)->add();
- }
- }
- if (!(empty($wholesale_products))) {
- foreach ($wholesale_products as $tmp_key => $tmp_wholesale_products ) {
- $keys = explode(',', $tmp_key);
- $supplier_id = $keys[0];
- $seller_id = $keys[1];
- $this->_ws_order($user_order_id, $supplier_id, $seller_id, $tmp_wholesale_products, true, $useStorePay);
- }
- }
- }
- }
- }
- private function _dealer_pay_callback($pay_money, $nowOrder, $nowStore)
- {
- $fx_order = D('Fx_order')->field('store_id,order_id')->where(array('fx_order_id' => $nowOrder['fx_order_id']))->find();
- $supplier_id = intval($nowOrder['store_id']);
- $dealer_id = intval($fx_order['store_id']);
- $dealer_order_id = intval($fx_order['order_id']);
- if (!(empty($dealer_id))) {
- D('Supp_dis_relation')->where(array('distributor_id' => $dealer_id, 'supplier_id' => $supplier_id))->setDec('not_paid', $pay_money);
- D('Supp_dis_relation')->where(array('distributor_id' => $dealer_id, 'supplier_id' => $supplier_id))->setInc('paid', $pay_money);
- D('Supp_dis_relation')->where(array('distributor_id' => $dealer_id, 'supplier_id' => $supplier_id))->setInc('sales', $pay_money);
- }
- M('Store')->setIncomeInc($supplier_id, $pay_money);
- if (empty($nowOrder['useStorePay'])) {
- M('Store')->setUnBalanceInc($supplier_id, $pay_money);
- M('Common_data')->setData('total', $pay_money);
- }
- else {
- D('Store')->where(array('store_id' => $supplier_id))->setInc('store_pay_income', $pay_money);
- }
- $dealer_profit = D('Financial_record')->field('profit')->where(array(
- 'order_id' => $dealer_order_id,
- 'supplier_id' => $supplier_id,
- 'income' => array('<', 0)
- ))->find();
- $dealer_profit = ((!(empty($dealer_profit['profit'])) ? $dealer_profit['profit'] : 0));
- if (!(empty($dealer_profit))) {
- D('Supp_dis_relation')->where(array('distributor_id' => $dealer_id, 'supplier_id' => $supplier_id))->setInc('profit', $dealer_profit);
- }
- $data_record = array();
- $data_record['store_id'] = $supplier_id;
- $data_record['order_id'] = $nowOrder['order_id'];
- $data_record['order_no'] = $nowOrder['order_no'];
- $data_record['income'] = $pay_money;
- $data_record['type'] = 1;
- $data_record['balance'] = $nowStore['income'];
- $data_record['payment_method'] = 'balance';
- $data_record['trade_no'] = $nowOrder['trade_no'];
- $data_record['add_time'] = time();
- $data_record['status'] = 1;
- $data_record['user_order_id'] = $nowOrder['user_order_id'];
- if (!(empty($nowOrder['useStorePay'])) && ($nowOrder['storePay'] == $supplier_id)) {
- $data_record['storeOwnPay'] = 1;
- }
- D('Financial_record')->data($data_record)->add();
- }
- public function _activity_pay_callback($nowOrder, $out_trade_no, $payment_method)
- {
- $bak = unserialize($nowOrder['activity_data']);
- $bak['from'] = str_replace('pigcms_', '', $bak['from']);
- if ($bak && isset($bak['from'])) {
- $apiUrl = rtrim(option('config.syn_domain'), '/') . '/';
- $salt = ((option('config.encryption') ? option('config.encryption') : 'pigcms'));
- $postData = array(
- 'option' => array(
- 'where' => array('orderid' => $bak['orderid'])
- ),
- 'data' => array('paid' => '1', 'paytype' => $out_trade_no),
- 'from' => $bak['from'],
- 'transactionid' => $payment_method,
- 'model' => 'Nothing',
- 'token' => $bak['token']
- );
- $postData['sign'] = getSign($postData, $salt);
- $url = $apiUrl . '/index.php?g=Home&m=Auth&a=order';
- api_curl_post($url, $postData);
- }
- }
- }
- ?>
-
wxapp.class.php页面
- <?php
- class Wxapp
- {
- public $payinfo;
- public function __construct($payinfo)
- {
- $this->payinfo = $payinfo;
- }
- public function qrcode_pay()
- {
- $api = 'https://pay.swiftpass.cn/pay/gateway';
- $data = [
- 'service'=>'pay.weixin.native',
- 'mch_id'=>$this->payinfo['mchid'],
- 'out_trade_no'=>$this->payinfo['order_no'],
- 'body'=>$this->payinfo['body'],
- 'total_fee'=>$this->payinfo['total_fee']*100,//单位分
- 'mch_create_ip'=>$this->getIp(),
- 'notify_url'=>option('config.site_url').'/wap/paynotice.php',
- 'nonce_str'=>$this->randomkey(32),
- ];
- $xml = $this->arr_xml($data);
- $ret = $this->post($api,$xml);
- $return = json_decode(json_encode(simplexml_load_string($ret, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
- return $return;
- }
- //接口要传的数据
- public function pay()
- {
- $api = 'https://pay.swiftpass.cn/pay/gateway';
- /*$out_trade_no = @date(Ymd).rand(111111,9999999);*/
- $nonce_str=uniqid();
- $data = [
- 'service'=>'pay.weixin.jspay',
- 'mch_id'=>$this->payinfo['mchid'],
- 'is_raw'=>'1',
- 'nonce_str'=>$this->randomkey(32),
- 'out_trade_no'=>$this->payinfo['order_no'],
- 'body'=>$this->payinfo['body'],
- 'sub_openid'=>$this->payinfo['openid'],
- 'total_fee'=>$this->payinfo['total_fee']*100,//单位分
- 'mch_create_ip'=>$this->getIp(),
- //'sign_type'=>'RSA_1_256',
- 'notify_url'=>option('config.site_url').'/wap/paynotice.php',//回调
- ];
- if($this->payinfo['type'] == 'quickStart'){
- $data['is_minipg'] = '1';
- }
- $data['sub_appid'] = $this->payinfo['appid'];
- $xml = $this->arr_xml($data);file_put_contents('./pay1.txt',$xml);
- $ret = $this->post($api,$xml);
- $return = json_decode(json_encode(simplexml_load_string($ret, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
- if($return['status']==0 && $return['result_code']==0){
- /*$wxpay = json_decode($return['pay_info'], true);
- $payinfos = [];
- $payinfos['appId'] = $wxpay['appId'];
- $payinfos['timeStamp'] = $wxpay['timeStamp'];
- $payinfos['nonceStr'] = $wxpay['nonceStr'];
- $payinfos['package'] = $wxpay['package'];
- $payinfos['signType'] = $wxpay['signType'];
- $payinfos['paySign'] = $wxpay['paySign'];
- return array('err_code'=>0,'pay_data'=>$this->json_en($payinfos));*/
- return array('err_code'=>0,'pay_data'=>$return['pay_info']);
- }else{
- json_return(10000, $return['message']);
- }
- }
- public function randomkey($length)
- {
- $pattern = '1234567890abcdefghijklmnopqrstuvwxyz
- ABCDEFGHIJKLOMNOPQRSTUVWXYZ';
- for($i=0;$i<$length;$i++)
- {
- $key .= $pattern{mt_rand(0,35)}; //生成php随机数
- }
- return $key;
- }
- public function json_en($response){
- $data = "{";
- foreach ($response as $k => $v) {
- if($k == 'timestamp'){
- $data.='"'.$k.'":'.$v.',';
- }else{
- $data.='"'.$k.'":"'.$v.'",';
- }
- }
- $data = substr($data,0,-1);
- $data = $data."}";
- return $data;
- }
- function createRSASign($signPars) {
- $signPars = substr($signPars, 0, strlen($signPars) - 1);
- $signtype = isset($signtype)?$signtype:'RSA_1_256';
- $res = openssl_get_privatekey($this->payinfo['pay_secret']);
- if ($signtype == 'RSA_1_1') {
- openssl_sign($signPars, $sign, $res);
- } else if ($signtype == 'RSA_1_256') {
- openssl_sign($signPars, $sign, $res, OPENSSL_ALGO_SHA256);
- }
- openssl_free_key($res);
- $sign = base64_encode($sign);
- return $sign;
- }
- public function arr_xml($data)
- {
- if(strlen($this->payinfo['pay_secret']) > 40){
- $data['sign_type'] = 'RSA_1_256';
- }
- ksort($data);//以键名排序
- $string='';
- foreach($data as $k=>$v){
- $string.="$k=$v&";
- }
- if(!$data['sign_type']){
- $string.='key='.$this->payinfo['pay_secret'];
- $data['sign'] = strtoupper(md5($string));
- }else{
- $data['sign'] = $this->createRSASign($string);
- }
- $xml='<xml>';
- foreach($data as $key=>$val){
- if (is_numeric($val)){
- $xml.="<".$key.">".$val."</".$key.">";
- }else{
- $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
- }
- }
- $xml.='</xml>';
- return $xml;
- }
- public function getIp()
- {
- $ip = "Unknown";
- if (isset($_SERVER["HTTP_X_REAL_IP"]) && !empty($_SERVER["HTTP_X_REAL_IP"])) {
- $ip = $_SERVER["HTTP_X_REAL_IP"];
- }
- elseif (isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) && !empty($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) {
- $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]) && !empty($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) {
- $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
- }
- elseif (isset($HTTP_SERVER_VARS["REMOTE_ADDR"]) && !empty($HTTP_SERVER_VARS["REMOTE_ADDR"])) {
- $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
- }
- elseif (getenv("HTTP_X_FORWARDED_FOR")) {
- $ip = getenv("HTTP_X_FORWARDED_FOR");
- }
- elseif (getenv("HTTP_CLIENT_IP")) {
- $ip = getenv("HTTP_CLIENT_IP");
- }
- elseif (getenv("REMOTE_ADDR")) {
- $ip = getenv("REMOTE_ADDR");
- }
- return $ip;
- }
- public function post($url, $data, $isHttps = TRUE)
- {
- // 创建curl对象
- $ch = curl_init ();
- // 配置这个对象
- curl_setopt ( $ch, CURLOPT_URL, $url); // 请求的URL地址
- curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
- if($isHttps)
- {
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
- }
- curl_setopt ( $ch, CURLOPT_POST, true); // 是否是POST请求
- curl_setopt ( $ch, CURLOPT_HEADER, 0); // 去掉HTTP协议头
- curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1); // 返回接口的结果,而不是输出
- curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data); // 提交的数据
- // 发出请求
- $return = curl_exec ( $ch );
- // 关闭对象
- curl_close ( $ch );
- // 返回数据
- return $return;
- }
- }
-
-
app.sdk.js文件
- function is_kingkr_obj() {
- var type = sdk_judge();
- if (type.ios == true) {
- if (typeof window.webkit == 'undefined' || typeof window.webkit.messageHandlers.local_kingkr_obj == 'undefined') {
- return false
- } else {
- return true
- }
- }else{
- if (typeof local_kingkr_obj == 'undefined') {
- return false
- } else {
- return true
- }
- }
- }
- function share(){
- switch(arguments[0]){
- case 'share':
- shareOnly(arguments[1],arguments[2],arguments[3],arguments[4]);
- break;
- case 'image':
- shareImage(arguments[1]);
- break;
- case 'screenshot':
- shareCutImage();
- break;
- default:
- shareOnly(arguments[0],arguments[1],arguments[2],arguments[3]);
- break;
- }
- }
- function shareOnly(content, imageurl, targetUrl, title) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = { 'methodName' : 'share', 'content': content,'imageurl': imageurl,'targetUrl': targetUrl,'title': title, 'callbackMethod': 'shareCallback' };
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- var share = "{\"content\":\"" + content + "\",\"imageurl\": \"" + imageurl + "\",\"targetUrl\": \"" + targetUrl + "\",\"title\": \"" + title + "\"}";
- local_kingkr_obj.share(share)
- }
- }
- function shareImage(imageurl) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = { 'methodName' : 'shareImage', 'imageurl': imageurl, 'callbackMethod': 'shareCallback' };
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- var share = "{\"content\":\"\",\"imageurl\": \"" + imageurl + "\",\"targetUrl\": \"\",\"title\": \"\"}";
- local_kingkr_obj.shareImage(share)
- }
- }
- function shareCutImage() {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = { 'methodName' : 'shareCutImage', 'callbackMethod': 'shareCallback' };
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- var share = "{\"content\":\"\",\"imageurl\": \"\",\"targetUrl\": \"\",\"title\": \"\"}";
- local_kingkr_obj.shareCutImage(share)
- }
- }
- function openDownLoad() {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- }else{
- local_kingkr_obj.openDownLoadFile();
- }
- }
- function downloadFile(url){
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- }else{
- local_kingkr_obj.downloadFile(url);
- }
- }
- function login(platform, forwardurl, callbackMethod) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message ={'methodName':'login','platform':platform,'forwardurl':forwardurl,'callbackMethod':callbackMethod};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- var login = "{\"platform\":\"" + platform + "\",\"forwardurl\":\"" + forwardurl + "\",\"callbackMethod\":\"" + callbackMethod + "\"}";
- local_kingkr_obj.login(login)
- }
- }
- function pay_Type(order,paytype,callbackMethod) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'pay','order':order,'paytype':paytype,'callbackMethod':callbackMethod};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- var payType = '{"paytype":\"' + paytype + '\","callbackMethod":\"' + callbackMethod + '\"}';
- local_kingkr_obj.payType(order, payType)
- }
- }
- function audioPlay(operator) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- }else{
- var data = "{\"operator\":" + operator + "}";
- local_kingkr_obj.audioPlay(data);
- }
- }
- function qrcode() {
- if(!sdk_checkinside())return false;
- var resulttype = 1;
- if(arguments[0] != null)
- resulttype = arguments[0];
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'qrcoder','controlQRCodeResult':resulttype,'callbackMethod':'qrcodeCallback'};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- local_kingkr_obj.qrcoderWithCallback(resulttype);
- }
- }
- function cleanCache() {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName': 'cleancache'};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- } else {
- local_kingkr_obj.cleanCache();
- }
- }
- function controlBottomTabLayout(param) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- if(param == null)
- var message = {'methodName':'controlBottomTabLayout'};
- else
- var message = {'methodName':'controlBottomTabLayout','show':''+param+''};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- } else {
- if(param == null)
- param = '';
- local_kingkr_obj.controlBottomTabLayout(param);
- }
- }
- function controllNavigateLayout(param) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- if(param == null)
- var message = {'methodName':'controllNavigateLayout'};
- else
- var message = {'methodName':'controllNavigateLayout','show':''+param+''};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- } else {
- if(param == null)
- param = '';
- local_kingkr_obj.controlNavigatorLayout(param);
- }
- }
- function controlLeftMenuLayout(state) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'controlLeftMenuLayout','show':state};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- } else {
- local_kingkr_obj.controlLeftMenuLayout(state);
- }
- }
- function getDeviceIdentifier(callbackMethod) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'getDeviceIdentifier','callbackMethod':callbackMethod};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- local_kingkr_obj.getDeviceIndentify(callbackMethod);
- }
- }
- function setScreenOrientation(orientation) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'setScreenOrientation','orientation':orientation};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- local_kingkr_obj.setScreenOrientation(orientation);
- }
- }
- function copyUrlToClipboard() {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'copyUrlToClipboard'};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- local_kingkr_obj.clipboardManager();
- }
- }
- function awakeOtherBrowser(url) {
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- if(url == ''){
- var message = {'methodName':'awakeOtherWebview'}
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- var message = {'methodName':'awakeOtherWebview','webviewUrl':url}
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }
- }else{
- local_kingkr_obj.awakeOtherWebview(url);
- }
- }
- function registerPushTag(tag,callbackmethod)
- {
- if(tag == ''){
- return false;
- }
- tag = tag.split(',');
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = { 'methodName' : 'registerPushTag', 'tag':tag,'callbackMethod':callbackmethod};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- var message = "{'tag':"+JSON.stringify(tag)+",'callbackMethod':"+callbackmethod+"}";
- local_kingkr_obj.registerPushTag(message);
- }
- }
- function getBuild(){
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'getBuild','callbackMethod':'getBuildResult'}
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- var b = local_kingkr_obj.getBuild();
- alert(b);
- }
- }
- function getBuildResult(buildVersion)
- {
- alert(buildVersion);
- }
- function sdk_judge() {
- var u = navigator.userAgent;
- return {
- ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
- android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
- }
- }
- function sdk_checkinside(){
- if(!is_kingkr_obj()){
- alert("请在App内打开");
- return false;
- }
- return true;
- }
- function getLocation(callbackMethod){
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'getLocation','callbackMethod':callbackMethod}
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- local_kingkr_obj.getLocation(callbackMethod);
- }
- }
- function copyText(txt){
- if(!sdk_checkinside())return false;
- type = sdk_judge();
- if (type.ios == true) {
- var message = {'methodName':'copyText','content':txt};
- window.webkit.messageHandlers.local_kingkr_obj.postMessage(message);
- }else{
- local_kingkr_obj.copyText(txt);
- }
- }
-
-
pay.js文件
- var addressList={};//,postage=0.00;
- var l_express = true;
- var l_friend = true;
- var selffetch_obj = {};
- var friend_obj = {};
- function checkOrderAmount() {
- var order_id = $('.block-order ').data('id');
- var float_amount = parseFloat($('.block-order').data('float-amount'));
- var postage = parseFloat($('#js-postage').html());
- $.post('pay.php?action=checkAmount', {'order_id': order_id, 'float_amount': float_amount, 'postage': postage}, function(data) {
- if (data) {
- window.location.reload(); //重新刷新
- }
- })
- }
- $(function(){
- //订单支付金额检测
- //var timer = self.setInterval("checkOrderAmount()",5000);
- var total = Number($('#js-total').text());
- resetPrice();
- var haveAddress = function(){
- if(!is_userAddress){
- var msg = '请先添加收货地址';
- $('.btn-pay').css('display','none');
- $('.js-order-total').html('<span>'+msg+'</span>');
- }
- }
- haveAddress();
- /*查看留言*/
- $(".js-show-message").click(function () {
- var comment_obj = $(this).data("comment");
- var comment_html = '';
- for(var i in comment_obj) {
- comment_html += "<li><span>" + comment_obj[i].name + ":</span>" + comment_obj[i].value + "</li>";
- }
- var product_content = $(this).closest(".js-product-detail").html();
- product_content_obj = $("<div>" + product_content + "</div>");
- product_content_obj.find(".js-show-message").remove();
- product_content = product_content_obj.html();
- var comment_html = '<div class="modal order-modal active">\
- <div class="block block-order block-border-top-none">\
- <div class="block block-list block-border-top-none block-border-bottom-none">\
- <div class="block-item name-card name-card-3col clearfix">' + product_content + '</div>\
- </div>\
- </div>\
- <div class="block express" id="js-logistics-container">\
- <div class="block-item logistics">\
- <h4 class="block-item-title">留言信息</h4>\
- </div>\
- <div class="js-logistics-content logistics-content js-express">\
- <div>\
- <div class="block block-form block-border-top-none block-border-bottom-none">\
- <div class="js-order-address express-panel" style="padding-left:0;">\
- <ul>' + comment_html + '</ul>\
- </div>\
- </div>\
- </div>\
- </div>\
- </div>\
- <div class="action-container"><button type="button" class="js-cancel btn btn-block">查看订单</button></div>\
- </div>';
- var comment_obj = $(comment_html);
- $('body').append(comment_obj);
- comment_obj.find('.js-cancel').click(function(){
- comment_obj.remove();
- });
- });
- /*收货地址*/
- var editAdress = function(callbackObj,address_id){
- var addAdressDom = $('<div id="addAdress" class="modal order-modal active"><div><form class="js-address-fm address-ui address-fm"><div class="block" style="margin-bottom:10px;height:430px"><div class="block-item"><label class="form-row form-text-row"><em class="form-text-label">收货人</em><span class="input-wrapper"><input type="text" name="user_name" class="form-text-input" value="" placeholder="名字"></span></label></div><div class="block-item"><div class="form-row form-text-row"><em class="form-text-label">选择地区</em><div class="input-wrapper input-region js-area-select"><span><select id="province" name="province" class="address-province"></select></span><span><select id="city" name="city" class="address-city"><option>城市</option></select></span><span><select id="county" name="county" class="address-county"><option>区县</option></select></span></div></div></div><div class="block-item"><label class="form-row form-text-row"><em class="form-text-label">详细地址</em><span class="input-wrapper"><input id="tipinput" type="text" name="address" class="form-text-input map-a" value="" placeholder="街道门牌信息" ></span></label></div><div class="block-item"><label class="form-row form-text-row"><em class="form-text-label">联系电话</em><span class="input-wrapper"><input type="tel" name="tel" class="form-text-input" value="" placeholder="手机或固话"></span></label></div><div class="block-item" id="map"></div></div><div><div class="action-container"><a class="js-address-save btn btn-block btn-blue">保存</a><a class="js-address-cancel btn btn-block">取消</a></div></div></form></div></div>');
- $('body').append(addAdressDom);
- getProvinces('province','','省份');
- var is_red = 0;
- addAdressDom.find('#province').change(function(){
- if($(this).val() != ''){
- getCitys('city','province','','城市');
- }else{
- $('#city').html('<option>城市</option>');
- }
- $('#county').html('<option>区县</option>');
- addAdressDom.find('input[name="address"]').val('');
- district_search('province',$(this).find("option:selected").text());
- });
- addAdressDom.find('#city').change(function(){
- if($(this).val() != ''){
- getAreas('county','city','','区县');
- }else{
- $('#county').html('<option>区县</option>');
- }
- district_search('province',$(this).find("option:selected").text());
- });
- addAdressDom.find('#county').change(function(){
- district_search('province',$(this).find("option:selected").text());
- });
- addAdressDom.find('.js-address-cancel').click(function(){
- if(confirm('确定要放弃此次编辑吗?')){
- addAdressDom.removeClass('active').remove();
- }
- });
- addAdressDom.find('.js-address-save').click(function(){
- if($(this).attr('disabled')){
- motify.log('提交中,请稍等...');
- return false;
- }
- //收货人
- var nameDom = addAdressDom.find('input[name="user_name"]');
- var name = $.trim(nameDom.val());
- if(name.length == 0){
- motify.log('请填写名字');
- nameDom.focus();
- return false;
- }
- //联系电话
- var telDom = addAdressDom.find('input[name="tel"]');
- var tel = $.trim(telDom.val());
- if(tel.length == 0){
- motify.log('请填写联系电话');
- telDom.focus();
- return false;
- }else if(!/^0[0-9\-]{10,13}$/.test(tel) && !/^((\+86)|(86))?(1)\d{10}$/.test(tel)){
- motify.log('请填写正确的<br />手机号码或电话号码');
- telDom.focus();
- return false;
- }
- //地区
- var province = parseInt(addAdressDom.find('select[name="province"]').val());
- var city = parseInt(addAdressDom.find('select[name="city"]').val());
- var area = parseInt(addAdressDom.find('select[name="county"]').val());
- if(isNaN(province) || isNaN(city) || isNaN(area)){
- motify.log('请选择地区');
- return false;
- }
- //详细地址
- var addressDom = addAdressDom.find('input[name="address"]');
- var address = $.trim(addressDom.val());
- var lat_status = $("input[name='lat_status']").val();
- if(address.length <= 4 || lat_status == 2){
- console.log(lat_status);
- motify.log('请输入详细收货地址');
- addressDom.focus();
- return false;
- }
- //邮政编码
- /*var zipcodeDom = addAdressDom.find('input[name="zipcode"]');
- var zipcode = $.trim(zipcodeDom.val());
- if(zipcode.length > 0 && !/^\d{6}$/.test(zipcode)){
- motify.log('邮政编码格式不正确');
- zipcodeDom.focus();
- return false;
- }*/
- var nowDom = $(this);
- var lng = $("input[name='lng']").val();
- var lat = $("input[name='lat']").val();
- var lat_status = $("input[name='lat_status']").val();
- if(lat_status == '2'){
- //motify.log('请输入正确地址(检查定位)');
- return false;
- }
- if(lng <= 0){
- //motify.log('请点击或拖拽选择地理位置!');
- return false;
- }
- nowDom.html('保存中...').attr('disabled',true);
- var post_data = {name:name,tel:tel,province:province,city:city,area:area,address:address,lng:lng,lat:lat};
- //console.log(post_data);return false;
- if(address_id){
- var post_url = 'address.php?action=edit';
- post_data.address_id = address_id;
- }else{
- var post_url = 'address.php?action=add';
- }
- $.post(post_url,post_data,function(result){
- //console.log();return false;
- if(result.err_code){
- motify.log(result.err_msg);
- }else{
- motify.log('操作成功');
- setTimeout(function(){
- window.location.reload();
- },2000);
- }
- });
- });
- var lng = $("input[name='lng']").val();
- var lat = $("input[name='lat']").val();
- lng = lng || 116.39773;
- lat = lat || 39.907815;
- var map = new AMap.Map("map", {
- resizeEnable: true,
- center: [lng, lat],
- zoom: 10
- });
- var marker = new AMap.Marker({
- position: [lng, lat],
- zoom: 10
- });
- marker.setMap(map);
- map.on('click', function(e) {
- console.log(e);
- var lnglat = [e.lnglat.lng,e.lnglat.lat];
- setLenLat(lnglat);
- });
- function district_search(level,keywords){
- AMap.plugin('AMap.DistrictSearch', function () {
- var districtSearch = new AMap.DistrictSearch({
- // 关键字对应的行政区级别,country表示国家
- level: level,
- // 显示下级行政区级数,1表示返回下一级行政区
- subdistrict: 1
- })
- // 搜索所有省/直辖市信息
- districtSearch.search(keywords, function(status, result) {
- setLenLat([result.districtList[0].center.lng,result.districtList[0].center.lat]);
- })
- })
- }
- $('#tipinput').bind('input',function(){
- autoSearch($(this).val());
- })
- function autoSearch(keyword){
- AMap.plugin(['AMap.Autocomplete','AMap.PlaceSearch'],function(){
- var city = $('#city').find("option:selected").text();
- var district = $('#county').find("option:selected").text();
- var autoOptions = {
- city: city,
- citylimit: true,
- input: "tipinput"
- }
- var autocomplete= new AMap.Autocomplete(autoOptions);
- autocomplete.search(district+keyword, function(status, result) {});
- AMap.event.addListener(autocomplete, 'select', function(e){
- setLenLat([e.poi.location.lng,e.poi.location.lat]);
- })
- });
- }
- function setLenLat(lnglat){
- map.clearMap();
- map.setCenter(lnglat);
- var marker = new AMap.Marker({
- position: lnglat,
- zoom: 10
- });
- marker.setMap(map);
- console.log(lnglat);
- ediell(lnglat[0],lnglat[1])
- }
- function ediell(lng,lat){
- $("input[name='lng']").val(lng);
- $("input[name='lat']").val(lat);
- $("input[name='lat_status']").val(1);
- }
- if(callbackObj) callbackObj();
- }
- $('.js-order-address > .js-edit-address').live('click',function(){
- editAdress();
- });
- var getPostage = function(type){
- var address_id = 0;
- var province_id = 0;
- if (!is_logistics) {
- return false;
- }
- if (typeof type == "undefined") {
- if($('#address_id').size() == 0){
- return false;
- }
- address_id = $('#address_id').val();
- } else {
- if ($("#friend_province").size() > 0 && $("#friend_province").val() != "") {
- province_id = $("#friend_province").val();
- }
- }
- $.post('address.php?action=postage',{orderNo:orderNo,address_id:address_id,province_id:province_id},function(result){
- //console.log(result);
- if(typeof(result) == 'object'){
- if (result.err_msg == undefined || result.err_msg == null || result.err_msg == ''){
- result.err_msg = 0;
- }
- if(result.err_code == 1002){
- //alert('无法获取该订单支付信息\r\n错误提示:'+result.err_msg.error);
- $('.btn-pay').css('display','none');
- $('.js-order-total').html('<span>'+result.err_msg+'</span>');
- }else if (result.err_code == 1001) {
- window.location.reload();
- } else if(result.err_code == 1009){
- $('.js-step-topay').addClass('hide');
- $('.js-logistics-tips').removeClass('hide');
- if (typeof type == "undefined") {
- l_express = false;
- } else {
- l_friend = false;
- }
- }else if(result.err_code){
- $('.js-step-topay').removeClass('hide');
- alert('无法获取该订单支付信息\r\n错误提示:'+result.err_msg);
- if (typeof type == "undefined") {
- l_express = false;
- } else {
- l_friend = false;
- }
- }else{
- postage = parseFloat(result.err_msg);
- var postdata = result.err_dom.postdata;
- $("#js-postage").html(postage.toFixed(2));
- console.log(postdata);
- if(postdata.dynamicDesc && !postdata.is_freepost){
- $("#appointDate").html('('+postdata.dynamicDesc+')');
- }else{
- $("#appointDate").html("");
- }
- $("input[name='postage_list']").val(result.err_dom);
- resetPrice();
- //$('.js-order-total').html('<p>¥'+sub_total.toFixed(2)+' + ¥'+postage.toFixed(2)+'运费</p><strong class="js-real-pay c-orange js-real-pay-temp">需付:¥'+(sub_total+postage).toFixed(2)+'</strong>');
- $('.js-step-topay').removeClass('hide');
- $('.js-logistics-tips').addClass('hide');
- if (typeof type == "undefined") {
- l_express = true;
- } else {
- l_friend = true;
- }
- //window.location.reload();
- }
- }else{
- motify.log('访问异常,请重试');
- }
- });
- }
- var refreshAdress = function(){
- $.post('address.php?action=list',function(result){
- if(typeof(result) == 'object'){
- if(result.err_code == 0){
- addressList = result.err_msg;
- }
- }else{
- motify.log('访问异常,请重试');
- }
- });
- }
- var selffetchEdit = false;
- $('.js-logistics-select button').click(function(){
- if(!$(this).hasClass('tag-orange')){
- if($('#address_id').size() == 0){
- motify.log('您不能再修改配送方式');
- $(this).blur();
- return false;
- }
- // 保存切换之前填写的数据
- if ($(this).siblings(".tag-orange").data("type") == "selffetch") {
- var self_name = $(".js-name").val();
- var self_phone = $(".js-phone").val();
- var self_date = $(".js-self-date").val();
- var self_time = $(".js-self-time").val();
- selffetch_obj.self_name = self_name;
- selffetch_obj.self_phone = self_phone;
- selffetch_obj.self_date = self_date;
- selffetch_obj.self_time = self_time;
- } else if ($(this).siblings(".tag-orange").data("type") == "friend") {
- var friend_name = $(".js-friend_name").val();
- var friend_phone = $(".js-friend_phone").val();
- var friend_province = $("#friend_province").val();
- var friend_city = $("#friend_city").val();
- var friend_county = $("#friend_county").val();
- var friend_address = $(".js-friend_address").val();
- var friend_date = $(".js-friend_time").eq(0).val();
- var friend_time = $(".js-friend_time").eq(1).val();
- friend_obj.friend_name = friend_name;
- friend_obj.friend_phone = friend_phone;
- friend_obj.friend_province = friend_province;
- friend_obj.friend_city = friend_city;
- friend_obj.friend_county = friend_county;
- friend_obj.friend_address = friend_address;
- friend_obj.friend_date = friend_date;
- friend_obj.friend_time = friend_time;
- }
- $(this).addClass('tag-orange').siblings('button').removeClass('tag-orange');
- if($(this).data('type') == 'selffetch'){
- $("#confirm-pay-way-opts").find("button").each(function () {
- if ($(this).data("pay-type") == "offline") {
- $(this).show();
- }
- });
- $('#expre_time').css('display','none');
- var selffetchListJson = $.parseJSON(selffetchList);
- $('.js-step-topay').removeClass('hide');
- if($('#selffetch_id').val() != '0' && selffetchEdit == false){
- for(var i in selffetchListJson){
- var selffetch = selffetchListJson[i];
- if(selffetch.pigcms_id == $('#selffetch_id').val()){
- var myDate=new Date();
- var dateVal = myDate.getFullYear() + '-' + (myDate.getMonth()<9 ? '0'+(myDate.getMonth()+1) : (myDate.getMonth()+1)) + '-' + (myDate.getDate()<10 ? '0'+myDate.getDate() : myDate.getDate());
- var timeVal = (myDate.getHours()<10 ? '0'+myDate.getHours() : myDate.getHours()) + ':' + (myDate.getMinutes()<10 ? '0'+myDate.getMinutes() : myDate.getMinutes());
- var self_name = '';
- var self_phone = '';
- if (typeof selffetch_obj.self_name != 'undefined') {
- self_name = selffetch_obj.self_name;
- self_phone = selffetch_obj.self_phone;
- dateVal = selffetch_obj.self_date;
- timeVal = selffetch_obj.self_time;
- }
- $('.js-logistics-content').html('<div><div class="block block-form block-border-top-none block-border-bottom-none"><div class="js-order-address express-panel" style="padding-left:0;"><div class="opt-wrapper"><a href="javascript:;" class="btn btn-xxsmall btn-grayeee butn-edit-address js-edit-address">修改</a></div><ul><li><span>'+selffetch.name+'</span>, '+selffetch.tel+'</li><li>'+selffetch.province_txt+' '+selffetch.city_txt+' '+selffetch.county_txt+' </li><li>'+selffetch.address+'</li></ul></div><div class="clearfix block-item self-fetch-info-show"><label>预约人</label><input class="txt txt-black ellipsis js-name" placeholder="到店人姓名" value="' + self_name + '" /></div><div class="clearfix block-item self-fetch-info-show "><label>联系方式</label><input type="text" class="txt txt-black ellipsis js-phone" placeholder="用于短信接收和便于卖家联系" value="' + self_phone + '" /></div><div class="clearfix block-item self-fetch-info-show "><label class="pull-left">预约时间</label><input style="width:125px" class="txt txt-black js-time pull-left date-time js-self-date" type="date" placeholder="日期" value="'+dateVal+'"/><input style="width:70px" class="txt txt-black js-time pull-left date-time js-self-time" type="time" placeholder="时间" value="'+timeVal+'"/></div></div></div><input style="display:none;" class="js-hide-input" />');
- $(".js-hide-input").focus();
- $("#js-postage").html('0.00');
- resetPrice();
- //$('.js-order-total').html('<p>¥'+sub_total.toFixed(2)+' + ¥0.00运费</p><strong class="js-real-pay c-orange js-real-pay-temp">需付:¥'+sub_total.toFixed(2)+'</strong>');
- break;
- }
- }
- }else{
- selffetchEdit = false;
- var selffetchListHtml = '<div class="modal order-modal active"><div class="js-scene-address-list "><div class="address-ui address-list"><div class="block"><div class="js-address-container address-container">';
- for(var i in selffetchListJson){
- business_hours = "";
- if (selffetchListJson[i].business_hours.length > 0) {
- business_hours = ",自营时间:" + selffetchListJson[i].business_hours;
- }
- //selffetchListHtml += '<div><div class="js-address-item block-item" data-id="'+i+'"><h4>'+selffetchListJson[i].name+', '+selffetchListJson[i].tel + business_hours +'</h4><span class="address-str address-str-sf">'+selffetchListJson[i].province_txt+selffetchListJson[i].city_txt+selffetchListJson[i].county_txt+selffetchListJson[i].address+'</span><div class="address-opt"></div></div></div>';
- selffetchListHtml += '<div class="block block-order">';
- selffetchListHtml += ' <div class="store-header header">';
- selffetchListHtml += ' <span>店铺:' + selffetchListJson[i].name + '</span> <button type="button" class="js-address-item btn btn-green" data-id="' + i + '">选择此门店</button>';
- selffetchListHtml += ' </div>';
- selffetchListHtml += ' <hr class="margin-0 left-10"/>';
- selffetchListHtml += ' <div class="name-card name-card-3col name-card-store clearfix">';
- selffetchListHtml += ' <a href="javascript:;" class="thumb js-view-image-list"><img class="js-view-image-item " src="' + selffetchListJson[i].logo + '"/></a>';
- selffetchListHtml += ' <a href="tel:' + selffetchListJson[i].tel + '"><div class="phone"></div></a>';
- if (selffetchListJson[i].pigcms_id == '99999999_store') {
- selffetchListHtml += ' <a class="detail" target="_blank" href="./physical_detail.php?store_id=' + selffetchListJson[i].store_id + '">';
- } else {
- selffetchListHtml += ' <a class="detail" target="_blank" href="./physical_detail.php?id=' + selffetchListJson[i].pigcms_id + '">';
- }
- selffetchListHtml += ' <h3>' + selffetchListJson[i].province_txt + selffetchListJson[i].city_txt + selffetchListJson[i].county_txt + selffetchListJson[i].address + '</h3>';
- if (selffetchListJson[i].business_hours.length > 0) {
- selffetchListHtml += ' <p class="c-gray-dark ellipsis" style="margin-top:5px">营业时间:' + selffetchListJson[i].business_hours + '</p>';
- }
- selffetchListHtml += ' </a>';
- if (long != 0 && lat != 0 && selffetchListJson[i].long != 0 && selffetchListJson[i].lat != 0) {
- store_juli = 0;
- try {
- store_juli = (getFlatternDistance(lat, long, selffetchListJson[i].lat, selffetchListJson[i].long) / 1000).toFixed(2);
- } catch (e) {
- store_juli = 0;
- }
- if (store_juli > 0) {
- selffetchListHtml += " 距离:" + store_juli + "km";
- }
- }
- selffetchListHtml += ' </div>';
- if (selffetchListJson[i].description.length > 0) {
- selffetchListHtml += ' <hr/>';
- selffetchListHtml += ' <div class="name-card-bottom c-gray-dark">商家推荐:' + selffetchListJson[i].description + '</div>';
- }
- selffetchListHtml += '</div>';
- }
- selffetchListHtml += '</div></div><div class="action-container"><button type="button" class="js-cancel btn btn-block">返回</button></div></div></div>';
- var selffetchListDom = $(selffetchListHtml);
- $('body').append(selffetchListDom);
- selffetchListDom.find('.js-cancel').click(function(){
- if($('#selffetch_id').val() == '0'){
- $('.js-tabber-self-fetch').removeClass('tag-orange').siblings('button').trigger('click');
- }
- selffetchListDom.remove();
- });
- selffetchListDom.find('.js-address-item').click(function(){
- var selffetch = selffetchListJson[$(this).data('id')];
- var myDate=new Date();
- var dateVal = myDate.getFullYear() + '-' + (myDate.getMonth()<9 ? '0'+(myDate.getMonth()+1) : (myDate.getMonth()+1)) + '-' + (myDate.getDate()<10 ? '0'+myDate.getDate() : myDate.getDate());
- var timeVal = (myDate.getHours()<10 ? '0'+myDate.getHours() : myDate.getHours()) + ':' + (myDate.getMinutes()<10 ? '0'+myDate.getMinutes() : myDate.getMinutes());
- business_hours = "";
- if (selffetch.business_hours.length > 0) {
- business_hours = ",自营时间:" + selffetch.business_hours;
- }
- $('.js-logistics-content').html('<div><div class="block block-form block-border-top-none block-border-bottom-none"><div class="js-order-address express-panel" style="padding-left:0;"><div class="opt-wrapper"><a href="javascript:;" class="btn btn-xxsmall btn-grayeee butn-edit-address js-edit-address">修改</a></div><ul><li><span>'+selffetch.name+'</span>, '+selffetch.tel + business_hours +'</li><li>'+selffetch.province_txt+' '+selffetch.city_txt+' '+selffetch.county_txt+' </li><li>'+selffetch.address+'</li></ul></div><div class="clearfix block-item self-fetch-info-show"><label>预约人</label><input class="txt txt-black ellipsis js-name" placeholder="到店人姓名"/></div><div class="clearfix block-item self-fetch-info-show "><label>联系方式</label><input type="text" class="txt txt-black ellipsis js-phone" placeholder="用于短信接收和便于卖家联系" /></div><div class="clearfix block-item self-fetch-info-show "><label class="pull-left">预约时间</label><input style="width:125px" class="txt txt-black js-time pull-left date-time js-self-date" type="date" placeholder="日期" value="'+dateVal+'"/><input style="width:70px" class="txt txt-black js-time pull-left date-time js-self-time" type="time" placeholder="时间" value="'+timeVal+'"/></div></div></div><input style="display:none;" class="js-hide-input" />');
- $('#selffetch_id').val(selffetch.pigcms_id);
- $(".js-hide-input").focus();
- $("#js-postage").html('0');
- resetPrice();
- //$('.js-order-total').html('<p>¥'+sub_total.toFixed(2)+' + ¥0.00运费</p><strong class="js-real-pay c-orange js-real-pay-temp">需付:¥'+sub_total.toFixed(2)+'</strong>');
- selffetchListDom.remove();
- });
- }
- } else if ($(this).data('type') == 'friend') {
- if (l_friend) {
- $('.js-step-topay').removeClass('hide');
- $('.js-logistics-tips').addClass('hide');
- } else {
- $('.js-step-topay').addClass('hide');
- $('.js-logistics-tips').removeClass('hide');
- }
- $("#confirm-pay-way-opts").find("button").each(function () {
- if ($(this).data("pay-type") == "offline") {
- $(this).hide();
- }
- });
- var friend_name = '';
- var friend_phone = '';
- var friend_province = '';
- var friend_city = '';
- var friend_county = '';
- var friend_address = '';
- var myDate=new Date();
- var dateVal = myDate.getFullYear() + '-' + (myDate.getMonth()<9 ? '0'+(myDate.getMonth()+1) : (myDate.getMonth()+1)) + '-' + (myDate.getDate()<10 ? '0'+myDate.getDate() : myDate.getDate());
- var timeVal = (myDate.getHours()<10 ? '0'+myDate.getHours() : myDate.getHours()) + ':' + (myDate.getMinutes()<10 ? '0'+myDate.getMinutes() : myDate.getMinutes());
- if (typeof friend_obj.friend_name != "undefined") {
- friend_name = friend_obj.friend_name;
- friend_phone = friend_obj.friend_phone;
- friend_province = friend_obj.friend_province;
- friend_city = friend_obj.friend_city;
- friend_county = friend_obj.friend_county;
- friend_address = friend_obj.friend_address;
- dateVal = friend_obj.friend_date;
- timeVal = friend_obj.friend_time;
- }
- var html = '<div>\
- <div class="block block-form block-border-top-none block-border-bottom-none">\
- <div class="clearfix block-item self-fetch-info-show">\
- <label>朋友姓名</label>\
- <input class="txt txt-black ellipsis js-friend_name" placeholder="朋友姓名" value="' + friend_name + '" />\
- </div>\
- <div class="clearfix block-item self-fetch-info-show ">\
- <label>联系方式</label>\
- <input type="text" class="txt txt-black ellipsis js-friend_phone" placeholder="用于短信接收和便于卖家联系" value="' + friend_phone + '" />\
- </div>\
- <div class="clearfix block-item self-fetch-info-show ">\
- <label>选择地区</label>\
- <span>\
- <select id="friend_province" name="friend_province" class="address-province" style="width:80px; margin:0px;">\
- <option>省</option>\
- </select>\
- </span>\
- <span>\
- <select id="friend_city" name="friend_city" class="address-city" style="width:80px; margin:0px;">\
- <option>城市</option>\
- </select>\
- </span>\
- <span>\
- <select id="friend_county" name="friend_county" class="address-county" style="width:80px; margin:0px;">\
- <option>区县</option>\
- </select>\
- </span>\
- </div>\
- <div class="clearfix block-item self-fetch-info-show ">\
- <label>详细地址</label>\
- <input type="text" class="txt txt-black ellipsis js-friend_address" placeholder="详细地址" value="' + friend_address + '" />\
- </div>\
- <div class="clearfix block-item friend-info-show ">\
- <label class="pull-left">预约时间</label>\
- <input style="width:125px" class="txt txt-black js-friend_time pull-left date-time" type="date" placeholder="日期" value="'+dateVal+'"/>\
- <input style="width:70px" class="txt txt-black js-friend_time pull-left date-time" type="time" placeholder="时间" value="'+timeVal+'"/>\
- </div>\
- </div>\
- <div class="js-logistics-tips logistics-tips font-size-12 c-orange hide">很抱歉,该地区暂不支持配送。</div>\
- </div>';
- $('.js-logistics-content').html(html);
- $('#friend_province').change(function(){
- if($(this).val() != ''){
- getPostage('friend');
- getCitys('friend_city','friend_province','','城市');
- }else{
- $('#friend_city').html('<option>城市</option>');
- }
- $('#friend_county').html('<option>区县</option>');
- });
- $('#friend_city').change(function(){
- if($(this).val() != ''){
- getAreas('friend_county','friend_city','','区县');
- }else{
- $('#friend_county').html('<option>区县</option>');
- }
- });
- getProvinces('friend_province',friend_province,'省份');
- if (friend_province) {
- getPostage('friend');
- }
- if (friend_city != '') {
- getCitys('friend_city','friend_province',friend_city,'城市');
- }
- if (friend_county != '') {
- getAreas('friend_county','friend_city',friend_county,'区县');
- }
- }else{
- $("#confirm-pay-way-opts").find("button").each(function () {
- if ($(this).data("pay-type") == "offline") {
- $(this).show();
- }
- });
- $('#expre_time').css('display','flex');
- if (l_express == true) {
- $('.js-step-topay').removeClass('hide');
- $('.js-logistics-tips').addClass('hide');
- } else {
- $('.js-step-topay').addClass('hide');
- $('.js-logistics-tips').removeClass('hide');
- }
- if($('#address_id').val() != '0'){
- var nowAdress = addressList[$('#address_id').val()];
- var area_text = '';
- if (__alldiv[nowAdress.area][0] != '市辖区' && __alldiv[nowAdress.area][0] != '县') {
- area_text = __alldiv[nowAdress.area][0];
- }
- $('.js-logistics-content').html('<div><div class="block block-form block-border-top-none block-border-bottom-none"><div class="js-order-address express-panel" style="padding-left:0;"><div class="opt-wrapper"><a href="javascript:;" class="btn btn-xxsmall btn-grayeee butn-edit-address js-edit-address">修改</a></div><ul><li><span>'+nowAdress.name+'</span>, '+nowAdress.tel+'</li><li>'+__alldiv[nowAdress.province][0]+' '+__alldiv[nowAdress.city][0]+' '+area_text+' </li><li>'+nowAdress.address+'</li></ul></div></div><div class="js-logistics-tips logistics-tips font-size-12 c-orange hide">很抱歉,该地区暂不支持配送。</div></div><input style="display:none;" class="js-hide-hide" />');
- $("#js-postage").html(postage);
- $(".js-hide-hide").focus();
- resetPrice();
- //$('.js-order-total').html('<p>¥'+sub_total.toFixed(2)+' + ¥'+postage.toFixed(2)+'运费</p><strong class="js-real-pay c-orange js-real-pay-temp">需付:¥'+(sub_total+postage.toFixed(2))+'</strong>');
- }else{
- $('.js-logistics-content').html('<div><div class="js-order-address express-panel"><div class="js-edit-address address-tip"><span>添加收货地址</span></div></div></div>');
- }
- }
- }
- });
- //js-logistics-select button end
- $('.js-order-address .opt-wrapper .js-edit-address').live('click',function(){
- /*优先判断到店自提*/
- if(selffetchList && $('.js-tabber-self-fetch').hasClass('tag-orange')){
- selffetchEdit = true;
- $('.js-tabber-self-fetch').removeClass('tag-orange').trigger('click');
- }else{
- // if(!isLogin){
- var nowAdress = addressList[$('#address_id').val()];
- editAdress(function(){
- $('#addAdress input[name="user_name"]').val(nowAdress.name);
- $('#addAdress input[name="tel"]').val(nowAdress.tel);
- $('#addAdress input[name="address"]').val(nowAdress.address);
- $('#addAdress input[name="zipcode"]').val(nowAdress.zipcode);
- getProvinces('province',nowAdress.province);
- getCitys('city','province',nowAdress.city,'城市');
- getAreas('county','city',nowAdress.area,'区县');
- },nowAdress.address_id);
- // }
- }
- });
- //页面初始化
- if($('.js-order-address > .js-edit-address').size()){
- if (is_logistics) {
- $('.js-order-address > .js-edit-address').trigger('click');
- }
- }else{
- //if($('.js-step-topay').hasClass('hide')){
- getPostage();
- //}
- refreshAdress();
- }
- if ($(".js-order-address > .js-selffetch-address").size() && is_selffetch) {
- $('.js-logistics-select button').trigger('click');
- }
- $(".js-selffetch-address").click(function () {
- $('.js-logistics-select button').trigger('click');
- });
- $('.js-msg-container').focus(function(){
- $(this).addClass('two-rows');
- }).blur(function(){
- $(this).removeClass('two-rows');
- });
- var nowScroll=0;
- var payShowAfter = function(){
- $('html').css({'overflow':'visible','height':'auto','position':'static'});
- $('body').css({'overflow':'visible','height':'auto','padding-bottom':'45px'});
- $(window).scrollTop(nowScroll);
- }
- //js-total point-pay
- $("#ep_pay").click(function(){
- var conf = $(this).is(':checked');
- //var total = Number($(this).val());
- var total = Number($('#hidden_total').val());
- var user_money = Number($('.use_money').text());
- console.log(user_money);
- console.log(total);
- if(user_money >= total && conf == true){
- $('.point-pay').css('display','block');
- $('.pay_but').css('display','none');
- //return false;
- }else if(user_money >= total && conf == false){
- $('.point-pay').css('display','none');
- $('.pay_but').css('display','block');
- //return false;
- }
- if(user_money < total){
- var post_data = {orderNo:orderNo,user_money:user_money};
- if(conf == true){
- post_data.use = 1;
- }else{
- post_data.use = 0;
- }
- $.post('aaep_exchange.php?action=use_eb',post_data,function(re){
- if (re.error == 0) {
- $('#js-total').text(re.total);
- if(post_data.use == 1){
- $('#addeb').text( '-¥' +user_money);
- }else{
- $('#addeb').text('');
- }
- //$('#js-sub_total').text((re.total - postage).toFixed(2));
- }else{
- motify.log(re.msg);
- $("#ep_pay").attr("checked", false);
- }
- },'json');
- }
- });
- //var flag = true;
- $('#confirm-pay-way-opts .btn-pay').click(function(){
- if (!is_logistics && !is_selffetch) {
- motify.log('商家未设置配送方式,暂时不能购买');
- return;
- }
- /*if(flag == false){
- return;
- }*/
- var payType = $(this).data('pay-type');
- /*if(payType){
- flag = false;
- }*/
- var post_data = {payType:payType,orderNo:orderNo,msg:$('.js-msg-container').val()};
- if($('#address_id').size() > 0){
- if($('.js-tabber-self-fetch').hasClass('tag-orange')){
- var selffetch_id = $('#selffetch_id').val();
- var selffetch_name = $.trim($('.js-logistics-content .js-name').val());
- var selffetch_phone = $.trim($('.js-logistics-content .js-phone').val());
- if(parseInt(selffetch_id) < 1){
- motify.log('请选择自提点');
- return false;
- }else if(selffetch_name.length == 0){
- motify.log('请填写您的姓名');
- return false;
- }else if(!/^0[0-9\-]{10,13}$/.test(selffetch_phone) && !/^((\+86)|(86))?(1)\d{10}$/.test(selffetch_phone)){
- motify.log('请填写正确的联系方式');
- return false;
- }else{
- post_data.shipping_method = 'selffetch';
- post_data.selffetch_id = selffetch_id;
- post_data.selffetch_name = selffetch_name;
- post_data.selffetch_phone = selffetch_phone;
- post_data.selffetch_date = $('.js-logistics-content .js-time').eq(0).val();
- post_data.selffetch_time = $('.js-logistics-content .js-time').eq(1).val();
- }
- } else if ($(".js-tabber-friend").hasClass("tag-orange")) {
- var friend_name = $(".js-friend_name").val();
- var friend_phone = $(".js-friend_phone").val();
- var province = $("#friend_province").val();
- var city = $("#friend_city").val()
- var county = $("#friend_county").val();
- var friend_address = $(".js-friend_address").val();
- if (friend_name.length == 0) {
- motify.log("请填写朋友姓名");
- return false;
- }
- if(!/^0[0-9\-]{10,13}$/.test(friend_phone) && !/^((\+86)|(86))?(1)\d{10}$/.test(friend_phone)){
- motify.log("请填写正确的联系方式");
- return false;
- }
- if (province.length == 0) {
- motify.log("请选择省");
- return false;
- }
- if (city.length == 0) {
- motify.log("请选择城市");
- return false;
- }
- if (county.length == 0) {
- motify.log("请选择区县");
- return false;
- }
- if (friend_address.length == 0) {
- motify.log("请填写详细地址");
- return false;
- }
- if (friend_address.length < 10) {
- motify.log("详细地址不能少于10个字符");
- return false;
- }
- post_data.shipping_method = "friend";
- post_data.friend_name = friend_name;
- post_data.friend_phone = friend_phone;
- post_data.province = province;
- post_data.city = city;
- post_data.county = county;
- post_data.friend_address = friend_address;
- post_data.friend_date = $('.js-logistics-content .js-time').eq(0).val();
- post_data.friend_time = $('.js-logistics-content .js-time').eq(1).val();
- } else {
- if(parseInt($('#address_id').val()) < 1){
- motify.log('请选择收货地址');
- return false;
- }else{
- post_data.address_id = $('#address_id').val();
- }
- }
- }
- try {
- if ($(".js-user_coupon_input").length > 0) {
- var user_coupon_arr = [];
- $(".js-user_coupon_input").each(function () {
- if ($(this).prop("checked") && $(this).val() != "0") {
- user_coupon_arr.push($(this).val());
- }
- });
- post_data.user_coupon_id = user_coupon_arr;
- }
- /*if ($("input[name='user_coupon_id']").length > 0) {
- post_data.user_coupon_id = $("input[name='user_coupon_id']:checked").val();
- }*/
- } catch(e) {
- }
- post_data.postage_list = $("input[name='postage_list']").val();
- var loadingCon = $('<div id="vv1" style="overflow:hidden;visibility:visible;position:absolute;z-index:1100;transition:opacity 300ms ease;-webkit-transition:opacity 300ms ease;opacity:1;top:'+(($(window).height()-100)/2)+'px;left:'+(($(window).width()-200)/2)+'px;"><div class="loader-container"><div class="loader center">处理中</div></div></div>');
- var loadingBg = $('<div id="vv2" style="height:100%;position:fixed;top:0px;left:0px;right:0px;z-index:1000;opacity:1;transition:opacity 0.2s ease;-webkit-transition:opacity 0.2s ease;background-color:rgba(0,0,0,0.901961);"></div>');
- $('html').css({'position':'relative','overflow':'hidden','height':$(window).height()+'px'});
- $('body').css({'overflow':'hidden','height':$(window).height()+'px','padding':'0px'}).append(loadingCon).append(loadingBg);
- nowScroll = $(window).scrollTop();
- //本地测试使用
- if (payType == 'test') {
- is_have_pass();
- $.post('saveorder.php?action=test_pay',post_data,function(result){
- if (result.error == 0) {
- ep.pass({
- titel:'请输入支付密码',
- pay_title:'余额',
- total:result.data.pay_money,
- trade_no:result.data.trade_no,
- orderNo:result.data.orderNo,
- paytype:'test',
- });
- //console.log(result.err_code);
- //window.location.href = result.err_msg;
- } else {
- motify.log(result.err_msg);
- }
- },'json');
- return false;
- }
- if (payType == 'eb_pay') {
- //console.log(post_data);
- is_have_pass();
- $.post('saveorder.php?action=eb_pay',post_data,function(result){
- if (result.error == 0) {
- ep.pass({
- titel:'请输入支付密码',
- pay_title:'E币',
- total:result.data.pay_money,
- trade_no:result.data.trade_no,
- orderNo:result.data.orderNo,
- paytype:'eb_pay',
- });
- //window.location.href = result.err_msg;
- } else {
- motify.log(result.err_msg);
- }
- },'json');
- //console.log(result.err_code);
- return false;
- }
- if ($(this).hasClass('go-pay')) {
- $.post('saveorder.php?action=go_pay',post_data,function(result){
- if (!result.err_code) {
- window.location.href = result.err_msg;
- } else {
- motify.log(result.err_msg);
- }
- })
- return true;
- }
- if(!is_weixin){
- post_data.is_app = true;
- }
- console.log(post_data);
- $.post('saveorder.php?action=pay',post_data,function(result){
- payShowAfter();
- loadingBg.css('opacity',0);
- setTimeout(function(){
- loadingCon.remove();loadingBg.remove();
- },200);
- console.log(result);
- if(typeof(result) == 'object'){
- if(result.err_code == 0){
- if(is_kingkr_obj()){
- //var payinfo_data = '"'+JSON.stringify(result.err_msg)+'"';
- //alert(result.err_msg);
- payTypeApp(JSON.stringify(result.err_msg),'WEIXIN','payResult');
- }else if(payType == 'weixin' && window.WeixinJSBridge){
- window.WeixinJSBridge.invoke("getBrandWCPayRequest",result.err_msg,function(res){
- //WeixinJSBridge.log(res.err_msg);
- //alert(JSON.stringify(res));
- if(res.err_msg=="get_brand_wcpay_request:ok"){
- audioapi();
- setTimeout(function(){
- window.location.href = './order.php?orderno='+orderNo;
- },3000)
- }else{
- if(res.err_msg == "get_brand_wcpay_request:cancel"){
- var err_msg = "您取消了微信支付";
- }else if(res.err_code == 3){
- var err_msg = "您正在进行跨号支付<br/>正在为您转入扫码支付......";
- }else if(res.err_msg == "get_brand_wcpay_request:fail"){
- if(res.err_desc.substring(0,6) == '商户系统错误'){
- motify1.ewm(orderNo);
- return;
- }else{
- var err_msg = "微信支付失败<br/>错误信息:"+res.err_desc;
- }
- }else{
- var err_msg = res.err_msg +"<br/>"+res.err_desc;
- }
- //motify.log(err_msg);
- if(res.err_code == 3){
- wx_qrcode_pay(post_data);
- }
- }
- });
- }else{
- window.location.href = result.err_msg;
- }
- }else{
- if(result.err_code == 1008){
- motify.log("此订单为货到付款,现在无须支付");
- window.location.href = result.err_msg;
- return;
- }
- motify.log(result.err_msg);
- if(result.err_code == 1007){
- window.location.href = './order.php?orderno='+orderNo;
- }
- }
- }else{
- motify.log(result.err_msg);
- // motify.log('访问异常,请重试');
- }
- });
- /*setTimeout(function(){
- flag = true;
- },3000);*/
- });
- // 更改优惠券
- $(".js-user_coupon_input").click(function () {
- var user_coupon = 0;
- $(".js-user_coupon_input").each(function () {
- if ($(this).prop("checked")) {
- var coupon = parseFloat($(this).closest("p").find("span").html());
- user_coupon += coupon;
- }
- });
- if ($("#js-user_coupon").length > 0) {
- $("#js-user_coupon").html(user_coupon.toFixed(2));
- }
- resetPrice();
- });
- if ($(".js-logistics-select .js-tabber-self-fetch").size() > 0) {
- if (is_selffetch) {
- getLocation();
- }
- }
- });
- function wx_qrcode_pay(post_data){
- $.post('saveorder.php?action=pay&qrcode_pay=1',post_data,function(result){
- if(result.err_code == 0){
- $('#pay-qrcode').attr('src',result.err_msg);
- $('#confirm-pay-way-opts').css('display','none');
- $('#confirm-qrcode-pay').css('display','block');
- }
- });
- }
- function resetPrice() {
- var postage1 = parseFloat($("#js-postage").html());
- var sub_total = parseFloat($("#js-sub_total").html());
- var reward = 0;
- var user_coupon = 0;
- var float_amount = 0;
- var discount_money = 0;
- if ($("#js-reward").length > 0) {
- reward = parseFloat($("#js-reward").html());
- }
- if ($("#js-user_coupon").length > 0) {
- user_coupon = parseFloat($("#js-user_coupon").html());
- }
- if ($("#js-float_amount").length > 0) {
- float_amount = parseFloat($("#js-float_amount").html());
- }
- if ($("#js-discount_money").length > 0) {
- discount_money = parseFloat($("#js-discount_money").html())
- }
- var money = sub_total + postage1 - reward - user_coupon - float_amount - discount_money - eb_balace;
- if (money < 0) {
- money = 0;
- }
- $('#hidden_total').val(money.toFixed(2));
- $("#js-total").html(money.toFixed(2));
- }
- var long = 0;
- var lat = 0;
- function getLocation() {
- var options = {
- enableHighAccuracy:true,
- maximumAge:1000
- }
- if(navigator.geolocation) {
- //浏览器支持geolocation
- navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
- } else {
- //浏览器不支持geolocation
- }
- }
- //成功时
- function onSuccess(position){
- long = position.coords.longitude;
- lat = position.coords.latitude;
- }
- //失败时
- function onError(error) {
- }
- function getFlatternDistance(lat1,lng1,lat2,lng2){
- lat1 = parseFloat(lat1);
- lng1 = parseFloat(lng1);
- lat2 = parseFloat(lat2);
- lng2 = parseFloat(lng2);
- var f = getRad((lat1 + lat2)/2);
- var g = getRad((lat1 - lat2)/2);
- var l = getRad((lng1 - lng2)/2);
- var sg = Math.sin(g);
- var sl = Math.sin(l);
- var sf = Math.sin(f);
- var s,c,w,r,d,h1,h2;
- var a = EARTH_RADIUS;
- var fl = 1/298.257;
- sg = sg*sg;
- sl = sl*sl;
- sf = sf*sf;
- s = sg*(1-sl) + (1-sf)*sl;
- c = (1-sg)*(1-sl) + sf*sl;
- w = Math.atan(Math.sqrt(s/c));
- r = Math.sqrt(s*c)/w;
- d = 2*w*a;
- h1 = (3*r -1)/2/c;
- h2 = (3*r +1)/2/s;
- return d*(1 + fl*(h1*sf*(1-sg) - h2*(1-sf)*sg));
- }
- /*获取位置距离*/
- var EARTH_RADIUS = 6378137.0; //单位M
- var PI = Math.PI;
- function getRad(d) {
- return d*PI/180.0;
- }
- function is_have_pass(){
- $.post('aaep_exchange.php?action=check_password', {pass: 'check'}, function(re) {
- if(re.error == 0){
- return true;
- }else{
- window.location.href = "aaep_exchange.php?action=add_password";
- }
- },'json');
- }
- function backs(){
- nowScroll = $(window).scrollTop();
- $('html').css({'overflow':'visible','height':'auto','position':'static'});
- $('body').css({'overflow':'visible','height':'auto','padding-bottom':'45px'});
- $(window).scrollTop(nowScroll);
- $('#vv2').css('opacity',0);
- $('#vv1').remove();
- $('#vv2').remove();
- $('.motify_pass').remove();
- }
- var ep = {
- pass:function(msg){
- console.log(msg);
- if(msg.paytype == 'test'){
- use_eb_value = 1;
- var tp = '余额支付'+(msg.total)*use_eb_value+'元';
- }else{
- var tp = (msg.total)*use_eb_value;
- }
- $('body').append('<div class="motify_pass" style="display:block;background:#36b9fb;"><div class="motify-inner_pass"><a href="javascript:;" onclick="backs()" class="back-pay">X</a><font style="color:#FFF">'+msg.titel+'</font></div><div class="motify_input_pass"><div class="pay_title"><p style="width:90%; border-bottom:1px solid #f1f1f1; padding-bottom:10px; margin-left:5%"><span style="display:block; padding:10px 0 5px 0; font-size:12px;">消费使用E币</span><span style="font-size:24px; font-weight:600;">Ѥ'+tp+'</span></p></div><input type="password" class="mui-input-password" id="pass" placeholder="输入支付密码" style="width:66%;height:35px;border:1px solid #e5e5e5;border-radius:3%;margin-left:3%" autofocus="autofocus"/><a href="javascript:;" class="btn btn-block" id="pay" data-trade_no="'+msg.trade_no+'" data-total="'+msg.total+'" data-order_no="'+ msg.orderNo +'" data-paytype="'+ msg.paytype +'" onclick="pay_pass(this)" style="background: #fff;color:#000;line-height: 12px; height:35px; margin-top:3px;font-size:12px">支付</a></div ><div class="motify_btn"></div></div>');
- },
- addpass:function(data){
- }
- };
- function pay_pass(obj){
- var pass = document.getElementById('pass').value;
- console.log(pass);
- // return false;
- if(pass == ''){
- motify.log('密码不能为空');return false;
- }
- $(obj).text('支付中')
- $(obj).attr("disabled","disabled");
- // return false;
- var paytype = $(obj).data('paytype');
- var data = {pay_type:paytype,pay_password: pass}
- data.trade_no = $(obj).data('trade_no');
- data.pay_money = $(obj).data('total');
- data.orderNo = $(obj).data('order_no');
- $.post('aaep_exchange.php?action=pay_pass', data, function(re) {
- console.log(re);
- if(re.error == 0){
- audioapi();
- setTimeout(function() {
- motify.log(re.msg);
- },500);
- setTimeout(function() {
- window.location.href = re.url;
- },2000);
- }else if(re.error == 1){
- $(obj).text('支付')
- $(obj).attr("disabled",false);
- motify.log(re.msg);return false;
- }else{
- motify.log(re.msg);return false;
- }
- },'json');
- //console.log(JSON.parse(data));
- }
- function audioapi(){
- var name = 1;
- ws = new WebSocket("wss://tui.51ao.com:443");
- ws.onopen = function () {
- var sends = {
- procotol: 'p2p',
- name: name,
- to: toUserId,
- msg: '语音播报'
- };
- ws.send(JSON.stringify(sends));
- }
- $.post('/user.php?c=chrome&a=pash_message',{order_no:orderNo},function(){})
- }
- function payResult(r) {
- if(r == 0){
- motify.log('支付成功');
- audioapi();
- setTimeout(function(){
- window.location.href = './order.php?orderno='+orderNo;
- },3000)
- }else{
- motify.log('支付失败');
- audioapi();
- setTimeout(function(){
- window.location.href = './order.php?orderno='+orderNo;
- },3000)
- }
- }
-
pavnotice.php文件
- <?php
- /**
- * 支付异步通知
- */
- require_once dirname(__FILE__) . '/global.php';
- /*/$payinfo = '<xml><appid><![CDATA[wxbb354c810c07bcd8]]></appid>
- <bank_type><![CDATA[CFT]]></bank_type>
- <cash_fee><![CDATA[1]]></cash_fee>
- <fee_type><![CDATA[CNY]]></fee_type>
- <is_subscribe><![CDATA[N]]></is_subscribe>
- <mch_id><![CDATA[1439024602]]></mch_id>
- <nonce_str><![CDATA[BBLuiXNmjZxLh4JyyFvi5vCILDH2PaoR]]></nonce_str>
- <openid><![CDATA[ob_bdwL5XuIbldXwjVzphG56SPzg]]></openid>
- <out_trade_no><![CDATA[20180817115335574966]]></out_trade_no>
- <result_code><![CDATA[SUCCESS]]></result_code>
- <return_code><![CDATA[SUCCESS]]></return_code>
- <sign><![CDATA[9FD35DCE58C54253063144525D25B3AD]]></sign>
- <time_end><![CDATA[20180817115342]]></time_end>
- <total_fee>1</total_fee>
- <trade_type><![CDATA[APP]]></trade_type>
- <transaction_id><![CDATA[4200000178201808171055789366]]></transaction_id>
- </xml>';*/
- $payType = isset($_REQUEST['pay_type']) ? $_REQUEST['pay_type'] : (isset($_REQUEST['attach']) ? $_REQUEST['attach'] : 'weixin');
- //file_put_contents('./app_payin.txt', file_get_contents('php://input'));
- // 支付宝支付
- if ($_POST['app_id'] == '2018012902101926') {
- $payType = 'alipay';
- }
- $payMethodList = M('Config')->getPlatformPayMethod(true);
- $payMethodList['test'] = '测试支付';
- $payMethodList['eb_pay'] = 'E币支付';
- if (empty($payMethodList[$payType]) && $payType != 'alipay' && $payType != 'weixin') {
- json_return(1009, '您选择的支付方式不存在<br/>请更新支付方式');
- }
- if ($payType == 'weixi_peerpay') {
- if (empty($payMethodList['weixin'])) {
- json_return(1009, '您选择的支付方式不存在<br/>请更新支付方式');
- }
- } else if ($payType == 'weixin') {
- if (empty($payMethodList['weixin']) && empty($payMethodList['platform_weixin'])) {
- json_return(1009, '您选择的支付方式不存在<br/>请更新支付方式');
- }
- } else if ($payType == 'alipay') {
- if (empty($payMethodList[$payType]) && empty($payMethodList['platform_alipay'])) {
- json_return(1009, '您选择的支付方式不存在<br/>请更新支付方式alipay');
- }
- } else {
- if (empty($payMethodList[$payType])) {
- json_return(1009, '您选择的支付方式不存在<br/>请更新支付方式');
- }
- }
- if ($payType == 'yeepay') {
- import('source.class.pay.Yeepay');
- $payClass = new Yeepay(array(), $payMethodList[$payType]['config'], $wap_user);
- $payInfo = $payClass->notice();
- pay_notice_call($payInfo);
- } else if ($payType == 'tenpay') {
- import('source.class.pay.Tenpay');
- $payClass = new Tenpay(array(), $payMethodList[$payType]['config'], $wap_user);
- $payInfo = $payClass->notice();
- pay_notice_call($payInfo);
- } else if ($payType == 'test') { //测试支付 正式环境中需删除
- $payInfo = array();
- $payInfo['order_param']['trade_no'] = $_REQUEST['trade_no'];
- $payInfo['order_param']['third_id'] = date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(1000000000, 9999999999);
- $payInfo['order_param']['pay_money'] = $_REQUEST['pay_money'];
- $payInfo['order_param']['pay_type'] = $_REQUEST['pay_type'];
- $payInfo['err_code'] = 0;
- pay_notice_call($payInfo);
- }else if($payType == 'eb_pay'){
- $payInfo = array();
- $payInfo['order_param']['trade_no'] = $_REQUEST['trade_no'];
- $payInfo['order_param']['third_id'] = date('YmdHis', $_SERVER['REQUEST_TIME']) . mt_rand(1000000000, 9999999999);
- $payInfo['order_param']['pay_money'] = $_REQUEST['pay_money'];
- $payInfo['order_param']['pay_type'] = $_REQUEST['pay_type'];
- $payInfo['err_code'] = 0;
- pay_notice_call($payInfo);
- } else if ($payType == 'weixin_peerpay') {
- import('source.class.pay.Weixin');
- $payClass = new Weixin(array(), $payMethodList['weixin']['config'], $wap_user, '');
- $payInfo = $payClass->notice();
- // D('Aaep_api_log')->data(['type'=>'ceshi','time'=>time(),'content'=>'weixindaifu'])->add();
- // file_put_contents('./peerpay.txt',json_encode($payInfo));
- if ($payInfo['err_code'] === 0) {
- peerpay_notice_call($payInfo, $payInfo['echo_content']);
- } else {
- peerpay_notice_call($payInfo);
- }
- } else if ($payType == 'alipay') {
- import('source.class.Alipay');
- $payClass = new Alipay();
- $payInfo = $payClass->notice($_POST);
- pay_notice_call($payInfo);
- } else if ($payType == 'allinpay') {
- $payConfig = $payMethodList['allinpay']['config'];
- foreach($payConfig as $key_config => $item_config){
- $count_arrs = explode(',', $item_config);
- if(count($count_arrs)>1){
- $payConfig[$key_config] = $count_arrs[1];
- }else{
- $payConfig[$key_config] = $count_arrs[0];
- }
- }
- $pay_config['pay_allinpay_merchantid'] = $payConfig['pay_allinpay_merchantid'];
- $pay_config['pay_allinpay_merchantkey'] = $payConfig['pay_allinpay_merchantkey'];
- import('source.class.pay.Allinpay');
- $payClass = new Allinpay(array(), $pay_config, $wap_user);
- $payInfo = $payClass->return_url();
- pay_notice_call($payInfo);
- //}else if ($payType == 'weixin') {
- }else if (!empty(file_get_contents('php://input'))) {
- // 对返回的数据进处理,判断是否是从APP支付
- file_put_contents('./12.txt', file_get_contents('php://input'));//
- $xml = file_get_contents('php://input');
if($array_data['trade_type'] == 'pay.weixin.jspay' || $array_data['trade_type'] == 'pay.alipay.jspay' || $array_data['trade_type'] == 'pay.weixin.native'){
//验签
file_put_contents('./2.txt', file_get_contents('php://input'));
if($array_data['status'] == 0 && $array_data['result_code'] == 0){
//获取商家的支付密钥
$orderinfo = D('Order')->where(['trade_no'=>$array_data['out_trade_no']])->find();
$storeinfo = D('Store')->field('pay_secret,pay_public_key')->where(['store_id'=>$orderinfo['store_id']])->find();
//md5验签
if( $array_data['sign_type'] != 'RSA_1_256'){
$sign=$array_data['sign'];
unset($array_data['sign']);
ksort($array_data);
$string='';
foreach($array_data as $k=>$v){
$string.="$k=$v&";
}
$string.='key='.$storeinfo['pay_secret'];
$newsign = strtoupper(md5($string));
if($sign!=$newsign){
logs('验签结果',$sign.'--'.$newsign);
json_return(10001, '验签不正确');
}
}else if($array_data['sign_type'] == 'RSA_1_256'){//rsa验签
if(!verifyRSASign($array_data,$storeinfo['pay_public_key'])){
logs('验签结果','验签失败'.$orderinfo['order_id']);
json_return(10001, '验签不正确');
}
}
$payInfo = array();
$payInfo['order_param']['trade_no'] = $array_data['out_trade_no'];
$payInfo['order_param']['third_id'] = $array_data['transaction_id'];//第三方
$payInfo['order_param']['pay_money'] = $array_data['total_fee']/100;
if($array_data['trade_type'] == 'pay.weixin.jspay' || $array_data['trade_type'] == 'pay.weixin.native'){ - $array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
- $payInfo['order_param']['pay_type'] = 'weixin';
- }else{
- $payInfo['order_param']['pay_type'] = 'alipay';
- }
- $payInfo['order_param']['third_data'] = $array_data;
- $payInfo['err_code'] = 0;
- //file_put_contents('./lala.txt', json_encode($payInfo['order_param']));
- pay_notice_call($payInfo);
- }
- }else{
- $pay_method = $payMethodList[$payType]['config'];
- if ($array_data['trade_type'] == 'APP') {
- //$pay_method = $payMethodList['weixinapp']['config'];
- $pay_method['pay_weixin_appid'] = option('config.pay_weixin_app_appid');
- $pay_method['pay_weixin_mchid'] = option('config.pay_weixin_app_mchid');
- $pay_method['pay_weixin_key'] = option('config.pay_weixin_app_key');
- }
- if (strpos($array_data['out_trade_no'], 'PMPAY') !== FALSE) {
- $pay_method['pay_weixin_appid'] = option('config.platform_weixin_appid');
- $pay_method['pay_weixin_mchid'] = option('config.platform_weixin_mchid');
- $pay_method['pay_weixin_key'] = option('config.platform_weixin_key');
- }
- import('source.class.pay.Weixin');
- //dump($pay_method);
- $payClass = new Weixin(array(), $pay_method, $wap_user, '');
- $payInfo = $payClass->notice($xml);
- if ($array_data['trade_type'] == 'APP') {
- $payInfo['trade_type_app'] = 'APP';
- }
- if ($payInfo['err_code'] === 0) {
- $trade_no = $payInfo['order_param']['trade_no'];
- // D('Aaep_api_log')->data(['type'=>'ceshi1','time'=>time(),'content'=>$trade_no])->add();
- if (strpos($trade_no, 'PEERPAY') !== FALSE) {
- peerpay_notice_call($payInfo, $payInfo['echo_content']);
- } elseif (strpos($trade_no, 'SMSPAY') !== FALSE) {
- smspay_notice_call($payInfo, $payInfo['echo_content']);
- } elseif(strpos($trade_no, 'ZCPAY') !==FALSE){
- zcpay_notice_call($payInfo, $payInfo['echo_content']);
- } elseif(strpos($trade_no, 'DBPAY') !==FALSE){
- dbpay_notice_call($payInfo, $payInfo['echo_content']);
- } elseif (strpos($array_data['out_trade_no'], 'PMPAY') !== FALSE) {
- pmp_notice_call($payInfo, $payInfo['echo_content']);
- } else {
- pay_notice_call($payInfo, $payInfo['echo_content']);
- }
- } else {
- pay_notice_call($payInfo);
- }
- }
- }
- //威富通rsa验签
- function verifyRSASign($array_data,$pay_public_key) {
- $signPars = "";
- ksort($array_data);
- foreach($array_data as $k => $v) {
- if("sign" != $k && "" != $v) {
- $signPars .= $k . "=" . $v . "&";
- }
- }
- $signPars = substr($signPars, 0, strlen($signPars) - 1);
- $res = openssl_get_publickey($pay_public_key);
- $result = (bool)openssl_verify($signPars, base64_decode($array_data['sign']), $res, OPENSSL_ALGO_SHA256);
- openssl_free_key($res);
- return $result;
- }
- //对接签名
- function getSign($data, $salt)
- {
- foreach ($data as $key => $value) {
- if (is_array($value)) {
- $validate[$key] = getSign($value, $salt);
- } else {
- $validate[$key] = $value;
- }
- }
- $validate['salt'] = $salt;
- sort($validate, SORT_STRING);
- return sha1(implode($validate));
- }
- function peerpay_notice_call($payInfo, $ok_msg = 'success', $err_msg = 'fail')
- {
- if ($payInfo['err_code'] === 0) {
- $where = array();
- $where['peerpay_no'] = $payInfo['order_param']['trade_no'];
- $order_peerpay = D('Order_peerpay')->where($where)->find();
- if ($order_peerpay && $order_peerpay['status'] == '0') {
- $data = array();
- $data['pay_dateline'] = time();
- $data['third_id'] = $payInfo['order_param']['third_id'];
- $data['third_data'] = serialize($payInfo['order_param']['third_data']);
- $data['status'] = 1;
- $result = D('Order_peerpay')->where($where)->data($data)->save();
- if ($result) {
- // 查看是否支付完成,支付完成更改总订状态
- $pay_money = M('Order_peerpay')->sumMoney($order_peerpay['order_id']);
- $order = D('Order')->where(array('order_id' => $order_peerpay['order_id']))->find();
- // D('Aaep_api_log')->data(['type'=>'ceshi4','time'=>time(),'content'=>'weixindaifu4'])->add();
- if (!empty($order) && $order['total'] <= $pay_money) {
- $trade_no = date('YmdHis') . mt_rand(100000, 999999);
- D('Order')->where(array('order_id' => $order_peerpay['order_id']))->data(array('trade_no' => $trade_no))->save();
- // 更改订单状态
- $order_info = array();
- $order_info['order_param']['trade_no'] = $trade_no;
- $order_info['order_param']['pay_type'] = 'peerpay';
- $order_info['order_param']['pay_money'] = $order['total'];
- $order_info['order_param']['third_id'] = $payInfo['order_param']['third_id'];
- $order_info['err_code'] = 0;
- pay_notice_call($order_info);
- }
- exit($ok_msg);
- } else {
- exit($err_msg);
- }
- } else {
- exit($err_msg);
- }
- } else {
- exit($ok_msg);
- }
- }
- // 众筹支付回调
- function zcpay_notice_call($payInfo, $ok_msg = 'success', $err_msg = 'fail'){
- if ($payInfo['err_code'] === 0) {
- $data_order = $where_order = $data = $where = array();
- $where['trade_no'] = $payInfo['order_param']['trade_no'];
- $order = D('Invest_order')->where($where)->find();
- if($order['order_type'] == 1){
- if (!empty($order) && $order['status'] == '1') {
- $data['pay_time'] = $_SERVER['REQUEST_TIME'];
- $data['third_id'] = $payInfo['order_param']['third_id'];
- $data['third_data'] = serialize($payInfo['order_param']['third_data']);
- $data['pay_openid'] = $payInfo['order_param']['third_data']['openid'];
- $data['status'] = '2';
- $effid = D('Invest_order')->where($where)->data($data)->save();
- if (!empty($effid)) {
- $where_order['project_id']=$order['project_id'];
- $where_order['status']='2';
- $proList=D('Invest_order')->where($where_order)->select();
- $all_intention_amount = 0 ;
- $maxShareholder = $minShareholder = 0;
- if(!empty($proList)){
- foreach ($proList as $k => $v) {
- $all_intention_amount += $v['intention_amount'];
- if($v['type']==2){
- $maxShareholder++;
- }
- if($v['type']==1){
- $minShareholder++;
- }
- }
- }
- $data_order = 'collect='.$all_intention_amount.',invest_number=invest_number+1';
- D('Project')->where(array('project_id'=>$order['project_id']))->data($data_order)->save();
- exit($ok_msg);
- } else {
- exit($err_msg);
- }
- } else {
- exit($err_msg);
- }
- } else{
- if (!empty($order) && $order['order_status'] == '1') {
- $data['extract_number'] = time().mt_rand(100000,999999);
- $data['pay_time'] = $_SERVER['REQUEST_TIME'];
- $data['third_id'] = $payInfo['order_param']['third_id'];
- $data['third_data'] = serialize($payInfo['order_param']['third_data']);
- $data['pay_openid'] = $payInfo['order_param']['third_data']['openid'];
- $data['order_status'] = '2';
- $effid = D('Invest_order')->where($where)->data($data)->save();
- if (!empty($effid)) {
- $databases_zc_product = D('Zc_product');
- $productInfo = $databases_zc_product->where(array('product_id'=>$order['project_id']))->find();
- $people_number = $productInfo['people_number']+1;
- $collect = $productInfo['collect']+$order['pay_money'];
- $pInfo = $databases_zc_product->where(array('product_id'=>$order['project_id']))->data(array('people_number'=>$people_number,'collect'=>$collect))->save();
- D('Zc_product_repay')->where(array('repay_id'=>$order['repay_id']))->data('`collect_nub` = `collect_nub`+1')->save();
- exit($ok_msg);
- } else {
- exit($err_msg);
- }
- } else {
- exit($err_msg);
- }
- }
- } else {
- exit($err_msg);
- }
- }
- // 夺宝活动支付回调
- function dbpay_notice_call($payInfo, $ok_msg = 'success', $err_msg = 'fail') {
- if ($payInfo['err_code'] === 0) {
- $where = array();
- $where['trade_no'] = $payInfo['order_param']['trade_no'];
- $unitary_order = D('Unitary_order')->where($where)->find();
- $data['paytime'] = time();
- $data['third_id'] = $payInfo['order_param']['third_id'];
- $data['third_data'] = serialize($payInfo['order_param']['third_data']);
- $data['pay_openid'] = $payInfo['order_param']['third_data']['openid'];
- $data['paid'] = 1;
- $data['total'] = $payInfo['order_param']['pay_money'];
- $data['paytype'] = $payInfo['order_param']['pay_type'];
- // $data['addtime'] = 0;
- $result = D('Unitary_order')->where($where)->data($data)->save();
- if ($result) {
- // 更新活动表的订单信息
- // $return_url = option('config.site_url').'/webapp.php?c=unitary&a=dobuy&orderid='.$unitary_order['orderid'];
- // redirect($return_url);
- exit($ok_msg);
- } else {
- exit($err_msg);
- }
- } else {
- exit($ok_msg);
- }
- }
- //短信支付回调
- function smspay_notice_call($payInfo, $ok_msg = 'success', $err_msg = 'fail') {
- if ($payInfo['err_code'] === 0) {
- $where = array();
- // $where['trade_no'] = $payInfo['order_param']['trade_no'];
- $where['sms_pay_no'] = $payInfo['order_param']['trade_no'];
- /* file_put_contents('./221.txt',json_encode($where));
- file_put_contents('./222.txt',json_encode($payInfo));*/
- $order_sms = D('Order_sms')->where($where)->find();
- // file_put_contents('./121.txt',json_encode($order_sms));
- if ($order_sms && $order_sms['status'] == '0') {
- $data = array();
- $data['pay_dateline'] = time();
- $data['third_id'] = $payInfo['order_param']['third_id'];
- $data['third_data'] = serialize($payInfo['order_param']['third_data']);
- $data['pay_openid'] = $payInfo['order_param']['third_data']['openid'];
- $data['status'] = 1;
- // file_put_contents('./12.txt',json_encode($data));
- $result = D('Order_sms')->where($where)->data($data)->save();
- // file_put_contents('./11.txt',json_encode($result));
- if ($result) {
- $user_data = "smscount=smscount+" . $order_sms['sms_num'];
- $uid = $order_sms['uid'];
- $a = D('User')->where(array('uid' => $uid))->data($user_data)->save();
- // file_put_contents('./111.txt',json_encode($a));
- exit($ok_msg);
- } else {
- exit($err_msg);
- }
- } else {
- exit($err_msg);
- }
- } else {
- exit($ok_msg);
- }
- }
- // 平台保证金支付回调
- function pmp_notice_call($payInfo, $ok_msg = 'sucess', $err_msg = 'fail') {
- global $payType;
- if ($payInfo['err_code'] === 0) {
- $trade_no_arr = explode('_', $payInfo['order_param']['trade_no']);
- $where = array();
- if ($payType == 'alipay') {
- $where['order_no'] = ltrim($trade_no_arr[0], 'PMPAY');
- } else {
- $where['trade_no'] = ltrim($trade_no_arr[count($trade_no_arr) - 1], 'PMPAY');
- }
- $platform_margin_log = D('Platform_margin_log')->where($where)->find();
- if ($platform_margin_log && $platform_margin_log['status'] != '2') {
- Margin::init($platform_margin_log['store_id']);
- Margin::recharge($platform_margin_log['order_no'], $payInfo['order_param']['third_id'], $payInfo['order_param']['pay_money'], $payInfo['order_param']['pay_type'], 2);
- exit($ok_msg);
- } else {
- exit($err_msg);
- }
- } else {
- exit($ok_msg);
- }
- }
- function pay_notice_call($payInfo, $ok_msg = 'success', $err_msg = 'fail') {
- if ($payInfo['err_code'] === 0) {
- D('Aaep_api_log')->data(['type'=>'回调数据','time'=>date('YmdHis'),'content'=>json_encode($payInfo)])->add();
- import('source.class.OrderPay');
- $pay = new OrderPay();
- $result = $pay->pay_callback($payInfo['order_param']['trade_no'], $payInfo['order_param']['pay_money'], $payInfo['order_param']['pay_type'], $payInfo['order_param']['third_id'], $payInfo['order_param']['third_data']);
- D('Aaep_api_log')->data(['type'=>'回调结果','time'=>date('YmdHis'),'content'=>$result['err_msg']])->add();
- if (empty($result['err_code'])) {
- exit($ok_msg);
- } else {
- exit($result['err_msg']);
- }
- } else {
- exit($ok_msg);
- }
- }
- ?>
APP微信支付
猜你喜欢
转载自blog.csdn.net/xunhuanxiaogongzhu/article/details/81665184
今日推荐
周排行