Пример #1
0
        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);
        }
Пример #2
0
    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;
        }
    }
Пример #3
0
	public virtual void SendCheckReceipt( ArkTransaction _arkTransaction) { }
Пример #4
0
	public virtual bool StartGetItemProcess( ArkTransaction _transaction) {return false; }
Пример #5
0
    // 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;
    }
Пример #6
0
    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();

  
    }
Пример #7
0
	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;
		}
	}