Example #1
0
<?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']));
Example #2
0
 /**
  * 退款流程
  * 
  * @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;
 }