| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | ////  ApplePayAgent.h//  TestProj////  Created by DLWX on 2017/6/21.//  Copyright © 2017年 DLWX. All rights reserved.//#import <Foundation/Foundation.h>#import <StoreKit/StoreKit.h>//static NSString *PayResultKey = @"payResult"; //支付状态:0-失败,1-成功//static NSString *PayReasonKey = @"payReason"; //支付结果:文字static NSString *PayproductIdKey = @"productId"; //商品IDstatic NSString *PayTradeIdKey = @"payTradeId"; //唯一支付凭证 unique server-provided identifierstatic NSString *PayDescriptionKey = @"payDescription"; //支付详细信息static NSString *PayReceiptKey = @"receipt"; // 票据static NSString *PayPayTimeKey = @"payTime"; // 支付时间static NSString *PayAppleOrderIdKey = @"appleorderid"; // 苹果订单IDstatic NSString *PaySkuTypeKey = @"skuType"; // 类型 内购或订阅static NSString *PayIsTestKey = @"isSandboxTest"; // 是否是沙盒测试static NSString *SkuTypeAutoSubsKey = @"autoSubs"; ///自动续期订阅static NSString *SkuTypeNotAutoSubsKey = @"notAutoSubs"; //非自动续期订阅以及非消耗性商品static NSString *isAutoPurchaseKey = @"isAutoPurchase"; //是启动后重新购买的事务,返回详细信息给使用者处理 发放奖励//json字符串里面包括购买过的商品id “productId”//* 订单ID“orderId”//* 订单消耗时间“purchaseTime”//* 商品是否被消耗“acknowledged”/// 商品名称static NSString *Des_ProductName_Key = @"productName";/// 商品IDstatic NSString *Des_ProductId_Key = @"productId";/// 订单IDstatic NSString *Des_OrderId_Key = @"orderId";/// 商品消耗时间static NSString *Des_PurchaseTime_Key = @"purchaseTime";/// 商品状态-是否被消耗static NSString *Des_acknowledged_Key = @"acknowledged";/// 原始订单IDstatic NSString *Des_originalOrderId_Key = @"originalOrderId";/// 原始订单商品消耗时间static NSString *Des_originalPurchaseTime_Key = @"originalPurchaseTime";/// 商品IDstatic NSString *Product_Id_Key = @"productId";/// 商品类型static NSString *Product_type_Key = @"type";/// 商品价格static NSString *Product_price_Key = @"price";/// 商品价格static NSString *Product_priceAmountMicros_Key = @"price_amount_micros";/// iso code 例:USD、CNYstatic NSString *Product_priceCurrencyCode_Key = @"price_currency_code";/// 订阅才有的属性,订阅的周期,P1D-一天,P1W-一周,P1M-一周,P1Y-一年static NSString *Product_subscriptionPeriod_Key = @"subscriptionPeriod";/// 商品标题static NSString *Product_title_Key = @"title";/// 商品详情描述static NSString *Product_description_Key = @"description";/// 商品Token iOS无该值static NSString *Product_skuDetailsToken_Key = @"skuDetailsToken";@protocol ApplePayDelegate <NSObject>@optional/// 支付中有未完成的订单/// @param msgArr 回调数组/// @param arrJson 数组json化字符串-(void)applePayHaveNoFinishTransactionWithMsg:(NSArray *)msgArr arrJson:(NSString *)arrJson;/// 支付有结果了/// @param msgDic 回调字典-(void)applePayHaveResultWithMsg:(NSDictionary *)msgDic;/// 恢复购买回调/// @param msgDic 回调字典-(void)reStoreHaveResultWithMsg:(NSDictionary *)msgDic;/// 购买检验成功回调/// @param msgDic 回调字典-(void)overseaPayAppleValidateHaveResultWithMsg:(NSDictionary *)msgDic;@end@interface ApplePayAgent : NSObject/// 回调协议@property (nonatomic, weak) id<ApplePayDelegate> delegate;@property (nonatomic, copy) NSString *sharedSecret;/// 是否使用沙盒测试 默认NO@property (nonatomic, assign) BOOL isUseSandbox;+ (instancetype)shareManager;/// App 专用共享密钥 ,假如应用内有自动续期订阅则必须使用该值/// App 专用共享密钥是用于接收此 App 自动续订订阅收据的唯一代码。/// 如果您需要将此 App 转让给其他开发人员,或者需要将主共享密钥设置为专用,可能需要使用 App 专用共享密钥。/// @param sharedSecretKey 共享密钥-(void)initApplePayWithSharedSecretKey:(NSString *)sharedSecretKey;/// 添加内购购买/// @param productId 商品ID-(void)payParams:(NSString *)productId;/// 添加内购购买/// @param productId 商品ID/// @param acId 活动ID-(void)payParams:(NSString *)productId activeId:(NSString *)acId;/// 调用AppsFlyer方法校验内购订单/// @param skuId 商品ID/// @param transactionId 订单号-(void)appsflyerValidateWithSkuId:(NSString *)skuId transactionIdentifier:(NSString *)transactionId;/// 恢复自动续期订阅的购买,协议会返回已经订阅过的订阅的订单信息,日期,订单号等数据-(void)restore;/// 查询一或多个商品的信息/// @param productsArrStr 商品ID数组/// @param success 成功回调/// @param failure 失败回调-(void)getProductsInfoWithProductsArrJsonStr:(NSString *)productsArrStr                              success:(void (^)(NSString *proInfos))success                              failure:(void (^)(NSError *error))failure;/// app内部票据校验对应商品是否需要提供对应服务/// @param skuType 查询类型,autoSubs-自动续期的订阅,notAutoSubs-非续期订阅和非消耗性商品/// @param productId 自动续期订阅 或 非消耗性的产品id/// @return 针对自动续期的订阅:判断是否订阅该产品 YES-已订阅,NO-未订阅或订阅过期-(BOOL)queryPurchasesWithSkuType:(NSString *)skuType productId:(NSString *)productId;// 查询未消耗订单信息,订阅信息-(void)checkNoFinishTransaction;-(void)finshOneTransactionWithTransactionID:(NSString *)transactionID;@end
 |