studd
started a topic on Tue, 13 January 2015 at 12:29 PM
I'm just messing around with the C++ SDK, and I can't figure out why rapidjson triggers an assert when I'm trying to pay for my order.
Here are the Playfab related functions I call before the assert :
void PFNetwork::login(void* userData)
{
getCredentials();
if (canContactPlayfab())
{
LoginWithPlayFabRequest loginWithPlayFabRequest;
PlayFabSettings::titleId = id; //Title (game) ID
loginWithPlayFabRequest.Username = log; //Playfab login
loginWithPlayFabRequest.Password = pass; //PlayFab password
playFabClientAPI.LoginWithPlayFab(loginWithPlayFabRequest, loginWithPlayFabCallback, errorCallback, userData);
}
}
/**
Callback called when login is done.
/
void loginWithPlayFabCallback(LoginResult& result, void userData)
{
static_cast<MultiplayerGameState*>(userData)->buyMissiles();
PFNetwork::setCallbackCalled(true);
}
void PFNetwork::buy(string name, int amount, void* userData)
{
StartPurchaseRequest purchaseRequest;
std::listClientModels::ItemPuchaseRequest items;
ClientModels::ItemPuchaseRequest item;
item.ItemId = name;
item.Quantity = amount;
items.push_back(item);
purchaseRequest.Items = items;
playFabClientAPI.StartPurchase(purchaseRequest, multiplePurchaseItemCallback, errorCallback, userData);
}
void multiplePurchaseItemCallback(StartPurchaseResult& result, void* userData)
{
string providerName;
for (auto& p : result.PaymentOptions)
if (p.Currency == "MS")
providerName = p.ProviderName;
PFNetwork::Instance().payForPurchase(providerName, result.OrderId, "MS", userData);
}
void PFNetwork::payForPurchase(string provider, string orderId, string currency, void* userData)
{
PayForPurchaseRequest payRequest;
payRequest.Currency = currency;
payRequest.ProviderName = provider;
payRequest.OrderId = orderId;
playFabClientAPI.PayForPurchase(payRequest, payPurchaseItemCallback, errorCallback, userData);
}
Before the payPurchaseItemCallback is called, I have this assert :