IAPUtils.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. //
  2. // IAPUtils.cpp
  3. // cocos2d_libs
  4. //
  5. // Created by ZhengSong on 2021/5/6.
  6. //
  7. #include "IAPUtils.h"
  8. #include "IAPPlatform.h"
  9. #include "IAPDelegate.h"
  10. #include "cocos2d.h"
  11. static iap::IAPUtils* mIAPUtils = nullptr;
  12. iap::IAPUtils* iap::IAPUtils::getInstance() {
  13. if (!mIAPUtils) {
  14. mIAPUtils = new(std::nothrow) iap::IAPUtils();
  15. }
  16. return mIAPUtils;
  17. }
  18. iap::IAPUtils::IAPUtils()
  19. : _delegate(nullptr)
  20. {
  21. }
  22. iap::IAPUtils::~IAPUtils() {
  23. }
  24. iap::IAPProductInfo iap::IAPUtils::getProductInfo(const std::string &productId) {
  25. return iap::IAPPlatform::getProductInfo(productId);
  26. }
  27. void iap::IAPUtils::purchase(const std::string &productId) {
  28. auto scene = Director::getInstance()->getRunningScene();
  29. scene->scheduleOnce([=](float) {
  30. if (_delegate != nullptr) {
  31. _delegate->onProductPurchaseSuccess(productId);
  32. }
  33. }, 0.1, "SCH_SimPurchaseSuccess");
  34. }
  35. void iap::IAPUtils::setLogMode(bool isLog) {
  36. iap::IAPPlatform::setLogMode(isLog);
  37. }
  38. void iap::IAPUtils::loadIAPConfig() {
  39. }
  40. void iap::IAPUtils::initWithProductIds(const std::map<std::string, IAPProductType> &productIds) {
  41. if (_isInited) {
  42. return;
  43. }
  44. _isInited = true;
  45. }
  46. #pragma mark - 平台回调
  47. void iap::IAPUtils::nativeCallback_onProductInfoSyncFinished() {
  48. if (_delegate != nullptr) {
  49. _delegate->onProductInfoSyncFinished();
  50. }
  51. }
  52. void iap::IAPUtils::nativeCallback_onPurchaseSuccess(const std::string& productId) {
  53. if (_delegate != nullptr) {
  54. _delegate->onProductPurchaseSuccess(productId);
  55. }
  56. }
  57. void iap::IAPUtils::nativeCallback_onPurchaseFail(const std::string& productId, int errorCode, const std::string& errorMsg) {
  58. if (_delegate != nullptr) {
  59. _delegate->onProductPurchaseFail(productId, errorCode, errorMsg);
  60. }
  61. }
  62. void iap::IAPUtils::nativeCallback_onSyncPurchasedProducts(const std::string& productIdListJson) {
  63. }