diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/Common/Network/Sony/SonyCommerce.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.Client/Common/Network/Sony/SonyCommerce.h')
| -rw-r--r-- | Minecraft.Client/Common/Network/Sony/SonyCommerce.h | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/Network/Sony/SonyCommerce.h b/Minecraft.Client/Common/Network/Sony/SonyCommerce.h new file mode 100644 index 00000000..6df04947 --- /dev/null +++ b/Minecraft.Client/Common/Network/Sony/SonyCommerce.h @@ -0,0 +1,173 @@ +#pragma once + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#ifdef __PS3__ +#include <np.h> +#include <np/drm.h> +#include <np/commerce2.h> +#elif defined __PSVITA__ +#include <np.h> +#include <np_toolkit.h> +#else // __ORBIS__ + +#define SCE_NP_COMMERCE2_CATEGORY_ID_LEN SCE_TOOLKIT_NP_COMMERCE_CATEGORY_ID_LEN ///< The size of the category ID. +#define SCE_NP_COMMERCE2_PRODUCT_ID_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_ID_LEN ///< The size of the product ID. +#define SCE_NP_COMMERCE2_CATEGORY_NAME_LEN SCE_TOOLKIT_NP_COMMERCE_CATEGORY_NAME_LEN ///< The size of the category name. +#define SCE_NP_COMMERCE2_CATEGORY_DESCRIPTION_LEN SCE_TOOLKIT_NP_COMMERCE_CATEGORY_DESCRIPTION_LEN ///< The size of the category description. +#define SCE_NP_COMMERCE2_URL_LEN SCE_TOOLKIT_NP_COMMERCE_URL_LEN ///< The size of the URL. +#define SCE_NP_COMMERCE2_PRODUCT_NAME_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_NAME_LEN ///< The size of the product name. +#define SCE_NP_COMMERCE2_PRODUCT_SHORT_DESCRIPTION_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_SHORT_DESCRIPTION_LEN ///< The size of the product short description. +#define SCE_NP_COMMERCE2_SP_NAME_LEN SCE_TOOLKIT_NP_COMMERCE_SP_NAME_LEN ///< The size of the licensee (publisher) name. +#define SCE_NP_COMMERCE2_CURRENCY_CODE_LEN SCE_TOOLKIT_NP_COMMERCE_CURRENCY_CODE_LEN ///< The size of currency code. +#define SCE_NP_COMMERCE2_CURRENCY_CODE_LEN SCE_TOOLKIT_NP_COMMERCE_CURRENCY_CODE_LEN +#define SCE_NP_COMMERCE2_CURRENCY_SYMBOL_LEN SCE_TOOLKIT_NP_COMMERCE_CURRENCY_SYMBOL_LEN ///< The size of currency symbol. +#define SCE_NP_COMMERCE2_THOUSAND_SEPARATOR_LEN SCE_TOOLKIT_NP_COMMERCE_THOUSAND_SEPARATOR_LEN ///< The size of the character separating every 3 digits of the price. +#define SCE_NP_COMMERCE2_DECIMAL_LETTER_LEN SCE_TOOLKIT_NP_COMMERCE_DECIMAL_LETTER_LEN ///< The size of the character indicating the decimal point in the price. +#define SCE_NP_COMMERCE2_SKU_ID_LEN SCE_TOOLKIT_NP_COMMERCE_SKU_ID_LEN ///< The size of the SKU ID. +#define SCE_NP_COMMERCE2_PRODUCT_LONG_DESCRIPTION_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_LONG_DESCRIPTION_LEN ///< The size of the product long description. +#define SCE_NP_COMMERCE2_PRODUCT_LEGAL_DESCRIPTION_LEN SCE_TOOLKIT_NP_COMMERCE_PRODUCT_LEGAL_DESCRIPTION_LEN ///< The size of the product legal description. +#define SCE_NP_COMMERCE2_RATING_SYSTEM_ID_LEN SCE_TOOLKIT_NP_COMMERCE_RATING_SYSTEM_ID_LEN ///< The size of the rating system ID. +#define SCE_NP_ENTITLEMENT_ID_SIZE SCE_TOOLKIT_NP_COMMERCE_ENTITLEMENT_ID_LEN ///< The size of entitlement ID. +#endif + +#ifndef __PSVITA__ +#define SCE_TOOLKIT_NP_SKU_PRICE_LEN (SCE_NP_COMMERCE2_CURRENCY_CODE_LEN \ + + SCE_NP_COMMERCE2_CURRENCY_SYMBOL_LEN \ + + SCE_NP_COMMERCE2_THOUSAND_SEPARATOR_LEN \ + + SCE_NP_COMMERCE2_DECIMAL_LETTER_LEN) ///< The maximum length of a price in characters. +#endif + +class SonyCommerce +{ + +public: + typedef void (*CallbackFunc)(LPVOID lpParam, int error_code); + + + /// @brief + /// Contains information about a subcategory on the PlayStation(R)Store. + /// + /// Contains information about a subcategory on the PlayStation(R)Store. + typedef struct CategoryInfoSub + { + char categoryId[SCE_NP_COMMERCE2_CATEGORY_ID_LEN]; ///< The ID of the subcategory. + char categoryName[SCE_NP_COMMERCE2_CATEGORY_NAME_LEN]; ///< The name of the subcategory. + char categoryDescription[SCE_NP_COMMERCE2_CATEGORY_DESCRIPTION_LEN]; ///< The detailed description of the subcategory. + char imageUrl[SCE_NP_COMMERCE2_URL_LEN]; ///< The image URL of the subcategory. + } + CategoryInfoSub; + + /// @brief + /// Current category information + /// + /// This structure contains information about a category on the PlayStation(R)Store + typedef struct CategoryInfo + { + CategoryInfoSub current; ///< The currently selected subcategory. + std::list<CategoryInfoSub> subCategories; ///< Information about the subcategories in this category. + uint32_t countOfProducts; ///< The number of products in the category. + uint32_t countOfSubCategories; ///< The number of subcategories. + } + CategoryInfo; + + /// Contains information about a product in the PlayStation(R)Store. + typedef struct ProductInfo + { + uint32_t purchasabilityFlag; ///< A flag that indicates whether the product can be purchased (<c>SCE_NP_COMMERCE2_SKU_PURCHASABILITY_FLAG_XXX</c>). + uint32_t annotation; // SCE_NP_COMMERCE2_SKU_ANN_PURCHASED_CANNOT_PURCHASE_AGAIN or SCE_NP_COMMERCE2_SKU_ANN_PURCHASED_CAN_PURCHASE_AGAIN + uint32_t ui32Price; + char productId[SCE_NP_COMMERCE2_PRODUCT_ID_LEN]; ///< The product ID. + char productName[SCE_NP_COMMERCE2_PRODUCT_NAME_LEN]; ///< The name of the product. + char shortDescription[SCE_NP_COMMERCE2_PRODUCT_SHORT_DESCRIPTION_LEN]; ///< A short description of the product. + char longDescription[SCE_NP_COMMERCE2_PRODUCT_LONG_DESCRIPTION_LEN]; ///< A long description of the product. + char skuId[SCE_NP_COMMERCE2_SKU_ID_LEN]; ///< The SKU ID + char spName[SCE_NP_COMMERCE2_SP_NAME_LEN]; ///< The service provider name. + char imageUrl[SCE_NP_COMMERCE2_URL_LEN]; ///< The product image URL. + char price[SCE_TOOLKIT_NP_SKU_PRICE_LEN]; ///< The price of the product. This is formatted to include the currency code. + char padding[6]; ///< Padding. +#ifdef __PS3__ + CellRtcTick releaseDate; ///< The product release date. +#else + SceRtcTick releaseDate; +#endif + } + ProductInfo; + + /// @brief + /// Contains detailed information about a product on the PlayStation(R)Store. + /// + /// Contains detailed information about a product on the PlayStation(R)Store. + typedef struct ProductInfoDetailed + { + uint32_t purchasabilityFlag; ///< A flag that indicates whether the product can be purchased (<c>SCE_NP_COMMERCE2_SKU_PURCHASABILITY_FLAG_XXX</c>). + uint32_t ui32Price; + char skuId[SCE_NP_COMMERCE2_SKU_ID_LEN]; ///< The SKU ID + char productId[SCE_NP_COMMERCE2_PRODUCT_ID_LEN]; ///< The product ID. + char productName[SCE_NP_COMMERCE2_PRODUCT_NAME_LEN]; ///< The name of the product. + char shortDescription[SCE_NP_COMMERCE2_PRODUCT_SHORT_DESCRIPTION_LEN]; ///< A short description of the product. + char longDescription[SCE_NP_COMMERCE2_PRODUCT_LONG_DESCRIPTION_LEN]; ///< A long description of the product. + char legalDescription[SCE_NP_COMMERCE2_PRODUCT_LEGAL_DESCRIPTION_LEN]; ///< The legal description for the product. + char spName[SCE_NP_COMMERCE2_SP_NAME_LEN]; ///< The service provider name. + char imageUrl[SCE_NP_COMMERCE2_URL_LEN]; ///< The product image URL. + char price[SCE_TOOLKIT_NP_SKU_PRICE_LEN]; ///< The price of the product. This is formatted to include the currency code. + char ratingSystemId[SCE_NP_COMMERCE2_RATING_SYSTEM_ID_LEN]; ///< The ID of the rating system (for example: PEGI, ESRB). + char ratingImageUrl[SCE_NP_COMMERCE2_URL_LEN]; ///< The URL of the rating icon. + char padding[2]; ///< Padding. +#ifdef __PS3__ + std::list<SceNpCommerce2ContentRatingDescriptor> ratingDescriptors; ///< The list of rating descriptors. + CellRtcTick releaseDate; ///< The product release date. +#else + SceRtcTick releaseDate; ///< The product release date. +#endif + } + ProductInfoDetailed; + + /// @brief + /// Checkout parameters + /// + /// This structure contains list of SKUs to checkout to and a memory container + typedef struct CheckoutInputParams + { + std::list<const char *> skuIds; ///< List of SKU IDs +#ifdef __PS3__ + sys_memory_container_t *memContainer; ///< Memory container for checkout overlay +#endif + } + CheckoutInputParams; + + /// @brief + /// Contains download list parameters. + /// + /// Contains download list parameters. + typedef struct DownloadListInputParams + { + std::list<const char *> skuIds; ///< The list of SKU IDs +#ifdef __PS3__ + sys_memory_container_t *memContainer; ///< A memory container for checkout overlay. +#endif + const char* categoryID; + } + DownloadListInputParams; + + +public: + virtual void CreateSession(CallbackFunc cb, LPVOID lpParam) = 0; + virtual void CloseSession() = 0; + + virtual void GetCategoryInfo(CallbackFunc cb, LPVOID lpParam, CategoryInfo *info, const char *categoryId) = 0; + virtual void GetProductList(CallbackFunc cb, LPVOID lpParam, std::vector<ProductInfo>* productList, const char *categoryId) = 0; + virtual void GetDetailedProductInfo(CallbackFunc cb, LPVOID lpParam, ProductInfoDetailed* productInfoDetailed, const char *productId, const char *categoryId) = 0; + virtual void AddDetailedProductInfo( CallbackFunc cb, LPVOID lpParam, ProductInfo* productInfo, const char *productId, const char *categoryId ) = 0; + virtual void Checkout(CallbackFunc cb, LPVOID lpParam, const char* skuID) = 0; + virtual void DownloadAlreadyPurchased(CallbackFunc cb, LPVOID lpParam, const char* skuID) = 0; +#if defined(__ORBIS__) || defined( __PSVITA__) + virtual void Checkout_Game(CallbackFunc cb, LPVOID lpParam, const char* skuID) = 0; + virtual void DownloadAlreadyPurchased_Game(CallbackFunc cb, LPVOID lpParam, const char* skuID) = 0; +#endif + virtual void UpgradeTrial(CallbackFunc cb, LPVOID lpParam) = 0; + virtual void CheckForTrialUpgradeKey() = 0; + virtual bool LicenseChecked() = 0; + +}; |
