public function NotifyProcess($data, &$msg) { pt_debug($data, __METHOD__); if (!array_key_exists("transaction_id", $data)) { $msg = "输入参数不正确"; return false; } //查询订单,判断订单真实性 if ($data['return_code'] != 'SUCCESS') { return false; } pt_debug("SUCCESS", __METHOD__); Model_Order_Pay_Wechat::notify_callback($data['out_trade_no'], $data['transaction_id'], $data['total_fee']); return true; }
function action_png1() { $id = 3281; $env = PtApp::$ENV; $path_pro = PATH_PRO; $act = self::_db()->select_row("select default_product_style_id,design_id from activities where id = ?", $id); $_styles = self::_db()->select_rows("select aps.sell_price,aps.product_id,aps.product_style_id,\n s.color_name,s.color,s.is_default\n from activity_product_styles as aps\n left join et_product_style as s on s.id = aps.product_style_id\n where activity_id = ? order by aps.id asc", $id); $product_ids = array(); $product_style_ids = array(); foreach ($_styles as $style) { $product_ids[] = $style['product_id']; $product_style_ids[] = $style['product_style_id']; } $product_ids = array_unique($product_ids); $product_style_ids = array_unique($product_style_ids); $_products = self::_db()->select_rows("select content,name,id from et_product where id in (" . implode(",", $product_ids) . ")"); $_product_designs = self::_db()->select_rows("select * from et_product_design where product_id in (" . implode(",", $product_ids) . ")"); foreach ($_products as $_product) { $_product['content'] = replace_cdn($_product['content']); $products[$_product['id']] = $_product; } $product_designs = array(); foreach ($_product_designs as $_product_design) { $product_designs[$_product_design['product_id']][$_product_design['side']] = $_product_design; } $_act_product_designs = self::_db()->select_rows("select * from et_activity_product where activity_id = ?", $id); $_sides = array("front", "back", "third", "fourth"); $__act_designs = array(); if (!$_act_product_designs) { $_act_designs = self::_db()->select_rows("select svg_url,side from design_svg_side where design_id = ?", $act['design_id']); //print_r($_act_designs);exit; //return $_act_designs; foreach ($_act_designs as $_act_design) { $svg_url = $_act_design['svg_url']; //pt_debug($svg_url); $_svg_content = file_get_contents($svg_url); $side = $_act_design['side']; foreach ($product_ids as $product_id) { $design_info = $product_designs[$product_id][$side]; //return $design_info; $x = $design_info['x']; $y = $design_info['y']; $img_url = $design_info['img_url']; $img_content = file_get_contents($img_url); //echo $img_content; $img_content = "data:image/png;base64," . base64_encode($img_content); $svg_content = "<svg x='" . $x / 2 . "' y='" . $y / 2 . "'" . substr($_svg_content, 4); $tpl_content = '<svg height="500" width="500" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="overflow: hidden; position: relative;" viewBox="0 0 500 500" preserveAspectRatio="xMidYMid meet"><image x="0" y="0" width="500" height="500" preserveAspectRatio="none" xlink:href="' . $img_content . '" transform="matrix(1,0,0,1,0,0)"></image>' . $svg_content . '</svg>'; $name = "{$env}_{$id}_{$product_id}_{$side}"; $local_svg = "/tmp/activity_pic_{$name}.svg"; $local_png = "/tmp/activity_pic_test_{$name}.png"; $remote_png = "{$env}/activity/pic/{$name}.png"; file_put_contents($local_svg, $tpl_content); $cmd = "python {$path_pro}/bin/svg/convert.py {$local_svg} {$local_png}"; //pt_debug($cmd); shell_exec($cmd); //continue; Model_Aliyun_Oss::upload_file($local_png, $remote_png); $url = "http://cdn.open.easytee.me/" . $remote_png; pt_debug($url); @unlink($local_png); @unlink($local_svg); $_act_product_designs[] = array("activity_id" => $id, "product_id" => $product_id, "side" => $side, "img_url" => $url, "add_time" => date_time_now()); //echo $url.PHP_EOL; } } } foreach ($_act_product_designs as $_act_product_design) { $act_designs[$_act_product_design['product_id']][$_act_product_design['side']] = $_act_product_design['img_url']; } $default_product_style_id = $act['default_product_style_id']; $styles = array(); foreach ($_styles as $style) { if ($style["product_style_id"] == $default_product_style_id) { $default_style = $style; } $styles[$style['product_id']]["style_" . $style["product_style_id"]] = $style; } $inventorys = self::_db()->select_rows("select * from et_product_inventory where style_id in (" . implode(",", $product_style_ids) . ")"); $sizes = array(); foreach ($inventorys as $inventory) { $sizes[$inventory['product_id']][$inventory['style_id']][] = $inventory; } return array("products" => $products, "product_designs" => $product_designs, "act_designs" => $act_designs, "styles" => $styles, "sizes" => $sizes, "default_style" => $default_style); }