public static ArkTransaction GetUnConfirmedById(string id) { var path = "/api/transactions/unconfirmed"; var response = NetworkApi.Instance.ActivePeer.MakeRequest("GET", path + "/get?id=" + id); var parsed = JObject.Parse(response); var trans = new ArkTransaction(); if (!Convert.ToBoolean(parsed["success"])) { trans.Id = parsed["error"].ToString(); } else { trans = JsonConvert.DeserializeObject <ArkTransaction>(parsed["transaction"].ToString()); } return(trans); }
public static ArkTransaction ReadFromFile(string _fileName) { string filePath = path + "/" + _fileName + fileExtention; if (File.Exists(filePath)) { FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite); BinaryReader br = new BinaryReader(fs); string transBuffer = br.ReadString(); byte[] buffer = System.Convert.FromBase64String(transBuffer); br.Close(); fs.Close(); MemoryStream ms = new MemoryStream(buffer); br = new BinaryReader(ms); ArkTransaction transa = new ArkTransaction(); transa.userID = br.ReadString(); transa.characterName = br.ReadString(); transa.productID = br.ReadString(); transa.transactionIdentifier = br.ReadString(); transa.json = br.ReadString(); transa.slot = br.ReadInt32(); transa.quantity = br.ReadInt32(); transa.characterUniqueKey = br.ReadUInt32(); transa.serverID = br.ReadInt32(); transa.friendUniqueKey = br.ReadUInt32(); transa.registerKey = br.ReadInt32(); br.Close(); ms.Close(); return transa; } else { Debug.Log("File is not exist = " + filePath); return null; } }
public virtual void SendCheckReceipt( ArkTransaction _arkTransaction) { }
public virtual bool StartGetItemProcess( ArkTransaction _transaction) {return false; }
// start public override bool StartGetItemProcess(ArkTransaction _transaction) { Debug.Log("StartGetItemProcess()"); nowPurchaseState = PurchaseState.START_PROCESS_TRANSACTION; nowArkTransaction = _transaction; if (AsNetworkIAPManager.Instance.IsConnected() == true) { nowArkTransaction.isRetryConnectIAPAServer = false; SendCheckReceipt(nowArkTransaction); if (nowArkTransaction.isUnHandled == false) ShowLoadingIndigator(AsTableManager.Instance.GetTbl_String(375)); } else { StartCoroutine("ReConnectIAPAServerProcess"); } return true; }
public override void SendCheckReceipt(ArkTransaction _arkTransaction) { byte[] productID = System.Text.ASCIIEncoding.ASCII.GetBytes(_arkTransaction.productID); uint chracterUniqueKey = 0; if (AsCashStore.Instance != null) { eCHARGETYPE type = AsCashStore.Instance.GetChargeType(_arkTransaction.productID); if (type == eCHARGETYPE.eCHARGETYPE_GOLD) { chracterUniqueKey = _arkTransaction.characterUniqueKey; } } body_CI_APPLE_IAP_START data = new body_CI_APPLE_IAP_START(AsUserInfo.Instance.LoginUserUniqueKey, chracterUniqueKey, _arkTransaction.slot, System.Convert.ToUInt64(_arkTransaction.transactionIdentifier), _arkTransaction.quantity, productID, _arkTransaction.GetSize()); AsCommonSender.SendToIAP(data.ClassToPacketBytes()); AsWebRequest.Instance.Request_Purchase(190105, Application.platform, "", "Req Check Receipt"); nowPurchaseState = PurchaseState.REQUEST_CHECK_RECEIPT; MakeTimerForCheckReceipt(); }
public void SaveTransaction(StoreKitTransaction _transaction, bool _StartGetItemProcess) { Debug.LogWarning("Save Tran"); uint chaUniqueKey = 0; if ( AsGameMain.s_gameState == GAME_STATE.STATE_INGAME) chaUniqueKey = AsUserInfo.Instance.GetCurrentUserCharacterInfo().nCharUniqKey; int serverID = AsUserInfo.Instance.CurrentServerID; int slot = AsTableManager.Instance.GetChargeRecordSlotNumber(_transaction.productIdentifier); if (slot == -1) return; ArkTransaction transaction = new ArkTransaction(string.Empty, string.Empty, _transaction.productIdentifier, _transaction.transactionIdentifier, _transaction.base64EncodedTransactionReceipt, slot, _transaction.quantity, chaUniqueKey, serverID, 0, 0); // register key transaction.WriteToFile(); if (_StartGetItemProcess == true) { StartGetItemProcess(transaction); nowPurchaseState = PurchaseState.RESULT_PURCHASED; } }