question

zaminfareed76 avatar image
zaminfareed76 asked

i want to implement steam in game purchase here is my code when i play this it put me in sandbox i want to switch to real transation please tell what i am missing?

using System;

using System.Text;

using PlayFab;

using PlayFab.ClientModels;

using Steamworks;

using UnityEngine;

using BubbleShooterKit;

using System.Collections.Generic;

using UnityEngine.UI;

public class purchaseSteam : MonoBehaviour

{

protected Callback<MicroTxnAuthorizationResponse_t> m_MicroTxnAuthorizationResponse;

public static purchaseSteam instance;

int counter = 0;

public Action<PlayFabError> ErrorCallback { get; private set; }

public Action<StartPurchaseResult> startPurchaseCallback { get; private set; }

void Start()

{

if (SteamManager.Initialized)

{

m_MicroTxnAuthorizationResponse = Callback<MicroTxnAuthorizationResponse_t>.Create(OnMicroTxnAuthorizationResponse);

PlayFabClientAPI.LoginWithSteam(new LoginWithSteamRequest

{

CreateAccount = true,

SteamTicket = GetSteamAuthTicket()

}, OnComplete, OnFailed);

}

instance = this;}

void Awake()

{

PlayFabSettings.TitleId = "FAE03";

}

public string GetSteamAuthTicket()

{

byte[] ticketBlob = new byte[1024];

uint ticketSize;

HAuthTicket hTicket = SteamUser.GetAuthSessionTicket(ticketBlob, ticketBlob.Length, out ticketSize);

Array.Resize(ref ticketBlob, (int)ticketSize);

StringBuilder sb = new StringBuilder();

foreach (byte b in ticketBlob) {

sb.AppendFormat("{0:x2}", b);

}

return sb.ToString(); }

public void OnGUI()

{

if (GUILayout.Button("Log In"))

{

if (SteamManager.Initialized)

{

// Execute PlayFab API call to log in with steam ticket PlayFabClientAPI.LoginWithSteam(new LoginWithSteamRequest {

CreateAccount = true, SteamTicket = GetSteamAuthTicket() }, OnComplete, OnFailed); }

} }

private void OnMicroTxnAuthorizationResponse(MicroTxnAuthorizationResponse_t pCallback)

{

if (pCallback.m_bAuthorized == 1) {

Debug.Log("Authorized Payment");

ConfirmPurchase(pCallback.m_ulOrderID.ToString()); }

else { Debug.Log("Failed to authorize payment"); }}

private void ConfirmPurchase(string orderId)

{

PlayFabClientAPI.ConfirmPurchase(new ConfirmPurchaseRequest() { OrderId = orderId },

result =>

{ Debug.Log("CONFIRM PURCHASE"); },

error =>

{

Debug.Log("PURCHASE CONFIRM FAILED: " + error.ErrorMessage); });

}

private void OnComplete(LoginResult obj)

{

Debug.Log("Success!");

}

private void OnFailed(PlayFabError error)

{

Debug.Log("Failed: " + error.GenerateErrorReport());

}

public void purchase()

{

if (counter == 0)

{

if (SteamManager.Initialized)

{

PlayFabClientAPI.LoginWithSteam(new LoginWithSteamRequest

{

CreateAccount = true,

SteamTicket = GetSteamAuthTicket()

}, OnComplete, OnFailed);

}

counter++;

}

if (chooser.instance.choose == 1)

{

chooser.instance.choose = 0; Debug.Log("1");

Buy();

}

else if (chooser.instance.choose2 == 1)

{

chooser.instance.choose2 = 0;

Debug.Log("2");

Buy2();

}

else if (chooser.instance.choose3 == 1)

{

Debug.Log("3");

Buy3();

chooser.instance.choose3 = 0;

}

else if (chooser.instance.choose4 == 1)

{ chooser.instance.choose4 = 0;

Debug.Log("4");

Buy4();

}

else if (chooser.instance.choose5 == 1)

{ chooser.instance.choose5 = 0;

Debug.Log("5"); Buy5();

}

}

void Buy()

{

PlayFabClientAPI.StartPurchase(new StartPurchaseRequest()

{

CatalogVersion = "inapps",

StoreId = "inapp",

Items = new List<ItemPurchaseRequest>() { new ItemPurchaseRequest()

{ ItemId = "One", Quantity = 1, Annotation = "300 coins"

}

}

},

result =>

{

PlayFabClientAPI.PayForPurchase(new PayForPurchaseRequest()

{

OrderId = result.OrderId,

ProviderName = "Steam",

Currency = "RM"

},

OnPurchaseComplete, OnPurchaseFailed);

},

error =>

{ Debug.Log("Purchase failed1: " + error.ErrorMessage); });

void OnPurchaseComplete

(PayForPurchaseResult startPurchaseResult)

{ Debug.Log("PayForPurchase OnPurchaseComplete");

if (chooser.instance.choose == 1)

{ PurchasableItem.instance.buySteam1();

chooser.instance.choose = 0; }

else if (chooser.instance.choose2 == 1)

{

PurchasableItem.instance.buySteam2();

chooser.instance.choose2 = 0;

}

else if (chooser.instance.choose3 == 1)

{

PurchasableItem.instance.buySteam3();

chooser.instance.choose3 = 0;

}

else if (chooser.instance.choose4 == 1)

{

PurchasableItem.instance.buySteam4();

chooser.instance.choose4 = 0;

}

else if (chooser.instance.choose5 == 1)

{ PurchasableItem.instance.buySteam5();

chooser.instance.choose5 = 0; }

}

void OnPurchaseFailed(PlayFabError playFabError)

{

Debug.Log("Purchase failed2: " + playFabError.ErrorMessage);

}

sdksIn-Game Economy
1 comment
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Sarah Zhang avatar image Sarah Zhang commented ·

Have you unchecked the "Enable sandbox mode for purchasing in Steam" option that in the [Game Manager]->[Title Settings]->[General]?
https://developer.playfab.com/en-US/r/t/FAE03/settings/general

0 Likes 0 ·

0 Answers

·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.