https://dc-static.wondershare.cc/hybrid_scan_pay/js/ws_wa_pay_2.js
Last Checked: Aug 10, 2023, 19:50 EDT
IP Address: | 47.246.20.229 |
ASN #: | AS24429 TAOBAO Zhejiang Taobao Network Co.,Ltd, CN |
Location: | Unknown, Unknown, Unknown |
URL Reputation: |
|
Other submissions on 47.246.20.229:
-
http://udomino.boxiangyx.com/
-
https://dc-static.wondershare.cc/account_center/google-sdk.js
-
https://www.paris2024.org/
Other submissions on wondershare.cc:
-
http://prod-web.wondershare.cc/
-
https://dc-static.wondershare.cc/account_center/google-sdk.js
-
https://analytics.wondershare.cc:8106/sa.gif?project=UA_MediaIo_Web
Previous checks:
No previous checks.
Domain Name: WONDERSHARE.CC Registry Domain ID: 99748921_DOMAIN_CC-VRSN Registrar WHOIS Server: whois.godaddy.com Registrar URL: https://www.godaddy.com Updated Date: 2022-05-31T02:15:29Z Creation Date: 2012-05-25T04:44:13Z Registrar Registration Expiration Date: 2024-05-25T04:44:13Z Registrar: GoDaddy.com, LLC Registrar IANA ID: 146 Registrar Abuse Contact Email: abuse@godaddy.com Registrar Abuse Contact Phone: +1.4806242505 Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited Registry Registrant ID: Not Available From Registry Registrant Name: Registration Private Registrant Organization: Domains By Proxy, LLC Registrant Street: DomainsByProxy.com Registrant Street: 2155 E Warner Rd Registrant City: Tempe Registrant State/Province: Arizona Registrant Postal Code: 85284 Registrant Country: US Registrant Phone: +1.4806242599 Registrant Phone Ext: Registrant Fax: +1.4806242598 Registrant Fax Ext: Registrant Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=WONDERSHARE.CC Registry Admin ID: Not Available From Registry Admin Name: Registration Private Admin Organization: Domains By Proxy, LLC Admin Street: DomainsByProxy.com Admin Street: 2155 E Warner Rd Admin City: Tempe Admin State/Province: Arizona Admin Postal Code: 85284 Admin Country: US Admin Phone: +1.4806242599 Admin Phone Ext: Admin Fax: +1.4806242598 Admin Fax Ext: Admin Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=WONDERSHARE.CC Registry Tech ID: Not Available From Registry Tech Name: Registration Private Tech Organization: Domains By Proxy, LLC Tech Street: DomainsByProxy.com Tech Street: 2155 E Warner Rd Tech City: Tempe Tech State/Province: Arizona Tech Postal Code: 85284 Tech Country: US Tech Phone: +1.4806242599 Tech Phone Ext: Tech Fax: +1.4806242598 Tech Fax Ext: Tech Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=WONDERSHARE.CC Name Server: VIP3.ALIDNS.COM Name Server: VIP4.ALIDNS.COM DNSSEC: unsigned URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ >>> Last update of WHOIS database: 2023-08-10T23:50:26Z <<< For more information on Whois status codes, please visit https://icann.org/epp TERMS OF USE: The data contained in this registrar's Whois database, while believed by the registrar to be reliable, is provided "as is" with no guarantee or warranties regarding its accuracy. This information is provided for the sole purpose of assisting you in obtaining information about domain name registration records. Any use of this data for any other purpose is expressly forbidden without the prior written permission of this registrar. By submitting an inquiry, you agree to these terms and limitations of warranty. In particular, you agree not to use this data to allow, enable, or otherwise support the dissemination or collection of this data, in part or in its entirety, for any purpose, such as transmission by e-mail, telephone, postal mail, facsimile or other means of mass unsolicited, commercial advertising or solicitations of any kind, including spam. You further agree not to use this data to enable high volume, automated or robotic electronic processes designed to collect or compile this data for any purpose, including mining this data for your own personal or commercial purposes. Failure to comply with these terms may result in termination of access to the Whois database. These terms may be subject to modification at any time without notice.
-
GET0 Timed out waiting for a response.
https://dc-static.wondershare.cc/favicon.ico
<html><head><link rel="stylesheet" href="resource://content-accessible/plaintext.css"></head><body><pre>(function () { var DEFAULT_TIMEOUT = 30000; // 进入页é¢ï¼Œé¦–å…ˆå–出location.href的所有å‚数组装为hrefParams,åŽé¢æ ¹æ®å–å‚ç›´æŽ¥æ ¹æ®keyå–值å³å¯ var hrefParams = {}; // 解决urlç¼–ç æ—¶å–ä¸åˆ°å‚数的问题 var href = decodeURIComponent(window.location.href); href.replace(/([^?&=]+)=([^?&=#]*)/g, function (_, $1, $2) { hrefParams[$1] = hrefParams[$1] ? hrefParams[$1] : $2; }); var sc_message_id = hrefParams.wgp_msg_id || hrefParams.sc_message_id || ""; var sc_project = hrefParams.sc_project || ""; var sc_uid = hrefParams.sc_uid || ""; var p_test = hrefParams.p_test || ""; if (!sc_project) { // sc_projectæœªä¼ å€¼ï¼Œä½¿ç”¨é»˜è®¤å€¼ if (window.VConsole) { sc_project = "UA_WGP_System_test"; } else { sc_project = "UA_WGP_System"; } } var _plat = platform(); if (_plat === "") { // åªæœ‰åœ¨æµè§ˆå™¨çŽ¯å¢ƒæ‰ä¼šä¸ŠæŠ¥æ›å…‰äº‹ä»¶ï¼ˆåœ¨å¾®ä¿¡æˆ–支付å®çŽ¯å¢ƒä¸ä¼šä¸ŠæŠ¥æ›å…‰äº‹ä»¶ï¼‰ reportSensorsData({ event: "wgp_cart_page_view", }); } /* 错误ç : 10000 需è¦ç™»å½• 10001 ä¼ å‚错误 110001 åŠ è´å¤±è´¥ 110002 获å–微信openid失败 110003 ç”¨ä¼˜æƒ åˆ¸éœ€è¦å…ˆåŠ è´ 110004 订å•æ”¯ä»˜ä¸ï¼Œæ— 法继ç»åŠ è´ */ function alertFunc(str) { if (window.VConsole) { alert(str); } } // 判æ–是å¦ä¸ºæ”¯ä»˜å®æˆ–者微信 function platform() { if (/MicroMessenger/.test(window.navigator.userAgent)) { return "wx"; } else if (/AlipayClient/.test(window.navigator.userAgent)) { return "ali"; } else { return ""; } } function isMobile() { return /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ); } // 默认http设置 function getDefaultHttpParams() { return { // 默认值 timeout: DEFAULT_TIMEOUT, contentType: "application/json", dataType: "json", }; } // 是å¦æ•°ç»„ function isArrayEle(arr) { var res = false; if (arr && Array.isArray(arr) && arr.length > 0) { res = true; } return res; } /* å¤æ‚json转为FormData parent:key值,data:æ•°æ®å€¼ï¼Œform:FormData实例 使用:JsonToFormData("", a, null); */ function JsonToFormData(parent, data, form) { form = form || new FormData(); // å¾ªçŽ¯ä¼ å…¥çš„å€¼è½¬æ¢formData var index = 0; Object.keys(data).forEach((key) => { var val = data[key]; if (val === null) { var pk = parent ? parent + "[" + key + "]" : key; form.set(pk, val || ""); } else if (typeof val === "object") { if (val.length === 0) {} else if (val.length >= 1) { // 数组 var pk = parent ? parent + "[" + index + "]" + "[" + key + "]" : key; JsonToFormData(pk, val, form); } else { // 纯对象 var pk = parent ? parent + "[" + key + "]" : key; JsonToFormData(pk, val, form); } } else { var pk = parent ? parent + "[" + key + "]" : key; form.set(pk, val || ""); } index++; }); if (parent === "") return form; } // å°†formDataæ•°æ®è½¬åŒ–为å—符串 function transferFormDataToString(FormData) { var str = ""; for (var [key, value] of FormData) { str += key + "=" + value + "&"; } return str.substring(0, str.length - 1); } // åˆå¹¶è¯·æ±‚é…置(contentTypeã€timeoutã€withCredentialsã€headers) function getCombinedHttpParams(httpParams) { var httpObj = getDefaultHttpParams(); if (httpParams) { var httpKeys = Object.keys(httpParams); if (httpKeys.length > 0) { httpObj = Object.assign({}, httpObj, httpParams); } } return httpObj; } // 构建神ç–上报请求url function buildSensorsRequestUrl(dataObj) { var res = "https://prod-web.wondershare.cc/api/v1/email-report?"; for (var key in dataObj) { res += key + "=" + dataObj[key] + "&"; } if (res.endsWith("&")) { var len = res.length; res = res.substring(0, len - 1); } return res; } function getCookie(name) { var v = document.cookie.match("(^|;) ?" + name + "=([^;]*)(;|$)"); return v ? decodeURIComponent(v[2]) : null; } function getScDistinctId() { var sc_distinct_id = hrefParams.sc_distinct_id || ""; // 优先å–urlçš„å‚数,其次å–Cookie的值,最åŽè®¾ä¸º99999 if (!sc_distinct_id) { if (getCookie("ws_visit_id")) { sc_distinct_id = getCookie("ws_visit_id"); } else if (!sc_uid) { sc_distinct_id = "99999"; } } return sc_distinct_id; } // 上报神ç–æ•°æ® function reportSensorsData(data) { // åªæœ‰åœ¨æ‰«ç 页url有sc_projectå‚æ•°æ‰éœ€è¦ä¸ŠæŠ¥ç¥žç–埋点(ä¸é—´é¡µä¸ä¸ŠæŠ¥ï¼‰ if (!sc_project) { return; } var event = data.event; var params = { project: sc_project, type: "track", event: event, tid: "UA-WGP-System", message_id: sc_message_id, psource: hrefParams.sc_psource || "", distinct_id: getScDistinctId(), operation_id: hrefParams.sc_operation_id || "", uid: sc_uid, pid: hrefParams.sc_pid || "", pver: hrefParams.sc_pver || "", track_id: hrefParams.sc_track_id || "", order_id: data.order_id || "", }; if (hrefParams.sc_template_id) { params.template_id = hrefParams.sc_template_id; } if (hrefParams.sc_wechat_active_id) { params.wechat_active_id = hrefParams.sc_wechat_active_id; } if (hrefParams.sc_operation_tag) { params.operation_tag = hrefParams.sc_operation_tag; } alertFunc(JSON.stringify(params)); // https://prod-web.wondershare.cc/api/v1/email-report?project=UA_CscOperation_Web_test&type=track&event=recall_page_view&psource=email&distinct_id=551924004&operation_id=20211111_0_1_5&sku_id=20022&uid=551924004&pid=10789/10726/10788/3223&pver=&track_id=ef4bfcf0-42d3-11ec-b2f6-6c4b90e5cbb2 var fetchUrl = buildSensorsRequestUrl(params); fetch(fetchUrl, { method: "GET", }) .then((response) => response.text()) .then((result) => console.log(result)) .catch((error) => console.log("error", error)); } // 生æˆå”¯ä¸€ID function uuid() { var s = []; var hexDigits = "0123456789abcdef"; for (var i = 0; i < 36; i++) { s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); } s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010 s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 s[8] = s[13] = s[18] = s[23] = "-"; var uuid = s.join(""); return uuid; } // 原生请求通用函数 function httpRequest(obj, successfun, errFun) { var xhr = null; // 创建 XMLHttpRequest 对象,è€ç‰ˆæœ¬çš„ Internet Explorer (IE5 å’Œ IE6)使用 ActiveX 对象:xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") if (window.XMLHttpRequest) { // code for all new browsers xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { // code for IE5 and IE6 xhr = new ActiveXObject("Microsoft.XMLHTTP"); } // 判æ–是å¦æ”¯æŒè¯·æ±‚ if (xhr === null) { alert("æµè§ˆå™¨ä¸æ”¯æŒxmlHttp"); return; } // 请求方å¼ï¼Œ 转æ¢ä¸ºå¤§å†™ var httpMethod = (obj.method || "Get").toUpperCase(); // æ•°æ®ç±»åž‹ // var httpDataType = obj.dataType || "json"; var contentType = obj.contentType || "application/json"; var timeout = obj.timeout || DEFAULT_TIMEOUT; // 超时时间,å•ä½æ˜¯æ¯«ç§’ var withCredentials = obj.withCredentials || false; // è¯·æ±‚åœ°å€ var httpUrl = obj.url || ""; // 异æ¥è¯·æ±‚ var async = true; // 超时 xhr.timeout = timeout; // å…许æºå¸¦Cookie xhr.withCredentials = withCredentials; // get请求å‚æ•°å¤„ç† if (httpMethod === "GET") { var data = obj.data || {}; var requestData = ""; for (var gKey in data) { requestData += gKey + "=" + data[gKey] + "&"; } requestData = requestData.substring(0, requestData.length - 1); if (httpUrl.indexOf("?") !== -1 && httpUrl.indexOf("&") !== -1) { httpUrl += "&" + requestData; } else { httpUrl += "?" + requestData; } } else { // post put var data = obj.data || {}; var requestData = ""; if (data === "") { requestData = ""; } else { if (contentType === "application/x-www-form-urlencoded") { var formData = JsonToFormData("", data, null); requestData = transferFormDataToString(formData); } else if (contentType === "application/json") { requestData = JSON.stringify(data); // åºåˆ—化 } else { requestData = data; } } } // onreadystatechange 是一个事件å¥æŸ„。它的值 (state_Change) 是一个函数的å称,当 XMLHttpRequest 对象的状æ€å‘生改å˜æ—¶ï¼Œä¼šè§¦å‘æ¤å‡½æ•°ã€‚状æ€ä»Ž 0 (uninitialized) 到 4 (complete) 进行å˜åŒ–。仅在状æ€ä¸º 4 时,我们æ‰æ‰§è¡Œä»£ç xhr.onreadystatechange = function () { // complete if (xhr.readyState === 4) { if (xhr.status === 200) { // 请求æˆåŠŸæ‰§è¡Œçš„回调函数 var responseText1 = xhr.responseText || {}; if (responseText1 && typeof responseText1 === "string") { responseText1 = JSON.parse(responseText1); } successfun(responseText1); } else { // 请求失败的回调函数 var responseText2 = xhr.responseText || {}; if (responseText2 && typeof responseText2 === "string") { responseText2 = JSON.parse(responseText2); } errFun(responseText2); } } }; // è¯·æ±‚æŽ¥å£ if (httpMethod === "GET") { xhr.open("GET", httpUrl, async); xhr.send(null); } else { // post put xhr.open(httpMethod, httpUrl, async); // headerså¤„ç† var headers = obj.headers || {}; if (headers && typeof headers === "object") { for (var hk in headers) { xhr.setRequestHeader(hk, headers[hk]); } } xhr.setRequestHeader("Content-Type", contentType); xhr.send(requestData); } } var commonApiUtils = { baseUrl: "https://store.wondershare.cn/", baseApiUrl: "https://store.wondershare.cn", appid: "", timer: null, // åˆå§‹åŒ–è´ç‰©è½¦appid initShopAppId: function (appid) { this.appid = appid; }, // 获å–当å‰æ£åœ¨è½®è¯¢çš„定时器数值 getQueryPayResultTimer: function () { return this.timer; }, // =====================国内收银å°sku折扣系列api===================== // sdkåˆå§‹åŒ–接å£ï¼ˆpost)Content-Type application/json init: function (params, httpParams) { var appid = this.appid; var auth_type = params.auth_type || ""; // 7985 var code = params.auth_code || ""; // 499 var app_id = appid || ""; var app_key = params.app_key || ""; // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var data = { auth_type: auth_type, code: code, app_id: app_id, app_key: app_key, }; // extra_param组装,为åŽç«¯æ”¯ä»˜å®Œæˆï¼ˆwgp_order_finish)神ç–埋点åšå‡†å¤‡ if (sc_project) { var extra_param = { sc_project: sc_project, sc_message_id: sc_message_id, sc_psource: hrefParams.sc_psource || "", sc_distinct_id: getScDistinctId(), sc_operation_id: hrefParams.sc_operation_id || "", sc_uid: sc_uid, sc_pid: hrefParams.sc_pid || "", sc_pver: hrefParams.sc_pver || "", sc_track_id: hrefParams.sc_track_id || "", cart_type: "cn", // æ ‡è¯†å›½å†…è´ç‰©è½¦ }; if (hrefParams.sc_template_id) { extra_param.sc_template_id = hrefParams.sc_template_id; } if (hrefParams.sc_wechat_active_id) { extra_param.sc_wechat_active_id = hrefParams.sc_wechat_active_id; } data.extra_param = extra_param; } var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/init"; var requestData = Object.assign({}, { method: "post", url: url, data: data, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { if ( res && res.code === 0 && res.data && res.data.ws_id && !sc_uid ) { sc_uid = res.data.ws_id; } resolve(res); }, function (err) { reject(err); } ); }); }, // æŸ¥è¯¢ä¼˜æƒ åˆ¸åˆ—è¡¨ï¼ˆpost)Content-Type application/json getCoupons: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/coupon/query"; if (params.sku_list) { params.sku_id_list = params.sku_list; delete params.sku_list; } if (!params.country) { params.country = "CN"; // 国家默认值 } var requestData = Object.assign({}, { method: "post", url: url, data: params, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { if (res && res.code === 0 && isArrayEle(res.data)) { // åªè¿”回有效券(status=1) res.data = res.data.filter(function (item) { return item.status === 1; }); } resolve(res); }, function (err) { reject(err); } ); }); }, // 领å–ä¼˜æƒ åˆ¸ï¼ˆpost)Content-Type application/json reveiveCoupons: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/coupon/receive"; var requestData = Object.assign({}, { method: "post", url: url, data: params, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { resolve(res); }, function (err) { reject(err); } ); }); }, // 询价接å£ï¼ˆpost)Content-Type application/json å‰ç«¯BUY页é¢å±•ç¤ºä»·æ ¼ä¿¡æ¯ getCalcPrice: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/price/query"; if (params.coupon_no) { params.coupon_codes = params.coupon_no; delete params.coupon_no; } else { params.coupon_codes = ""; } if (!params.currency) { params.currency = "CNY"; // è´§å¸é»˜è®¤å€¼ } if (!params.country) { params.country = "CN"; // 国家默认值 } if ( params.sku_list && Array.isArray(params.sku_list) && params.sku_list.length > 0 ) { params.sku_list.map(function (item) { item.sku_id = Number(item.sku_id); // sku_idå—段转化为number类型 if ( item.contract_period === undefined || item.contract_period === null || item.contract_period === "" ) { item.contract_period = 0; } if ( item.modify_feature === undefined || item.modify_feature === null || item.modify_feature === "" ) { item.modify_feature = "[]"; } if (item.activity_ids === undefined || item.activity_ids === null) { item.activity_ids = ""; } if ( item.pay_activity_id === undefined || item.pay_activity_id === null || item.pay_activity_id === "" ) { item.pay_activity_id = 0; } }); } var requestData = Object.assign({}, { method: "post", url: url, data: params, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { resolve(res); }, function (err) { reject(err); } ); }); }, // 获å–支付会è¯id(post)Content-Type application/json getPaySessionId: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/get_session_key"; var requestData = Object.assign({}, { method: "post", url: url, data: params, }, httpObj ); // åˆå§‹åŒ–çŠ¶æ€ hasOrderPayReportOnce = false; return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { resolve(res); }, function (err) { reject(err); } ); }); }, // 获å–支付会è¯idã€è‡ªå¸¦å®šæ—¶å™¨è½®è¯¢ã€‘(post)Content-Type application/json getPaySessionIdWithTimer: function ( params, httpParams, timerInterval, payingCallback, payFinishCallback ) { // 请求相关的设置å‚æ•° var _this = this; var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/get_session_key"; var requestData = Object.assign({}, { method: "post", url: url, data: params, }, httpObj ); // åˆå§‹åŒ–çŠ¶æ€ hasOrderPayReportOnce = false; return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { if (res.code === 0 && res.data && res.data.pay_session_id) { _this.timer = setInterval( function () { var timerIntervalDefault = 10 * 1000; if (timerInterval) { if ( typeof timerInterval === "number" || typeof timerInterval === "string" ) { timerInterval = parseInt(timerInterval); } else { timerInterval = timerIntervalDefault; } } else { timerInterval = timerIntervalDefault; } var queryPayResultUrl = baseUrl + "/api/v1/cnorder/query_pay_result"; var queryPayResultParams = {}; queryPayResultParams.pay_session_id = res.data.pay_session_id; queryPayResultParams.app_id = _this.appid; queryPayResultParams.t = new Date().getTime(); var queryPayResultRequestData = Object.assign({}, { method: "get", url: queryPayResultUrl, data: queryPayResultParams, }, httpObj ); httpRequest( queryPayResultRequestData, function (res) { if (res && res.code === 0 && res.data) { // pay_status: 0 未扫ç 1 å·²ç»ä¸‹å•ã€äºŒç»´ç 需è¦å±è”½æŽ‰ï¼Œä¸èƒ½å†æ‰«ã€‘ 4 æ”¯ä»˜å®Œæˆ if (res.data.pay_status === 1) { if ( res && res.code === 0 && res.data && !hasOrderPayReportOnce && !isMobile() ) { var order_id = res.data.order_id || ""; reportSensorsData({ event: "wgp_pay_order", order_id: order_id, }); hasOrderPayReportOnce = true; } payingCallback && typeof payingCallback === "function" && payingCallback(); } else if (res.data.pay_status === 4) { // 支付æˆåŠŸï¼Œéœ€æ¸…除定时器 _this.timer && window.clearInterval(_this.timer); // åŽç«¯ä¸ŠæŠ¥wgp_order_finish事件埋点 payFinishCallback && typeof payFinishCallback === "function" && payFinishCallback(); } else if (res.data.pay_status !== 0) { // 支付失败 } } }, function (err) { console.log(err); } ); }.bind(this), timerInterval ); } resolve(res); }, function (err) { reject(err); } ); }); }, // èšåˆæ”¯ä»˜ç»„åˆapi /* // åŠ è´ // ä½¿ç”¨ä¼˜æƒ åˆ¸ï¼ˆä¼ å‚coupon_no有值,则需è¦è°ƒä½¿ç”¨ä¼˜æƒ 券接å£ï¼‰ // å‘起支付 // èšåˆæ”¯ä»˜æŽ¥å£ */ payCommon: function (params, httpParams) { hasOrderPayReportOnce = false; var t1 = new Date(); // 请求相关的设置å‚æ•° var directPayParams = { pay_session_id: params.pay_session_id, order_products: params.order_products, }; if (!params.request_id) { params.request_id = uuid(); } directPayParams.request_id = params.request_id; if (params.coupon_no) { directPayParams.coupon_id = params.coupon_no; } if (params.pay_type === "wx_jsapi" || params.pay_type === "wx_h5") { directPayParams.pay_method = 27; } if (params.pay_type === "alipay") { directPayParams.pay_method = 14; } if (params.pay_type === "alipay_app") { directPayParams.pay_method = 97; } if (params.pay_type === "wx_jsapi") { // 微信混åˆæ‰«ç åŠ è´æ— éœ€ä¼ wx_codeå’Œwx_appid directPayParams.wx_code = params.wx_code; directPayParams.wx_appid = params.wx_appid; } if (params.extra_param) { directPayParams.extra = params.extra_param; } if (params.extra) { directPayParams.extra = params.extra; } if (params.market_activity_id) { directPayParams.market_activity_id = params.market_activity_id; } var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var directPayUrl = baseUrl + "/api/v1/app/cnorder/directpay"; // 直接支付(åˆå¹¶åŽŸå…ˆåŠ è´ã€ä½¿ç”¨ä¼˜æƒ 券ã€æ”¯ä»˜æŽ¥å£ä¸ºä¸€ä¸ªæŽ¥å£ï¼‰ var directPayRequestData = Object.assign({}, { method: "post", url: directPayUrl, data: directPayParams, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( directPayRequestData, function (res) { // alertFunc(JSON.stringify(res)); if (res && res.code === 0 && res.data && res.data.pay_info) { var t2 = new Date(); if (p_test === "1") { alertFunc(t1 + " ~ " + t2); } res.data = res.data.pay_info; // åªè¦è´ä¹°é¡µå‰ç«¯è°ƒpayCommon API,待directpay接å£è¿”回pay_info(order_id)则上报wgp_pay_order事件埋点 // 在payCommon上报,åªé’ˆå¯¹h5æ”¯ä»˜æœ‰æ•ˆï¼Œå› ä¸ºæ··åˆæ‰«ç 该API是在ä¸é—´é¡µè°ƒç”¨ï¼Œæ¤æ—¶ä¸é—´é¡µæ²¡æœ‰ç¥žç–上报相关å‚数,所以混åˆæ‰«ç 实际ä¸ä¼šä¸ŠæŠ¥ if (_plat === "" && !hasOrderPayReportOnce) { var order_id = res.data.order_id || ""; reportSensorsData({ event: "wgp_pay_order", order_id: order_id, }); hasOrderPayReportOnce = true; } } resolve(res); }, function (err) { reject(err); } ); }); }, // åŠ è´æŽ¥å£ï¼ˆpost)Content-Type application/json addOrder: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/add_order"; var requestData = Object.assign({}, { method: "post", url: url, data: params, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { alertFunc(JSON.stringify(res)); resolve(res); }, function (err) { reject(err); } ); }); }, // ä½¿ç”¨ä¼˜æƒ åˆ¸ï¼ˆput)Content-Type application/json 注æ„是put请求 applyCoupon: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/apply_coupon"; if (params.coupon_no) { params.coupon_codes = params.coupon_no; delete params.coupon_no; } var requestData = Object.assign({}, { method: "put", url: url, data: params, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { resolve(res); }, function (err) { reject(err); } ); }); }, // å‘起支付(post)Content-Type application/json pay: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/pay"; var requestData = Object.assign({}, { method: "post", url: url, data: params, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { resolve(res); }, function (err) { reject(err); } ); }); }, // 查询支付结果(get) queryPayResult: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/query_pay_result"; params.app_id = this.appid; params.t = new Date().getTime(); var requestData = Object.assign({}, { method: "get", url: url, data: params, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { // æ··åˆæ‰«ç 场景pc端è´ä¹°é¡µè½®è¯¢æ”¯ä»˜çŠ¶æ€ä¸ŠæŠ¥wgp_pay_order神ç–埋点 // 微信内嵌æµè§ˆå™¨åœºæ™¯ï¼ˆç±»ä¼¼h5支付的场景,也是点击支付按钮拉起微信支付,payCommonä¼ å‚wx_jsapi,会轮询支付状æ€ï¼‰ä¹Ÿéœ€è¦ä¸ŠæŠ¥wgp_pay_order神ç–埋点 if ( res && res.code === 0 && res.data && res.data.pay_status === 1 && !hasOrderPayReportOnce && (!isMobile() || (isMobile() && _plat === "wx")) ) { // pay_status: 0 未扫ç 1 å·²ç»ä¸‹å•ã€äºŒç»´ç 需è¦å±è”½æŽ‰ï¼Œä¸èƒ½å†æ‰«ã€‘ 4 æ”¯ä»˜å®Œæˆ var order_id = res.data.order_id || ""; reportSensorsData({ event: "wgp_pay_order", order_id: order_id, }); hasOrderPayReportOnce = true; } resolve(res); }, function (err) { reject(err); } ); }); }, encodeUrlParams: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/set_params"; var requestData = Object.assign({}, { method: "post", url: url, data: params, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { resolve(res); }, function (err) { reject(err); } ); }); }, decodeUrlParams: function (params, httpParams) { // 请求相关的设置å‚æ•° var httpObj = getCombinedHttpParams(httpParams); var baseUrl = this.baseApiUrl; var url = baseUrl + "/api/v1/cnorder/get_params"; if (typeof params !== "string") { reject("please input stringï¼ï¼ï¼"); } url += "/" + params; var requestData = Object.assign({}, { method: "get", url: url, }, httpObj ); return new Promise(function (resolve, reject) { httpRequest( requestData, function (res) { resolve(res); }, function (err) { reject(err); } ); }); }, }; // ä¸é—´é¡µç”¨åˆ°çš„api window.wsWAPay = commonApiUtils; })();</pre></body></html>