/** * 创建卡券 * @param $merchant_type : 券类型 *[必填] * @param $base_info : 基本的卡券字段数据 *[必填] * @param $extra_data :不同类型卡券特有的字段 *[必填] * @param $custom_cells:自定义cell * $custom_cells = array( * "custom_url_name"=>"xxxxx", //使用场景 【最多5个汉字】 * "custom_url"=>"http://www.xxx.com", //使用场景链接 * "custom_url_sub_title"=>"xxxxxx", //使用场景提示语 【最多6个汉字】 * "promotion_url_name"=>"xxxxx", //营销场景 【最多5个汉字】 * "promotion_url"=>"http://www.xxx.com", //营销场景链接 * "promotion_url_sub_title"=>"xxxxxx" //营销场景提示语 【最多6个汉字】 * ); * 其他参数均为基本卡券字段中的选填项 [非必填] * @return array */ function card_create($merchant_type, $base_data, $extra_data, $location_id_list = "", $sub_title = "", $use_limit = "", $get_limit = "", $url_name_type = "", $custom_cells = false, $source = "", $can_share = true, $can_give_friend = true, $use_custom_code = false, $bind_openid = false) { //exit(); $card_type = $this->get_card_type($merchant_type); //有效期 $date_info = new DateInfo($base_data["date_info"]["type"], $base_data["date_info"]["arg0"], $base_data["date_info"]["arg1"]); //库存 $sku = new Sku($base_data["sku"]); //颜色转换 $colorname = "Color010"; $colorinfo = $this->card_getcolors(); foreach ($colorinfo["colors"] as $color) { if ($color["value"] == $base_data["color"]) { $colorname = $color["name"]; break; } } //必填基础字段 $code_type = $this->get_code_type($base_data["code_type"]); $base_info = new BaseInfo($base_data["logo_url"], $base_data["brand_name"], $code_type, $base_data["title"], $colorname, $base_data["notice"], $base_data["service_phone"], $base_data["description"], $date_info, $sku); $card = new Card($card_type, $base_info); //选填字段 $base_info->set_location_id_list($location_id_list); $base_info->set_sub_title($sub_title); $base_info->set_use_limit($use_limit); $base_info->set_get_limit($get_limit); $base_info->set_use_custom_code($use_custom_code); $base_info->set_bind_openid($bind_openid); $base_info->set_can_share($can_share); $base_info->set_can_give_friend($can_give_friend); $base_info->set_url_name_type($url_name_type); $base_info->set_source($source); //自定义cell if (is_array($custom_cells)) { $base_info->set_custom_url_name($custom_cells["custom_url_name"]); $base_info->set_custom_url($custom_cells["custom_url"]); $base_info->set_custom_url_sub_title($custom_cells["custom_url_sub_title"]); $base_info->set_promotion_url_name($custom_cells["promotion_url_name"]); $base_info->set_promotion_url($custom_cells["promotion_url"]); $base_info->set_promotion_url_sub_title($custom_cells["promotion_url_sub_title"]); } //根据卡券类型设置卡券数据 switch ($card_type) { case $this->CARD_TYPE[0]: //通用卡 if (!isset($extra_data["default_detail"])) { exit("default_detail must be set!"); } $card->get_card()->set_default_detail($extra_data["default_detail"]); //必填 break; case $this->CARD_TYPE[1]: //团购卡 if (!isset($extra_data["deal_detail"])) { exit("deal_detail must be set!"); } $card->get_card()->set_deal_detail($extra_data["deal_detail"]); //必填 break; case $this->CARD_TYPE[2]: //折扣卡 if (!isset($extra_data["discount"])) { exit("discount must be set!"); } $card->get_card()->set_discount($extra_data["discount"]); //必填 break; case $this->CARD_TYPE[3]: //礼品卡 if (!isset($extra_data["gift"])) { exit("gift must be set!"); } $card->get_card()->set_gift($extra_data["gift"]); //必填 break; case $this->CARD_TYPE[4]: //代金券 if (isset($extra_data["least_cost"])) { $card->get_card()->set_least_cost($extra_data["least_cost"]); } if (!isset($extra_data["reduce_cost"])) { exit("reduce_cost must be set!"); } $card->get_card()->set_reduce_cost($extra_data["reduce_cost"]); //必填 break; case $this->CARD_TYPE[5]: //会员卡 if (!isset($extra_data["supply_bonus"]) || !isset($extra_data["supply_balance"]) || !isset($extra_data["prerogative"])) { exit("supply_bonus and supply_balance and prerogative must be set!"); } $card->get_card()->set_supply_bonus($extra_data["supply_bonus"]); //必填 $card->get_card()->set_supply_balance($extra_data["supply_balance"]); //必填 $card->get_card()->set_prerogative($extra_data["prerogative"]); //必填 //bind_old_card_url or activate_url must be set one! if (!isset($extra_data["bonus_rules"]) && !isset($extra_data["bonus_rules"])) { exit("bind_old_card_url or activate_url must be set one!"); } else { if (isset($extra_data["bind_old_card_url"])) { $card->get_card()->set_bind_old_card_url($extra_data["bind_old_card_url"]); } if (isset($extra_data["activate_url"])) { $card->get_card()->set_activate_url($extra_data["activate_url"]); } } if (isset($extra_data["bonus_cleared"])) { $card->get_card()->set_bonus_cleared($extra_data["bonus_cleared"]); } if (isset($extra_data["bonus_rules"])) { $card->get_card()->set_bonus_rules($extra_data["bonus_rules"]); } if (isset($extra_data["balance_rules"])) { $card->get_card()->set_balance_rules($extra_data["balance_rules"]); } break; case $this->CARD_TYPE[6]: //门票 if (isset($extra_data["ticket_class"])) { $card->get_card()->set_ticket_class($extra_data["ticket_class"]); } if (isset($extra_data["guide_url"])) { $card->get_card()->set_guide_url($extra_data["guide_url"]); } break; case $this->CARD_TYPE[7]: //电影票 if (isset($extra_data["detail"])) { $card->get_card()->set_detail($extra_data["detail"]); } break; break; case $this->CARD_TYPE[8]: //飞机票 if (!isset($extra_data["from"]) || !isset($extra_data["to"]) || !isset($extra_data["flight"]) || !isset($extra_data["departure_time"]) || !isset($extra_data["landing_time"])) { exit("from and to and flight and departure_time and landing_time must be set!"); } $card->get_card()->set_from($extra_data["from"]); //必填 $card->get_card()->set_to($extra_data["to"]); //必填 $card->get_card()->set_flight($extra_data["flight"]); //必填 $card->get_card()->set_departure_time($extra_data["departure_time"]); //必填 $card->get_card()->set_landing_time($extra_data["landing_time"]); //必填 break; case $this->CARD_TYPE[9]: //红包,无额外数据 break; default: exit("CardType Error"); } //cardjson $jsondata = json_decode($card->toJson(), true); return $this->postapi("card/create", $jsondata); }