<?php /** * ECSHOP 接收js日志接口 * ============================================================================ * * 版权所有 2015-2015 南京蜂蚁网络科技有限公司,并保留所有权利。 * 网站地址: http://www.bestbeefresh.com; * ---------------------------------------------------------------------------- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。 * ============================================================================ * $Author: wanggaoyuan $ */ define('IN_ECTOUCH', true); define('INIT_NO_USERS', true); define('INIT_NO_SMARTY', true); require dirname(__FILE__) . '/include/init.php'; $type = trim($_REQUEST['type']); if (empty($type)) { exit; } insert_error_log($type, $_POST['info'], trim($_POST['file']));
/** * 退款流程 * * @param array $order_id * @param array $payment * @param decimal $refund_amount */ public function refund($order, $payment, $refund_amount = 0) { global $db, $ecs; //获取pay_log记录 $sql = "SELECT * FROM " . $ecs->table('pay_log') . " WHERE order_id = '{$order['order_id']}' AND pay_id = '{$order['pay_id']}' AND is_paid = 1 ORDER BY log_id DESC LIMIT 1"; $log = $db->getRow($sql); if (empty($log)) { return false; } $wxtk = read_config('wxtoken'); $payment = array_merge($payment, $wxtk); $amount = $refund_amount > 0 && $refund_amount < $log['order_amount'] ? $refund_amount : $log['order_amount']; $refund = array('appid' => $payment['appid'], 'mch_id' => $payment['wxpay_mchid'], 'op_user_id' => $payment['wxpay_mchid'], 'nonce_str' => rands(32), 'out_refund_no' => $order['order_sn'], 'out_trade_no' => $order['order_sn'], 'refund_fee' => $amount * 100, 'total_fee' => $log['order_amount'] * 100, 'transaction_id' => $log['outer_sn']); $refund['sign'] = $this->sign($refund, $payment['wxpay_key']); // 调用微信退款接口 require_once ROOT_PATH . 'include/cls_curl.php'; $curl = new Curl(array('server' => 'https://api.mch.weixin.qq.com', 'ssl_verify_peer' => FALSE)); $curl->option(CURLOPT_SSLCERTTYPE, 'PEM'); $curl->option(CURLOPT_SSLCERT, ROOT_PATH . '../data/cert/wxpay_cert.pem'); $curl->option(CURLOPT_SSLKEYTYPE, 'PEM'); $curl->option(CURLOPT_SSLKEY, ROOT_PATH . '../data/cert/wxpay_key.pem'); $xml = array2xml($refund); //echo htmlspecialchars($xml);exit; $response = $curl->post('secapi/pay/refund', $xml, 'xml'); // 检查错误 if ($response['return_code'] == 'FAIL' || $response['result_code'] == 'FAIL') { $response['paytype'] = 'wxpay'; $response['order_id'] = $order['order_id']; insert_error_log('refund', $response, __FILE__); return false; } //pay_log 插入退款记录 insert_pay_log($order['order_id'], $amount, $order['pay_id'], PAY_ORDER, 3); return true; }