ApplePayAgent.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. //
  2. // ApplePayAgent.h
  3. // TestProj
  4. //
  5. // Created by DLWX on 2017/6/21.
  6. // Copyright © 2017年 DLWX. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <StoreKit/StoreKit.h>
  10. //static NSString *PayResultKey = @"payResult"; //支付状态:0-失败,1-成功
  11. //static NSString *PayReasonKey = @"payReason"; //支付结果:文字
  12. static NSString *PayproductIdKey = @"productId"; //商品ID
  13. static NSString *PayTradeIdKey = @"payTradeId"; //唯一支付凭证 unique server-provided identifier
  14. static NSString *PayDescriptionKey = @"payDescription"; //支付详细信息
  15. static NSString *PayReceiptKey = @"receipt"; // 票据
  16. static NSString *PayPayTimeKey = @"payTime"; // 支付时间
  17. static NSString *PayAppleOrderIdKey = @"appleorderid"; // 苹果订单ID
  18. static NSString *PaySkuTypeKey = @"skuType"; // 类型 内购或订阅
  19. static NSString *PayIsTestKey = @"isSandboxTest"; // 是否是沙盒测试
  20. static NSString *SkuTypeAutoSubsKey = @"autoSubs"; ///自动续期订阅
  21. static NSString *SkuTypeNotAutoSubsKey = @"notAutoSubs"; //非自动续期订阅以及非消耗性商品
  22. static NSString *isAutoPurchaseKey = @"isAutoPurchase"; //是启动后重新购买的事务,返回详细信息给使用者处理 发放奖励
  23. //json字符串里面包括购买过的商品id “productId”
  24. //* 订单ID“orderId”
  25. //* 订单消耗时间“purchaseTime”
  26. //* 商品是否被消耗“acknowledged”
  27. /// 商品名称
  28. static NSString *Des_ProductName_Key = @"productName";
  29. /// 商品ID
  30. static NSString *Des_ProductId_Key = @"productId";
  31. /// 订单ID
  32. static NSString *Des_OrderId_Key = @"orderId";
  33. /// 商品消耗时间
  34. static NSString *Des_PurchaseTime_Key = @"purchaseTime";
  35. /// 商品状态-是否被消耗
  36. static NSString *Des_acknowledged_Key = @"acknowledged";
  37. /// 原始订单ID
  38. static NSString *Des_originalOrderId_Key = @"originalOrderId";
  39. /// 原始订单商品消耗时间
  40. static NSString *Des_originalPurchaseTime_Key = @"originalPurchaseTime";
  41. /// 商品ID
  42. static NSString *Product_Id_Key = @"productId";
  43. /// 商品类型
  44. static NSString *Product_type_Key = @"type";
  45. /// 商品价格
  46. static NSString *Product_price_Key = @"price";
  47. /// 商品价格
  48. static NSString *Product_priceAmountMicros_Key = @"price_amount_micros";
  49. /// iso code 例:USD、CNY
  50. static NSString *Product_priceCurrencyCode_Key = @"price_currency_code";
  51. /// 订阅才有的属性,订阅的周期,P1D-一天,P1W-一周,P1M-一周,P1Y-一年
  52. static NSString *Product_subscriptionPeriod_Key = @"subscriptionPeriod";
  53. /// 商品标题
  54. static NSString *Product_title_Key = @"title";
  55. /// 商品详情描述
  56. static NSString *Product_description_Key = @"description";
  57. /// 商品Token iOS无该值
  58. static NSString *Product_skuDetailsToken_Key = @"skuDetailsToken";
  59. @protocol ApplePayDelegate <NSObject>
  60. @optional
  61. /// 支付中有未完成的订单
  62. /// @param msgArr 回调数组
  63. /// @param arrJson 数组json化字符串
  64. -(void)applePayHaveNoFinishTransactionWithMsg:(NSArray *)msgArr arrJson:(NSString *)arrJson;
  65. /// 支付有结果了
  66. /// @param msgDic 回调字典
  67. -(void)applePayHaveResultWithMsg:(NSDictionary *)msgDic;
  68. /// 恢复购买回调
  69. /// @param msgDic 回调字典
  70. -(void)reStoreHaveResultWithMsg:(NSDictionary *)msgDic;
  71. /// 购买检验成功回调
  72. /// @param msgDic 回调字典
  73. -(void)overseaPayAppleValidateHaveResultWithMsg:(NSDictionary *)msgDic;
  74. @end
  75. @interface ApplePayAgent : NSObject
  76. /// 回调协议
  77. @property (nonatomic, weak) id<ApplePayDelegate> delegate;
  78. @property (nonatomic, copy) NSString *sharedSecret;
  79. /// 是否使用沙盒测试 默认NO
  80. @property (nonatomic, assign) BOOL isUseSandbox;
  81. + (instancetype)shareManager;
  82. /// App 专用共享密钥 ,假如应用内有自动续期订阅则必须使用该值
  83. /// App 专用共享密钥是用于接收此 App 自动续订订阅收据的唯一代码。
  84. /// 如果您需要将此 App 转让给其他开发人员,或者需要将主共享密钥设置为专用,可能需要使用 App 专用共享密钥。
  85. /// @param sharedSecretKey 共享密钥
  86. -(void)initApplePayWithSharedSecretKey:(NSString *)sharedSecretKey;
  87. /// 添加内购购买
  88. /// @param productId 商品ID
  89. -(void)payParams:(NSString *)productId;
  90. /// 添加内购购买
  91. /// @param productId 商品ID
  92. /// @param acId 活动ID
  93. -(void)payParams:(NSString *)productId activeId:(NSString *)acId;
  94. /// 调用AppsFlyer方法校验内购订单
  95. /// @param skuId 商品ID
  96. /// @param transactionId 订单号
  97. -(void)appsflyerValidateWithSkuId:(NSString *)skuId transactionIdentifier:(NSString *)transactionId;
  98. /// 恢复自动续期订阅的购买,协议会返回已经订阅过的订阅的订单信息,日期,订单号等数据
  99. -(void)restore;
  100. /// 查询一或多个商品的信息
  101. /// @param productsArrStr 商品ID数组
  102. /// @param success 成功回调
  103. /// @param failure 失败回调
  104. -(void)getProductsInfoWithProductsArrJsonStr:(NSString *)productsArrStr
  105. success:(void (^)(NSString *proInfos))success
  106. failure:(void (^)(NSError *error))failure;
  107. /// app内部票据校验对应商品是否需要提供对应服务
  108. /// @param skuType 查询类型,autoSubs-自动续期的订阅,notAutoSubs-非续期订阅和非消耗性商品
  109. /// @param productId 自动续期订阅 或 非消耗性的产品id
  110. /// @return 针对自动续期的订阅:判断是否订阅该产品 YES-已订阅,NO-未订阅或订阅过期
  111. -(BOOL)queryPurchasesWithSkuType:(NSString *)skuType productId:(NSString *)productId;
  112. // 查询未消耗订单信息,订阅信息
  113. -(void)checkNoFinishTransaction;
  114. -(void)finshOneTransactionWithTransactionID:(NSString *)transactionID;
  115. @end