/// <summary> /// 检测订单 /// </summary> /// <param name="item">Item.</param> public void Check(PurchaseBillingItem item) { if (_queue == null) { LoadQueue(); } Debug.Log("[MTPBHelper] Check item = " + item.DebugLog()); _queue.Add(item); _queueDirty = true; }
IEnumerator sendLoop() { while (true) { yield return(new WaitForSeconds(_lastSucc ? sendInterval : retryDelay)); if (_queue == null) { LoadQueue(); } if (_queue == null || _queue.Count == 0) { continue; } PurchaseBillingItem item = _queue [0]; // sign string sign = MTSecurity.Md5Sum(item.message + signKey); Debug.Log("[MTPBHelper] Sending check: " + item.message + "," + item.iapKey); Dictionary <string, string> headers = new Dictionary <string, string> (); headers ["sign"] = sign; headers ["Content-Type"] = "application/json"; byte[] bytes = System.Text.Encoding.UTF8.GetBytes(item.message); #pragma warning disable CS0618 // 类型或成员已过时 WWW www = new WWW(baseUrl, bytes, headers); yield return(www); if (www.error != null) { Debug.Log("[MTPBHelper] send Error: " + www.error); _lastSucc = false; } else // success, remove from queue { _queue.RemoveAt(0); _queueDirty = true; _lastSucc = true; int code = 1; if (www.text == null) { Debug.LogError("[MTPBHelper] www.text = null"); } else { MTJSONObject jObject = MTJSON.Deserialize(www.text); if (jObject == null) { Debug.LogError("[MTPBHelper] JSON Object (www.text) = null"); code = 2; AddKey(new PurchaseResult(item.iapKey, code)); } else { jObject = jObject.Get("ret_status"); if (jObject == null) { Debug.LogError("[MTPBHelper] ret_status = null, www.text = " + www.text); code = 3; AddKey(new PurchaseResult(item.iapKey, code)); } else { Debug.Log("[MTPBHelper] send Succ code = " + code); code = jObject.i; AddKey(new PurchaseResult(item.iapKey, code)); } } } OnCheckFinished(code, item.iapKey); } } }