//====== Copyright © 1996-2004, Valve Corporation, All rights reserved. ======= // // Purpose: interface to Billings data in Steam // //============================================================================= #ifndef ISTEAMBILLING_H #define ISTEAMBILLING_H #ifdef _WIN32 #pragma once #endif //----------------------------------------------------------------------------- // Purpose: interface to billing //----------------------------------------------------------------------------- class ISteamBilling { public: // Sets the billing address in the ISteamBilling object for use by other ISteamBilling functions (not stored on server) virtual bool SetBillingAddress( const char *pchName, const char *pchAddress1, const char *pchAddress2, const char *pchCity, const char *pchPostcode, const char *pchState, const char *pchCountry, const char *pchPhone ) = 0; // Gets any previous set billing address in the ISteamBilling object (not stored on server) virtual bool GetBillingAddress( char *pchName, char *pchAddress1, char *pchAddress2, char *pchCity, char *pchPostcode, char *pchState, char *pchCountry, char *pchPhone ) = 0; // Sets the billing address in the ISteamBilling object for use by other ISteamBilling functions (not stored on server) virtual bool SetShippingAddress( const char *pchName, const char *pchAddress1, const char *pchAddress2, const char *pchCity, const char *pchPostcode, const char *pchState, const char *pchCountry, const char *pchPhone ) = 0; // Gets any previous set billing address in the ISteamBilling object (not stored on server) virtual bool GetShippingAddress( char *pchName, char *pchAddress1, char *pchAddress2, char *pchCity, char *pchPostcode, char *pchState, char *pchCountry, char *pchPhone ) = 0; // Ask the server for the final price of package: requires that ISteamBilling billing & shipping address are set (can be same) virtual bool GetFinalPrice( int32 nPackageID ) = 0; // Sets the credit card info in the ISteamBilling object for use by other ISteamBilling functions (may eventually also be stored on server) virtual bool SetCardInfo( int32 eCreditCardType, const char *pchCardNumber, const char *pchCardHolderName, const char *pchCardExpYear, const char *pchCardExpMonth, const char *pchCardCVV2 ) = 0; // Gets any credit card info in the ISteamBilling object (not stored on server) virtual bool GetCardInfo( int32 *eCreditCardType, char *pchCardNumber, char *pchCardHolderName, char *pchCardExpYear, char *pchCardExpMonth, char *pchCardCVV2 ) = 0; // Ask the server to purchase a package: requires that ISteamBilling cardinfo, billing & shipping address are set virtual bool Purchase( int32 nPackageID, int32 nExpectedCostCents, uint64 gidCardID, // if non-NIL, use a server stored card bool bStoreCardInfo ) = 0; // Should this cardinfo also be stored on the server }; #define STEAMBILLING_INTERFACE_VERSION "SteamBilling001" enum { k_iSteamBillingCallbacks = 400 }; //----------------------------------------------------------------------------- // Purpose: called when this client has received a finalprice message from a Billing //----------------------------------------------------------------------------- struct FinalPriceMsg_t { enum { k_iCallback = k_iSteamBillingCallbacks + 1 }; uint32 m_bSuccess; uint32 m_nBaseCost; uint32 m_nTotalDiscount; uint32 m_nTax; uint32 m_nShippingCost; }; struct PurchaseMsg_t { enum { k_iCallback = k_iSteamBillingCallbacks + 2 }; uint32 m_bSuccess; int32 m_EPurchaseResultDetail; // Detailed result information }; #endif // ISTEAMBILLING_H