public function act_paypalRefund() { //var_dump($_REQUEST);exit; $packinglists = GoodsModel::getMaterInfo(); // 获取全部包材记录 foreach ($packinglists as $packinglist) { $packings[$packinglist['id']]['pmName'] = $packinglist['pmName']; $packings[$packinglist['id']]['pmCost'] = $packinglist['pmCost']; } unset($packinglists); $carrierLists = CommonModel::getCarrierList(); // 获取全部运输方式 foreach ($carrierLists as $carrierList) { $carriers[$carrierList['id']] = $carrierList['carrierNameCn']; } unset($carrierLists); $channelLists = CommonModel::getAllChannelList(); // 获取全部运输方式下的渠道记录 foreach ($channelLists as $channelList) { $channels[$channelList['id']] = $channelList['channelName']; } unset($channelLists); // print_r($channels); // exit; $staffInfoLists = CommonModel::getStaffInfoList(); // 获取全部人员 foreach ($staffInfoLists as $staffInfoList) { $staffLists[$staffInfoList['global_user_id']] = $staffInfoList['global_user_name']; } unset($staffInfoLists); // print_r($packings); // exit; $accountLists = omAccountModel::accountAllList(); // 获取全部账号信息 foreach ($accountLists as $value) { $accounts[$value['id']] = $value['account']; // 账号id对应名称 } unset($accountLists); $time1 = time(); $start = strtotime($_REQUEST['start']); $end = strtotime($_REQUEST['end']); //$account = $_REQUEST ['account']; // $accountStr = ''; // if ($account != '') { // 组合成sql 中accountId In() 语句 // $account = explode ( "#", $account ); // foreach ( $account as $value ) { // if ($value != '') { // $accountStr .= " accountId='" . $value . "' or "; // } // } // } // $accountStr = substr ( $accountStr, 0, strlen ( $accountStr ) - 3 ); $accountStr = 1; $tNameUnShipped = 'om_unshipped_order'; // 未發貨订单表 $tNameOrderIdList = OrderInfoModel::getTNameOrderIdByTSA($tNameUnShipped, $start, $end, $accountStr); // print_r($tNameOrderIdList); // exit; $orderIdArr = array(); foreach ($tNameOrderIdList as $value) { $orderIdArr[] = $value['id']; } $orderIdStr = implode(',', $orderIdArr); if (empty($orderIdArr)) { $orderIdStr = 0; } $where = "WHERE id in({$orderIdStr})"; $shipOrderList = OrderindexModel::showOrderList($tNameUnShipped, $where); $start = strtotime($_REQUEST['start']); $end = strtotime($_REQUEST['end']); $fileName = "export_paypal_refund_" . date("Y-m-d_H_i_s") . ".xls"; $excel = new ExportDataExcel('browser', $fileName); $excel->initialize(); $excel->addRow(array('扫描日期', 'ebay store', '订单编号', '买家ID', '仓位号', '料号', '数量', '国家', '包裹总金额', '币种', '包装员', '退款原因', 'paypal', '备注', '退款日期', '空白', '退款金额', '物品总金额', '币种', '退款比例', '标记', '操作员', '统计员', '海外仓订单')); foreach ($shipOrderList as $key => $value) { // key代表最外层的维数 /* * $value分别有7个对应的键,分别为 orderData,//订单表头数据记录 orderExtenData,//订单表扩展数据记录 orderUserInfoData,//订单表中客户的数据记录 orderWhInfoData,//物料对订单进行操作的数据记录 orderNote,//订单的备注(销售人员添加)记录 orderTracknumber,//订单的追踪号记录 orderAudit,//订单明细审核记录 orderDetail //订单明细记录 */ $orderData = $value['orderData']; // 订单表头数据记录,为一维数组 $orderExtenData = $value['orderExtenData']; // 扩展表头数据记录,为一维数组 $orderUserInfoData = $value['orderUserInfoData']; // 订单客户数据记录,为一维数组 $orderWhInfoData = $value['orderWhInfoData']; // 物料对订单进行操作的数据记录,为一维数组 $orderNote = $value['orderNote']; // 订单备注记录,二维数组 $orderTracknumber = $value['orderTracknumber']; // 订单跟踪号,二维数组 $orderAudit = $value['orderAudit']; // 订单明细审核记录,二维数组 $orderDetail = $value['orderDetail']; // 订单明细记录,三维数组 $orderId = $orderData['id']; // ****订单编号 $ebay_id //*************获取退款信息 $refundInfo = OrderRefundModel::getOrderRefundList("*", " omOrderId='" . $orderId . "' "); $refundInfo = $refundInfo[0]; // $orderPaidtime = @date('Y-m-d', $orderData['paymentTime']); // ****订单付款时间 paidtime $orderUserInfoEmail = $orderUserInfoData['email']; // ****客户邮箱 emial $platformUsername = $orderExtenData['platformUsername']; // ****客户平台登录名称 $ebay_userid,用扩展表中的该字段 ebay_username $username = @html_entity_decode($orderUserInfoData['username'], ENT_QUOTES, 'UTF-8'); // ****客户真实名称(收件人) username $orderUserInfoStreet1 = @$orderUserInfoData['street']; // **** 街道地址 street1 $orderUserInfoStreet2 = @$orderUserInfoData['address2']; // *** 街道地址2 steet2(一般订单会有两个街道地址) $orderUserInfoCity = $orderUserInfoData['city']; // **** 市 city $orderUserInfoState = $orderUserInfoData['state']; // **** 州 state $orderUserInfoCountryName = $orderUserInfoData['countryName']; // **** 国家全名 // 客服部小霞提出 导出列 国家 显示英文 方便退款处理 // $cnname = $country[$countryname]; $orderUserInfoZip = $orderUserInfoData['zipCode']; // **** 邮编 zipCode $orderUserInfoTel = $orderUserInfoData['landline']; // **** 座机 landline $orderWhInfoActualShipping = $orderWhInfoData['actualShipping']; // ****实际运费,warehouse表中,ebay_shipfee $orderExtenFeedback = $orderExtenData['feedback']; // ****客户留言 ebay_note $OrderActualTotal = @round($orderData['actualTotal'], 2); // ****实际收款总价 $ebay_total $orderTracknumberOne = @$orderTracknumber[0]['tracknumber']; // ****追踪号,这里只读取记录数的第一条记录的追踪号 $ebay_tracknumber $accountName = @$accounts[$orderData['accountId']]; // ****账号名称 $ebay_account $orderRecordnumber = @$orderData['recordNumber']; // ****订单编码(对应平台上的编码) $recordnumber0 // $ebay_carrier = @$shipOrder['transportId'];//transportId ebay_carrier $orderUserInfoPhone = $orderUserInfoData['phone']; // ****客户手机号码 $ebay_phone $orderExtenCurrency = $orderExtenData['currency']; // ****币种 $ebay_currency $orderWhInfoPackersId = $orderWhInfoData['packersId']; // 包装人员Id $packinguser = $staffLists[$orderWhInfoPackersId]; // 对应包装人员姓名 // var_dump($packinguser); $OrderChannelId = $orderData['channelId']; // 渠道Id $channelId $orderCalcShipping = $orderData['calcShipping']; // 估算运费 $ordershipfee $orderExtenPayPalPaymentId = $orderExtenData['PayPalPaymentId']; // Paypal付款ID $ebay_ptid $orderExtenPayPalEmailAddress = $orderExtenData['PayPalEmailAddress']; // PayPal付款邮箱地址 $ebay_pp $isCopy = $orderData['isCopy']; // 默认为0为原始订单,1为被复制订单,2为复制订单 $isCopy = $isCopy == '0' ? '' : ($isCopy == '1' ? '被复制订单' : '复制订单'); // $ebay_noteb = $is_main_order==2 ? '复制 订单' : ($is_main_order==1 ? '被复制 订单' : ''); $isBuji = $orderData['isBuji']; // 是否补寄订单。默认0正常订单;1为被补寄的订单;2为补寄产生的新订单 $isBuji = $isBuji == '0' ? '' : ($isBuji == '1' ? '被补寄订单' : '补寄产生新订单'); // $isBuji = isset ($sendreplacement[$isBuji]) ? $sendreplacement[$isBuji] : ''; // $is_sendreplacement = $isBuji; $isSplit = $orderData['isSplit']; // 默认0正常订单;1为被拆分的订单;2为拆分产生的订单 $isSplit = $isSplit == '0' ? '' : ($isSplit == '1' ? '被拆分订单' : '拆分产生新订单'); // $ebay_splitorder $isCombinePackage = $orderData['combinePackage']; // 是否合并包裹。合并包裹状态,0为正常订单;1为合并包裹主订单;2为合并包裹子订单 $isCombinePackage = $isCombinePackage == '0' ? '' : ($isCombinePackage == '1' ? '合并包裹主订单' : '合并包裹子订单'); $OrderTransportId = $orderData['transportId']; // 运输方式Id $transportId $carrierName = $carriers[$OrderTransportId]; // 运输方式名称 $ebay_carrier $address = $orderUserInfoStreet1 . "\n" . $orderUserInfoStreet2 . "\n" . $orderUserInfoCity . "\n" . $orderUserInfoState . "\n" . $orderUserInfoZip . "\n" . $orderUserInfoCountryName; // 字段拼接成地址 $orderWhInfoWeighTime = date('Y-m-d', $orderWhInfoData['weighTime']); // 称重时间,亦可以当做发货时间 $scantime $OrderCalcWeight = $orderData['calcWeight']; // 估算重量,单位是kg $calculate_weight $orderWhInfoActualWeight = number_format($orderWhInfoData['actualWeight'] / 1000, 3); // 实际重量 $orderweight2 $totalweight = $orderWhInfoActualWeight; // 总重量 $mailway_c = $channels[$OrderChannelId]; // 根据运输管理系统的接口获取 $isContainCombineSku = CommonModel::judge_contain_combinesku($orderId); // $ebay_combineorder 判断订单是否包含组合料号,返回true or false if (count($orderDetail) == 1) { // 订单明细中只有一条记录时,订单中只有一种料号 $orderDetailTotalData = array_pop($orderDetail); // 取得orderDetail中的这条总记录数据,包括orderDetailData和orderDetailExtenData $orderDetailData = $orderDetailTotalData['orderDetailData']; // 明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtenData']; // 明细中的扩展数据 $orderDetailSku = $orderDetailData['sku']; // 该明细下的$sku $orderDetailExtenItemId = $orderDetailExtenData['itemId']; // itemId $ebay_itemid $orderDetailAmount = intval($orderDetailData['amount']); // $amount 该明细下的sku对应的数量 $orderDetailRecordnumber = $orderDetailData['recordNumber']; // 该明细对应平台的recordnumber $recordnumber $orderDetailItemPrice = round($orderDetailData['itemPrice'], 2) * $orderDetailAmount; // itemPrice(平台对应的销售单价)*对应数量 $ebay_itemprice $ebay_shipfee = round_num($OrderActualTotal - $orderDetailItemPrice, 2); // 订单总价-sku对应的总价得出运费,$ebay_shipfee $skus = GoodsModel::get_realskuinfo($orderDetailSku); // 获取该sku下对应的真实料号信息(包括料号转换及组合料号对应真实料号信息) $values_skus = array_values($skus); // 得到sku的数量 $goods_location = CommonModel::getPositionBySku($sku); // 仓位 $goodsInfo = GoodsModel::getSkuinfo($sku); // 获取真实sku的详细信息,包括采购名称和可用库存 $goods_cost = isset($goodsInfo['goodsCost']) ? round($goodsInfo['goodsCost'], 2) : 0; // 采购成本 $pmId = isset($goodsInfo['pmId']) ? $goodsInfo['pmId'] : ''; // 包材Id $ebay_packingmaterial = $packings[$pmId]['pmName']; // 包材名称 $ebay_packingCost = $packings[$pmId]['pmCost']; // 包材成本 $purchaseId = isset($goodsInfo['purchaseId']) ? $goodsInfo['purchaseId'] : ''; $cguser = $staffLists[$purchaseId]; // 采购名称 $combineSku = GoodsModel::getCombineSkuinfo($sku); // 判断该sku是否是组合料号,如果是返回combineSku,sku,count关系记录数据,不是则返回false if ($combineSku !== false) { // 为组合订单 $goods_costs = 0; $combine_weight_list = array(); $goods_costs_list = array(); foreach ($skus as $k => $v) { $goodsInfo2 = GoodsModel::getSkuinfo($k); $combine_weight_list[$k] = $amount * $v * $goodsInfo2['goodsWeight']; // 组合订单重量数组 $goods_costs_list[$k] = $amount * $v * $goodsInfo2['goodsCost']; // 货本数组 $goods_costs += $amount * $v * $goodsInfo2['goodsCost']; } $row = array($weighTime, $accountName, $orderRecordnumber, $platformUsername, '', '', $amount * array_sum($values_skus), $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $packinguser, $refundInfo['reason'], $refundInfo['paypalAccount'], $refundInfo['note'], $refundInfo['addTime'], '', $refundInfo['refundSum'], '', $refundInfo['currency'], '', '', '', '', ''); $excel->addRow($row); foreach ($skus as $k => $v) { $goodsInfo3 = GoodsModel::getSkuinfo($k); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $goods_location2 = CommonModel::getPositionBySku($k); // 仓位 $pmId = isset($goodsInfo3['pmId']) ? $goodsInfo3['pmId'] : ''; $ebay_packingmaterial = $packings[$pmId]['pmName']; $ebay_packingCost = $packings[$pmId]['pmCost']; $purchaseId = isset($goodsInfo3[0]['purchaseId']) ? $goodsInfo3[0]['purchaseId'] : ''; $cguser = $staffLists[$purchaseId]; // $iprice = round_num(($combine_weight_list[$k]/array_sum($combine_weight_list)) * $ebay_itemprice,2); //根据重量比产品价格 // $iprice = round_num(($goods_costs_list[$k]/array_sum($goods_costs_list)) * $ebay_itemprice,2); //根据货本比产品价格 // $ishipfee = round_num(($combine_weight_list[$k]/array_sum($combine_weight_list)) * $ebay_shipfee,2); //根据重量比ebay运费 $ishipfee = round_num($goods_costs_list[$k] / array_sum($goods_costs_list) * $ebay_shipfee, 2); // 根据货本比ebay运费 $iorderweight2 = round($combine_weight_list[$k] / array_sum($combine_weight_list) * $orderWhInfoActualWeight, 3); $iordershipfee = round_num($combine_weight_list[$k] / array_sum($combine_weight_list) * $orderCalcShipping, 2); $iprice = round_num(($goods_costs_list[$k] + $iordershipfee) / (array_sum($goods_costs_list) + $orderCalcShipping) * $ebay_itemprice, 2); // 根据货本比产品价格 last modified by herman.xi @20130916 $row = array($weighTime, $accountName, $orderRecordnumber, $platformUsername, '', $k, $amount * array_sum($values_skus), $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $packinguser, $refundInfo['reason'], $refundInfo['paypalAccount'], $refundInfo['note'], $refundInfo['addTime'], '', $refundInfo['refundSum'], '', $refundInfo['currency'], '', '', '', '', ''); $excel->addRow($row); } } else { // 非组合订单 $row = array($weighTime, $accountName, $orderRecordnumber, $platformUsername, '', $orderDetailSku, $amount * array_sum($values_skus), $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $packinguser, $refundInfo['reason'], $refundInfo['paypalAccount'], $refundInfo['note'], $refundInfo['addTime'], '', $refundInfo['refundSum'], '', $refundInfo['currency'], '', '', '', '', ''); $excel->addRow($row); } unset($combine_weight_list); unset($goods_costs_list); } else { // 订单详细记录>1 $cctotal = 0; $ebay_itemprice = 0; $goods_costs = 0; $goods_list = array(); $goods_lists = array(); $goods_weight_list = array(); $goods_costs_list = array(); $calculate_weight = 0; foreach ($orderDetail as $orderDetailTotalData) { // $orderDetailTotalData ,包括orderDetailData和orderDetailExtenData $orderDetailData = $orderDetailTotalData['orderDetailData']; // 明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtenData']; // 明细中的扩展数据 $detail_id = $orderDetailData['id']; $sku = $orderDetailData['sku']; $skus = GoodsModel::get_realskuinfo($sku); $_ebay_itemprice = round($orderDetailData['itemPrice'], 2); $ebay_itemprice += $orderDetailData['amount'] * $_ebay_itemprice; foreach ($skus as $k => $v) { $goodsInfo3 = GoodsModel::getSkuinfo($k); $_ebay_amount = intval($orderDetailData['amount'] * $v); $cctotal += $_ebay_amount; $calculate_weight += $_ebay_amount * $goodsInfo3['goodsWeight']; $goods_weight_list[$detail_id . $sku][$k] = $_ebay_amount * $goodsInfo3['goodsWeight']; $goods_costs_list[$detail_id . $sku][$k] = round($goodsInfo3['goodsCost'], 2) * $_ebay_amount; $goods_costs += round($goodsInfo3['goodsCost'], 2) * $_ebay_amount; } } // echo "---------$ebay_itemprice--------"; $ebay_shipfee = round_num($OrderActualTotal - $ebay_itemprice, 2); $row = array($weighTime, $accountName, $orderRecordnumber, $platformUsername, '', '', $amount * array_sum($values_skus), $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $packinguser, $refundInfo['reason'], $refundInfo['paypalAccount'], $refundInfo['note'], $refundInfo['addTime'], '', $refundInfo['refundSum'], '', $refundInfo['currency'], '', '', '', '', ''); $excel->addRow($row); foreach ($orderDetail as $orderDetailTotalData) { // $orderDetailTotalData ,包括orderDetailData和orderDetailExtenData $orderDetailData = $orderDetailTotalData['orderDetailData']; // 明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtenData']; // 明细中的扩展数据 $detail_id = $orderDetailData['id']; $skuDe = $orderDetailData['sku']; $recordnumber = $orderDetailData['recordNumber']; $orderDetailExtenItemId = $orderDetailExtenData['itemId']; // itemId $ebay_itemid // $ebay_itemid = $detail_array['ebay_itemid']; $amount = intval($orderDetailData['amount']); $dshipingfee = $orderDetailData['shippingFee']; $debay_itemprice = round($orderDetailData['itemPrice'], 2); $goods_location = CommonModel::getPositionBySku($skuDe); $goodsInfo3 = GoodsModel::getSkuinfo($skuDe); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $pmId = isset($goodsInfo3['pmId']) ? $goodsInfo3['pmId'] : 0; $ebay_packingmaterial = $packings[$pmId]['pmName']; $ebay_packingCost = $packings[$pmId]['pmCost']; $purchaseId = isset($goodsInfo3['purchaseId']) ? $goodsInfo3['purchaseId'] : ''; $cguser = $staffLists[$purchaseId]; $dordershipfee = round($orderCalcShipping * (array_sum($goods_weight_list[$detail_id . $skuDe]) / $calculate_weight), 2); $dorderweight2 = round($orderWhInfoActualWeight * (array_sum($goods_weight_list[$detail_id . $skuDe]) / $calculate_weight), 3); $combineSku = GoodsModel::getCombineSkuinfo($skuDe); // $is_combineSku = count($combineSku); if ($combineSku !== false) { // 为组合料号 $skus = GoodsModel::get_realskuinfo($skuDe); foreach ($skus as $k => $v) { $goods_location = CommonModel::getPositionBySku($k); $goodsInfo3 = GoodsModel::getSkuinfo($k); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $pmId = isset($goodsInfo3['pmId']) ? $goodsInfo3['pmId'] : ''; $ebay_packingmaterial = $packings[$pmId]['pmName']; $ebay_packingCost = $packings[$pmId]['pmCost']; $purchaseId = isset($goodsInfo3['purchaseId']) ? $goodsInfo3['purchaseId'] : ''; $cguser = $staffLists[$purchaseId]; // $iprice = round_num(($goods_costs_list[$detail_id.$k][$k]/array_sum($goods_costs_list[$detail_id.$k])) * $debay_itemprice * $amount,2); //根据货本比产品价格 $ishipfee = round_num($goods_costs_list[$detail_id . $skuDe][$k] / array_sum($goods_costs_list[$detail_id . $skuDe]) * $dshipingfee, 2); // 根据货本比ebay运费 $iorderweight2 = round($goods_weight_list[$detail_id . $skuDe][$k] / array_sum($goods_weight_list[$detail_id . $skuDe]) * $dorderweight2, 3); $iordershipfee = round_num($goods_weight_list[$detail_id . $skuDe][$k] / array_sum($goods_weight_list[$detail_id . $skuDe]) * $dordershipfee, 2); $iprice = round_num(($goods_costs_list[$detail_id . $skuDe][$k] + $iordershipfee) / (array_sum($goods_costs_list[$detail_id . $skuDe]) + $dordershipfee) * $debay_itemprice * $amount, 2); // 根据货本比产品价格 last modified by herman.xi @20130916 $row = array($weighTime, $accountName, $orderRecordnumber, $platformUsername, '', $skuDe, $amount * array_sum($values_skus), $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $packinguser, $refundInfo['reason'], $refundInfo['paypalAccount'], $refundInfo['note'], $refundInfo['addTime'], '', $refundInfo['refundSum'], '', $refundInfo['currency'], '', '', '', '', ''); $excel->addRow($row); } } else { $row = array($weighTime, $accountName, $orderRecordnumber, $platformUsername, '', $skuDe, $amount * array_sum($values_skus), $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $packinguser, $refundInfo['reason'], $refundInfo['paypalAccount'], $refundInfo['note'], $refundInfo['addTime'], '', $refundInfo['refundSum'], '', $refundInfo['currency'], '', '', '', '', ''); $excel->addRow($row); } } unset($goods_weight_list); unset($goods_costs_list); } } $excel->finalize(); exit; }
function act_excuteRefund() { global $dbConn; $orderId = $_POST['orderId']; if ($orderId == '') { self::$errCode = 1; self::$errMsg = '参数refund Id 有误!'; return false; } $OrderRefundList = OrderRefundModel::getOrderRefundList("*", " WHERE id = {$orderId} AND is_delete = 0"); //var_dump($OrderRefundList); if (!$OrderRefundList) { self::$errCode = "001"; self::$errMsg = "获取信息失败!"; return false; } if ($OrderRefundList[0]['orderType'] == 2) { //手动退款 $rtn = OrderRefundModel::updateOrderRefund(" status = '1', updateTime = " . time(), " WHERE id = {$orderId} AND is_delete = 0"); $sql = " UPDATE `om_unshipped_order` SET orderStatus=2000 , orderType=1004 WHERE id={$orderId}"; $dbConn->execute($sql); $sql = " UPDATE `om_shipped_order` SET orderStatus=660 , orderType=710 WHERE id={$orderId}"; $dbConn->execute($sql); self::$errCode = OrderRefundModel::$errCode; self::$errMsg = OrderRefundModel::$errMsg; return $rtn; } else { if ($OrderRefundList[0]['orderType'] == 1) { //PayPal退款 $paypal_account = trim($dataArr['paypalAccount']); $paypal_passwd = trim($dataArr['pass']); $signature = trim($dataArr['signature']); $account = trim($dataArr['totalSum']); $transactionID = urlencode(trim($dataArr['PayPalPaymentId'])); //$transactionID = urlencode('8UB78354D73053524'); //for test......... $refundType = urlencode(trim($dataArr['refundType'])); $currencyID = urlencode($dataArr['currency']); $amount = trim($dataArr['refundSum']); $memo = $dataArr['note']; //$operator = $_SESSION['truename']; //操作人 //////////////////For test/////////////////////// /* $paypal_account = 'keyhere_api1.gmail.com';//trim($dataArr['paypalAccount']); $paypal_passwd = 'Z2MM4MR7JYNXJJTU'; //trim($dataArr['pass']); $signature = 'A.KeI6NrmIaMvyjNhuLwy2pLV0zPAQ20fUMuWkw30BkqbQWQM8mSQ2MX';//trim($dataArr['signature']); */ /* $paypal_account = 'chenyishan77_api1.gmail.com';//trim($dataArr['paypalAccount']); $paypal_passwd = 'DYWRHBMGN3FE5RH2'; //trim($dataArr['pass']); $signature = 'AZevjjIseNWGR7SfrsQRQeCXRhikAy2qVHVUJOAviaPPhxzAYrKpsYkl';//trim($dataArr['signature']); $account = '4.19'; //trim($dataArr['totalSum']); $transactionID = '46P33414V65055144'; //urlencode(trim($dataArr['PayPalPaymentId'])); $refundType = 'Full'; // urlencode(trim($dataArr['refundType'])); $currencyID = 'USD'; //urlencode($dataArr['currency']); $amount = '1'; //trim($dataArr['refundSum']); $memo = 'Refund for a customer'; //$dataArr['note']; */ ///////////////////////////////////////// if ($refundType == "Full") { $money_amount = $account; } else { $money_amount = $amount; } $nvpStr = "&TRANSACTIONID={$transactionID}&REFUNDTYPE={$refundType}&CURRENCYCODE={$currencyID}&NOTE={$memo}"; //$nvpStr="&TRANSACTIONID=$transaction_id&REFUNDTYPE=$refundType&CURRENCYCODE=$currency&NOTE=$memo"; if ($refundType == 'Partial') { $nvpStr = $nvpStr . "&AMT={$amount}"; } //return self::act_updateRefundInfo($orderId); $rtn = OrderRefundModel::updateOrderRefund(" status = '1', updateTime = " . time(), " WHERE id = {$orderId} AND is_delete = 0"); self::$errCode = OrderRefundModel::$errCode; self::$errMsg = OrderRefundModel::$errMsg; return $rtn; $httpParsedResponseAr = self::PPHttpPost($paypal_account, $paypal_passwd, $signature, 'RefundTransaction', $nvpStr, $account); if ("SUCCESS" == strtoupper($httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($httpParsedResponseAr["ACK"])) { self::$errCode = 200; self::$errMsg = '请求Paypal退款成功!'; return true; } else { self::$errCode = 4; self::$errMsg = '请求Paypal退款失败!'; return false; } } } }