IPAManager.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // IPAManager.h
  3. // MEISHI
  4. //
  5. // Created by CY on 2021/3/5.
  6. // Copyright © 2021 leo. All rights reserved.
  7. //
  8. /*注意事项:
  9. 1.沙盒环境测试appStore内购流程的时候,请使用没越狱的设备。
  10. 2.请务必使用真机来测试,一切以真机为准。
  11. 3.项目的Bundle identifier需要与您申请AppID时填写的bundleID一致,不然会无法请求到商品信息。
  12. 4.如果是你自己的设备上已经绑定了自己的AppleID账号请先注销掉,否则你哭爹喊娘都不知道是怎么回事。
  13. 5.订单校验 苹果审核app时,仍然在沙盒环境下测试,所以需要先进行正式环境验证,如果发现是沙盒环境则转到沙盒验证。
  14. 识别沙盒环境订单方法:
  15. 1.根据字段 environment = sandbox。
  16. 2.根据验证接口返回的状态码,如果status=21007,则表示当前为沙盒环境。
  17. 苹果反馈的状态码:
  18. 21000App Store无法读取你提供的JSON数据
  19. 21002 订单数据不符合格式
  20. 21003 订单无法被验证
  21. 21004 你提供的共享密钥和账户的共享密钥不一致
  22. 21005 订单服务器当前不可用
  23. 21006 订单是有效的,但订阅服务已经过期。当收到这个信息时,解码后的收据信息也包含在返回内容中
  24. 21007 订单信息是测试用(sandbox),但却被发送到产品环境中验证
  25. 21008 订单信息是产品环境中使用,但却被发送到测试环境中验证
  26. */
  27. typedef enum {
  28. IAPPurchSuccess = 0, // 购买成功
  29. IAPPurchFailed = 1, // 购买失败
  30. IAPPurchCancle = 2, // 取消购买
  31. IAPPurchVerFailed = 3, // 订单校验失败
  32. IAPPurchVerSuccess = 4, // 订单校验成功
  33. IAPPurchNotArrow = 5, // 不允许内购
  34. }IAPPurchType;
  35. typedef void (^IAPCompletionHandle)(IAPPurchType type,NSString *data);
  36. #import <Foundation/Foundation.h>
  37. NS_ASSUME_NONNULL_BEGIN
  38. @interface IPAManager : NSObject
  39. + (instancetype)shareIAPManager;
  40. //开始内购
  41. - (void)startPurchWithID:(NSString *)purchID completeHandle:(IAPCompletionHandle)handle;
  42. @end
  43. NS_ASSUME_NONNULL_END