コード例 #1
0
 /**
  * Handles AliPay IPN URL processing.
  *
  * @package optimizeMember\AliPay
  * @since 1.5
  *
  * @attaches-to ``add_action("init");``
  *
  * @return null Or exits script execution after handling the Notification.
  */
 public static function alipay_notify()
 {
     global $current_site, $current_blog;
     /* For Multisite support. */
     /**/
     if (!empty($_POST["notify_type"]) && preg_match("/^trade_status_sync\$/i", $_POST["notify_type"]) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_alipay_seller_email"]) {
         @ignore_user_abort(true);
         /* Continue processing even if/when connection is broken by the sender. */
         /**/
         if (is_array($alipay = c_ws_plugin__optimizemember_pro_alipay_utilities::alipay_postvars()) && ($_alipay = $alipay)) {
             $alipay["optimizemember_log"][] = "IPN received on: " . date("D M j, Y g:i:s a T");
             $alipay["optimizemember_log"][] = "optimizeMember POST vars verified through a POST back to AliPay.";
             /**/
             if (!is_array($alipay_already_p = get_transient("s2m_" . md5("optimizemember_pro_alipay_notify_ids"))) || !in_array($alipay["notify_id"], $alipay_already_p)) {
                 $alipay_already_p = is_array($alipay_already_p) ? array_push($alipay_already_p, $alipay["notify_id"]) : array($alipay["notify_id"]);
                 set_transient("s2m_" . md5("optimizemember_pro_alipay_notify_ids"), array_slice(array_unique($alipay_already_p), 0, 1000), 31556926);
                 /**/
                 if (preg_match("/^(TRADE_FINISHED|TRADE_SUCCESS)\$/i", $alipay["trade_status"]) && !$alipay["refund_status"]) {
                     $alipay["optimizemember_log"][] = "AliPay transaction identified as ( `TRADE_FINISHED|TRADE_SUCCESS` ).";
                     $alipay["optimizemember_log"][] = "IPN reformulated. Piping through optimizeMember's core/standard PayPal processor as `txn_type` ( `web_accept` ).";
                     $alipay["optimizemember_log"][] = "Please check PayPal IPN logs for further processing details.";
                     /**/
                     list($alipay["invoice"], $alipay["item_number"], $alipay["referencing"], $alipay["customer_ip"]) = preg_split("/~/", $alipay["out_trade_no"]);
                     list($alipay["first_name"], $alipay["last_name"]) = preg_split("/@/", $alipay["buyer_email"], 2);
                     /**/
                     $ipn = array();
                     /* Reset. */
                     /**/
                     $ipn["txn_type"] = "web_accept";
                     /**/
                     $ipn["txn_id"] = $alipay["trade_no"];
                     /**/
                     $ipn["custom"] = $alipay["extra_common_param"];
                     /**/
                     $ipn["mc_gross"] = number_format($alipay["total_fee"], 2, ".", "");
                     $ipn["mc_currency"] = strtoupper("CNY");
                     /* Yuan. */
                     $ipn["tax"] = number_format("0.00", 2, ".", "");
                     /**/
                     $ipn["payer_email"] = $alipay["buyer_email"];
                     $ipn["first_name"] = $alipay["first_name"];
                     $ipn["last_name"] = $alipay["last_name"];
                     /**/
                     $ipn["option_name1"] = $alipay["referencing"] ? "Referencing Customer ID" : "Originating Domain";
                     $ipn["option_selection1"] = $alipay["referencing"] ? $alipay["referencing"] : $_SERVER["HTTP_HOST"];
                     /**/
                     $ipn["option_name2"] = "Customer IP Address";
                     $ipn["option_selection2"] = $alipay["customer_ip"];
                     /**/
                     $ipn["item_number"] = $alipay["item_number"];
                     $ipn["item_name"] = $alipay["body"];
                     /**/
                     $ipn_q = "&optimizemember_paypal_proxy=alipay&optimizemember_paypal_proxy_use=standard-emails";
                     $ipn_q .= "&optimizemember_paypal_proxy_verification=" . urlencode(c_ws_plugin__optimizemember_paypal_utilities::paypal_proxy_key_gen());
                     /**/
                     c_ws_plugin__optimizemember_utils_urls::remote(site_url("/?optimizemember_paypal_notify=1" . $ipn_q), $ipn, array("timeout" => 20));
                 } else {
                     if (preg_match("/^(TRADE_CLOSED|TRADE_SUCCESS)\$/i", $alipay["trade_status"]) && $alipay["refund_status"]) {
                         $alipay["optimizemember_log"][] = "AliPay transaction identified as ( `REFUND_SUCCESS` ).";
                         $alipay["optimizemember_log"][] = "IPN reformulated. Piping through optimizeMember's core/standard PayPal processor as `payment_status` ( `refunded` ).";
                         $alipay["optimizemember_log"][] = "Please check PayPal IPN logs for further processing details.";
                         /**/
                         list($alipay["invoice"], $alipay["item_number"], $alipay["referencing"], $alipay["customer_ip"]) = preg_split("/~/", $alipay["out_trade_no"]);
                         list($alipay["first_name"], $alipay["last_name"]) = preg_split("/@/", $alipay["buyer_email"], 2);
                         /**/
                         $ipn = array();
                         /* Reset. */
                         /**/
                         $ipn["payment_status"] = "refunded";
                         /**/
                         $ipn["parent_txn_id"] = $alipay["trade_no"];
                         /**/
                         $ipn["custom"] = $alipay["extra_common_param"];
                         /**/
                         $ipn["mc_fee"] = "-" . number_format("0.00", 2, ".", "");
                         $ipn["mc_gross"] = "-" . number_format(abs($alipay["total_fee"]), 2, ".", "");
                         $ipn["mc_currency"] = strtoupper("CNY");
                         /* Yuan. */
                         $ipn["tax"] = "-" . number_format("0.00", 2, ".", "");
                         /**/
                         $ipn["payer_email"] = $alipay["buyer_email"];
                         $ipn["first_name"] = $alipay["first_name"];
                         $ipn["last_name"] = $alipay["last_name"];
                         /**/
                         $ipn["option_name1"] = $alipay["referencing"] ? "Referencing Customer ID" : "Originating Domain";
                         $ipn["option_selection1"] = $alipay["referencing"] ? $alipay["referencing"] : $_SERVER["HTTP_HOST"];
                         /**/
                         $ipn["option_name2"] = "Customer IP Address";
                         $ipn["option_selection2"] = $alipay["customer_ip"];
                         /**/
                         $ipn["item_number"] = $alipay["item_number"];
                         $ipn["item_name"] = $alipay["body"];
                         /**/
                         $ipn_q = "&optimizemember_paypal_proxy=alipay&optimizemember_paypal_proxy_use=standard-emails";
                         $ipn_q .= "&optimizemember_paypal_proxy_verification=" . urlencode(c_ws_plugin__optimizemember_paypal_utilities::paypal_proxy_key_gen());
                         /**/
                         c_ws_plugin__optimizemember_utils_urls::remote(site_url("/?optimizemember_paypal_notify=1" . $ipn_q), $ipn, array("timeout" => 20));
                     } else {
                         $alipay["optimizemember_log"][] = "Ignoring this IPN request. The status does NOT require any action on the part of optimizeMember.";
                     }
                 }
             } else {
                 $alipay["optimizemember_log"][] = "Ignoring duplicate IPN. optimizeMember has already processed AliPay Notification ID: " . $alipay["notify_id"] . ".";
             }
         } else {
             $alipay["optimizemember_log"][] = "Unable to verify POST vars. This is most likely related to an invalid AliPay configuration. Please check: optimizeMember -> AliPay Options.";
             $alipay["optimizemember_log"][] = "If you're absolutely SURE that your AliPay configuration is valid, you may want to run some tests on your server, just to be sure \$_POST variables are populated, and that your server is able to connect to AliPay over an HTTPS connection.";
             $alipay["optimizemember_log"][] = "optimizeMember uses the WP_Http class for remote connections; which will try to use cURL first, and then fall back on the FOPEN method when cURL is not available. On a Windows server, you may have to disable your cURL extension. Instead, set allow_url_fopen = yes in your php.ini file. The cURL extension (usually) does NOT support SSL connections on a Windows server.";
             $alipay["optimizemember_log"][] = var_export($_REQUEST, true);
             /* Recording _POST + _GET vars for analysis and debugging. */
         }
         /*
         If debugging/logging is enabled; we need to append $alipay to the log file.
         	Logging now supports Multisite Networking as well.
         */
         $logv = c_ws_plugin__optimizemember_utilities::ver_details();
         $logm = c_ws_plugin__optimizemember_utilities::mem_details();
         $log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
         $log4 = is_multisite() && !is_main_site() ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
         $log2 = is_multisite() && !is_main_site() ? "alipay-ipn-4-" . trim(preg_replace("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "alipay-ipn.log";
         /**/
         if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["gateway_debug_logs"]) {
             if (is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["logs_dir"])) {
                 if (is_writable($logs_dir) && c_ws_plugin__optimizemember_utils_logs::archive_oversize_log_files()) {
                     file_put_contents($logs_dir . "/" . $log2, $logv . "\n" . $logm . "\n" . $log4 . "\n" . var_export($alipay, true) . "\n\n", FILE_APPEND);
                 }
             }
         }
         /**/
         status_header(200);
         /* 200 OK status header. */
         header("Content-Type: text/plain; charset=utf-8");
         /* Content-Type text/plain with UTF-8. */
         eval('while (@ob_end_clean ());');
         /* End/clean all output buffers that may or may not exist. */
         /**/
         exit("success");
         /* Exit now with "success". */
     }
 }
コード例 #2
0
 /**
  * Handles AliPay Return URL processing.
  *
  * @package optimizeMember\AliPay
  * @since 1.5
  *
  * @attaches-to ``add_action("init");``
  *
  * @return null Or exits script execution after redirection.
  */
 public static function alipay_return()
 {
     global $current_site, $current_blog;
     /**/
     if (!empty($_GET["optimizemember_pro_alipay_return"]) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_alipay_seller_email"]) {
         if (is_array($alipay = c_ws_plugin__optimizemember_pro_alipay_utilities::alipay_postvars()) && ($_alipay = $alipay)) {
             $alipay["optimizemember_log"][] = "Return-Data received on: " . date("D M j, Y g:i:s a T");
             $alipay["optimizemember_log"][] = "optimizeMember POST vars verified through a POST back to AliPay.";
             /**/
             if (preg_match("/^(TRADE_FINISHED|TRADE_SUCCESS)\$/i", $alipay["trade_status"]) && !$alipay["refund_status"]) {
                 $alipay["optimizemember_log"][] = "AliPay transaction identified as ( `TRADE_FINISHED|TRADE_SUCCESS` ).";
                 $alipay["optimizemember_log"][] = "Return-Data reformulated. Piping through optimizeMember's core/standard PayPal processor as `txn_type` ( `web_accept` ).";
                 $alipay["optimizemember_log"][] = "Please check PayPal RTN logs for further processing details.";
                 /**/
                 list($alipay["invoice"], $alipay["item_number"], $alipay["referencing"], $alipay["customer_ip"]) = preg_split("/~/", $alipay["out_trade_no"]);
                 list($alipay["first_name"], $alipay["last_name"]) = preg_split("/@/", $alipay["buyer_email"], 2);
                 /**/
                 $rtn = array();
                 /**/
                 $rtn["txn_type"] = "web_accept";
                 $rtn["txn_id"] = $alipay["trade_no"];
                 $rtn["custom"] = $alipay["extra_common_param"];
                 /**/
                 $rtn["mc_gross"] = number_format($alipay["total_fee"], 2, ".", "");
                 $rtn["mc_currency"] = "CNY";
                 /* Yuan. */
                 $rtn["tax"] = "0";
                 /* No tax. */
                 /**/
                 $rtn["payer_email"] = $alipay["buyer_email"];
                 $rtn["first_name"] = $alipay["first_name"];
                 $rtn["last_name"] = $alipay["last_name"];
                 /**/
                 $rtn["option_name1"] = $alipay["referencing"] ? "Referencing Customer ID" : "Originating Domain";
                 $rtn["option_selection1"] = $alipay["referencing"] ? $alipay["referencing"] : $_SERVER["HTTP_HOST"];
                 /**/
                 $rtn["option_name2"] = "Customer IP Address";
                 $rtn["option_selection2"] = $alipay["customer_ip"];
                 /**/
                 $rtn["item_number"] = $alipay["item_number"];
                 $rtn["item_name"] = $alipay["body"];
                 /**/
                 $rtn_q = "&optimizemember_paypal_proxy=alipay&optimizemember_paypal_proxy_use=standard-emails";
                 if (!empty($_GET["optimizemember_pro_alipay_return_success"])) {
                     $rtn_q .= "&optimizemember_paypal_return_success=" . rawurlencode(trim(stripslashes($_GET["optimizemember_pro_alipay_return_success"])));
                 }
                 /**/
                 $rtn_r = add_query_arg(urlencode_deep($rtn), site_url("/?optimizemember_pro_alipay_return&optimizemember_paypal_return=1" . $rtn_q));
                 $rtn_r = c_ws_plugin__optimizemember_utils_urls::add_optimizemember_sig($rtn_r, "optimizemember_paypal_proxy_verification");
                 /**/
                 $alipay["optimizemember_log"][] = $rtn_r;
                 /**/
                 wp_redirect($rtn_r);
             } else {
                 $alipay["optimizemember_log"][] = "Unexpected status. The AliPay status did not match a required action.";
                 /**/
                 $alipay["optimizemember_log"][] = "Redirecting Customer to the Home Page, due to an error that occurred.";
                 /**/
                 echo '<script type="text/javascript">' . "\n";
                 echo "alert('" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(_x("ERROR: Unexpected status. Please contact Support for assistance.\n\nThe AliPay status did NOT match a required action.", "s2member-front", "s2member")) . "');" . "\n";
                 echo "window.location = '" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(home_url("/")) . "';";
                 echo '</script>' . "\n";
             }
         } else {
             $alipay["optimizemember_log"][] = "Unable to verify POST vars. This is most likely related to an invalid AliPay configuration. Please check: optimizeMember -> AliPay Options.";
             $alipay["optimizemember_log"][] = "If you're absolutely SURE that your AliPay configuration is valid, you may want to run some tests on your server, just to be sure \$_POST variables are populated, and that your server is able to connect to AliPay over an HTTPS connection.";
             $alipay["optimizemember_log"][] = "optimizeMember uses the WP_Http class for remote connections; which will try to use cURL first, and then fall back on the FOPEN method when cURL is not available. On a Windows server, you may have to disable your cURL extension. Instead, set allow_url_fopen = yes in your php.ini file. The cURL extension (usually) does NOT support SSL connections on a Windows server.";
             $alipay["optimizemember_log"][] = var_export($_REQUEST, true);
             /* Recording _POST + _GET vars for analysis and debugging. */
             /**/
             $alipay["optimizemember_log"][] = "Redirecting Customer to the Home Page, due to an error that occurred.";
             /**/
             echo '<script type="text/javascript">' . "\n";
             echo "alert('" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(_x("ERROR: Unable to verify POST vars. Please contact Support for assistance.\n\nThis is most likely related to an invalid AliPay configuration. If you are the site owner, please check: optimizeMember -> AliPay Options.", "s2member-front", "s2member")) . "');" . "\n";
             echo "window.location = '" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(home_url("/")) . "';";
             echo '</script>' . "\n";
         }
         /**/
         $logv = c_ws_plugin__optimizemember_utilities::ver_details();
         $logm = c_ws_plugin__optimizemember_utilities::mem_details();
         $log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
         $log4 = is_multisite() && !is_main_site() ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
         $log2 = is_multisite() && !is_main_site() ? "alipay-rtn-4-" . trim(preg_replace("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "alipay-rtn.log";
         /**/
         if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["gateway_debug_logs"]) {
             if (is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["logs_dir"])) {
                 if (is_writable($logs_dir) && c_ws_plugin__optimizemember_utils_logs::archive_oversize_log_files()) {
                     file_put_contents($logs_dir . "/" . $log2, $logv . "\n" . $logm . "\n" . $log4 . "\n" . var_export($alipay, true) . "\n\n", FILE_APPEND);
                 }
             }
         }
         /**/
         exit;
         /* Exit now. */
     }
 }
コード例 #3
0
 /**
  * Shortcode `[optimizeMember-Pro-AliPay-Button /]`.
  *
  * @package optimizeMember\AliPay
  * @since 1.5
  *
  * @attaches-to ``add_shortcode("optimizeMember-Pro-AliPay-Button");``
  *
  * @param array $attr An array of Attributes.
  * @param str $content Content inside the Shortcode.
  * @param str $shortcode The actual Shortcode name itself.
  * @return str The resulting AliPay Button Code, HTML markup.
  */
 public static function sc_alipay_button($attr = FALSE, $content = FALSE, $shortcode = FALSE)
 {
     c_ws_plugin__optimizemember_no_cache::no_cache_constants(true);
     /**/
     $attr = c_ws_plugin__optimizemember_utils_strings::trim_qts_deep((array) $attr);
     /**/
     $attr = shortcode_atts(array("ids" => "0", "exp" => "72", "level" => "1", "ccaps" => "", "desc" => "", "custom" => $_SERVER["HTTP_HOST"], "ra" => "0.01", "rp" => "1", "rt" => "M", "sp" => "0", "success" => "", "image" => "default", "output" => "anchor"), $attr);
     /**/
     $attr["rt"] = strtoupper($attr["rt"]);
     $attr["ccaps"] = strtolower($attr["ccaps"]);
     $attr["success"] = str_ireplace(array("&#038;", "&amp;"), "&", $attr["success"]);
     /**/
     if ($attr["sp"]) {
         $default_image = $GLOBALS["WS_PLUGIN__"]["optimizemember_pro"]["c"]["dir_url"] . "/images/alipay-button.gif";
         /**/
         $attr["sp_ids_exp"] = "sp:" . $attr["ids"] . ":" . $attr["exp"];
         /**/
         $code = trim(c_ws_plugin__optimizemember_utilities::evl(file_get_contents(dirname(dirname(dirname(dirname(__FILE__)))) . "/templates/buttons/alipay-sp-checkout-button.php")));
         $code = preg_replace("/%%images%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($GLOBALS["WS_PLUGIN__"]["optimizemember_pro"]["c"]["dir_url"] . "/images")), $code);
         $code = preg_replace("/%%wpurl%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr(site_url())), $code);
         /**/
         $vars = array("service" => "create_direct_pay_by_user", "payment_type" => 1, "partner" => $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_alipay_partner_id"], "seller_email" => $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_alipay_seller_email"], "subject" => $_SERVER["HTTP_HOST"], "body" => $attr["desc"], "out_trade_no" => uniqid() . "~" . $attr["sp_ids_exp"] . (($referencing = c_ws_plugin__optimizemember_utils_users::get_user_subscr_or_wp_id()) ? "~" . $referencing : "~") . "~" . $_SERVER["REMOTE_ADDR"], "extra_common_param" => $attr["custom"], "total_fee" => $attr["ra"], "paymethod" => "directPay", "show_url" => home_url("/"), "return_url" => $attr["success"] ? $attr["success"] : site_url("/?optimizemember_pro_alipay_return=1"), "notify_url" => site_url("/"));
         /**/
         $code = preg_replace("/%%url%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($url = c_ws_plugin__optimizemember_pro_alipay_utilities::alipay_link_gen($vars))), $code);
         /**/
         $code = $_code = $attr["image"] && $attr["image"] !== "default" ? preg_replace('/ src\\="(.*?)"/', ' src="' . c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($attr["image"])) . '"', $code) : preg_replace('/ src\\="(.*?)"/', ' src="' . c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($default_image)) . '"', $code);
         /**/
         $code = $attr["output"] === "anchor" ? $code : $code;
         $code = $attr["output"] === "url" ? $url : $code;
         /**/
         unset($href, $url, $m);
     } else {
         if ($attr["level"] === "*") {
             $default_image = $GLOBALS["WS_PLUGIN__"]["optimizemember_pro"]["c"]["dir_url"] . "/images/alipay-button.gif";
             /**/
             $attr["level_ccaps_eotper"] = $attr["rt"] !== "L" ? $attr["level"] . ":" . $attr["ccaps"] . ":" . $attr["rp"] . " " . $attr["rt"] : $attr["level"] . ":" . $attr["ccaps"];
             $attr["level_ccaps_eotper"] = rtrim($attr["level_ccaps_eotper"], ":");
             /**/
             $code = trim(c_ws_plugin__optimizemember_utilities::evl(file_get_contents(dirname(dirname(dirname(dirname(__FILE__)))) . "/templates/buttons/alipay-ccaps-checkout-button.php")));
             $code = preg_replace("/%%images%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($GLOBALS["WS_PLUGIN__"]["optimizemember_pro"]["c"]["dir_url"] . "/images")), $code);
             $code = preg_replace("/%%wpurl%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr(site_url())), $code);
             /**/
             $vars = array("service" => "create_direct_pay_by_user", "payment_type" => 1, "partner" => $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_alipay_partner_id"], "seller_email" => $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_alipay_seller_email"], "subject" => $_SERVER["HTTP_HOST"], "body" => $attr["desc"], "out_trade_no" => uniqid() . "~" . $attr["level_ccaps_eotper"] . (($referencing = c_ws_plugin__optimizemember_utils_users::get_user_subscr_or_wp_id()) ? "~" . $referencing : "~") . "~" . $_SERVER["REMOTE_ADDR"], "extra_common_param" => $attr["custom"], "total_fee" => $attr["ra"], "paymethod" => "directPay", "show_url" => home_url("/"), "return_url" => $attr["success"] && !$referencing ? $attr["success"] : site_url("/?optimizemember_pro_alipay_return=1"), "notify_url" => site_url("/"));
             /**/
             $code = preg_replace("/%%url%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($url = c_ws_plugin__optimizemember_pro_alipay_utilities::alipay_link_gen($vars))), $code);
             /**/
             $code = $_code = $attr["image"] && $attr["image"] !== "default" ? preg_replace('/ src\\="(.*?)"/', ' src="' . c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($attr["image"])) . '"', $code) : preg_replace('/ src\\="(.*?)"/', ' src="' . c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($default_image)) . '"', $code);
             /**/
             $code = $attr["output"] === "anchor" ? $code : $code;
             $code = $attr["output"] === "url" ? $url : $code;
             /**/
             unset($href, $url, $m);
         } else {
             $default_image = $GLOBALS["WS_PLUGIN__"]["optimizemember_pro"]["c"]["dir_url"] . "/images/alipay-button.gif";
             /**/
             $attr["desc"] = !$attr["desc"] ? $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $attr["level"] . "_label"] : $attr["desc"];
             /**/
             $attr["level_ccaps_eotper"] = $attr["rt"] !== "L" ? $attr["level"] . ":" . $attr["ccaps"] . ":" . $attr["rp"] . " " . $attr["rt"] : $attr["level"] . ":" . $attr["ccaps"];
             $attr["level_ccaps_eotper"] = rtrim($attr["level_ccaps_eotper"], ":");
             /**/
             $code = trim(c_ws_plugin__optimizemember_utilities::evl(file_get_contents(dirname(dirname(dirname(dirname(__FILE__)))) . "/templates/buttons/alipay-checkout-button.php")));
             /*
              * Custom button
              */
             if (!empty($content)) {
                 $code = preg_replace('/%%button_markup%%/', $content, $code);
             } else {
                 $code = preg_replace("/%%button_markup%%/", '<a href="%%url%%"><img src="%%images%%/alipay-button.gif" style="width:auto; height:auto; border:0;" alt="AliPay" /></a>', $code);
             }
             $code = preg_replace("/%%images%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($GLOBALS["WS_PLUGIN__"]["optimizemember_pro"]["c"]["dir_url"] . "/images")), $code);
             $code = preg_replace("/%%wpurl%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr(site_url())), $code);
             /**/
             $vars = array("service" => "create_direct_pay_by_user", "payment_type" => 1, "partner" => $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_alipay_partner_id"], "seller_email" => $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_alipay_seller_email"], "subject" => $_SERVER["HTTP_HOST"], "body" => $attr["desc"], "out_trade_no" => uniqid() . "~" . $attr["level_ccaps_eotper"] . (($referencing = c_ws_plugin__optimizemember_utils_users::get_user_subscr_or_wp_id()) ? "~" . $referencing : "~") . "~" . $_SERVER["REMOTE_ADDR"], "extra_common_param" => $attr["custom"], "total_fee" => $attr["ra"], "paymethod" => "directPay", "show_url" => home_url("/"), "return_url" => $attr["success"] && !$referencing ? $attr["success"] : site_url("/?optimizemember_pro_alipay_return=1"), "notify_url" => site_url("/"));
             /**/
             $code = preg_replace("/%%url%%/", c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($url = c_ws_plugin__optimizemember_pro_alipay_utilities::alipay_link_gen($vars))), $code);
             /*
              * Only when there is no custom button
              */
             if (empty($content)) {
                 $code = $_code = $attr["image"] && $attr["image"] !== "default" ? preg_replace('/ src\\="(.*?)"/', ' src="' . c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($attr["image"])) . '"', $code) : preg_replace('/ src\\="(.*?)"/', ' src="' . c_ws_plugin__optimizemember_utils_strings::esc_ds(esc_attr($default_image)) . '"', $code);
             }
             /**/
             $code = $attr["output"] === "anchor" ? $code : $code;
             $code = $attr["output"] === "url" ? $url : $code;
             /**/
             unset($href, $url, $m);
         }
     }
     /**/
     $code = preg_replace('/^\\s+|\\n|\\r|\\s+$/m', '', $code);
     return $code;
 }