// // ApplePayAgent.h // TestProj // // Created by DLWX on 2017/6/21. // Copyright © 2017年 DLWX. All rights reserved. // #import #import //static NSString *PayResultKey = @"payResult"; //支付状态:0-失败,1-成功 //static NSString *PayReasonKey = @"payReason"; //支付结果:文字 static NSString *PayproductIdKey = @"productId"; //商品ID static NSString *PayTradeIdKey = @"payTradeId"; //唯一支付凭证 unique server-provided identifier static NSString *PayDescriptionKey = @"payDescription"; //支付详细信息 static NSString *PayReceiptKey = @"receipt"; // 票据 static NSString *PayPayTimeKey = @"payTime"; // 支付时间 static NSString *PayAppleOrderIdKey = @"appleorderid"; // 苹果订单ID static 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"; /// 商品ID static NSString *Des_ProductId_Key = @"productId"; /// 订单ID static NSString *Des_OrderId_Key = @"orderId"; /// 商品消耗时间 static NSString *Des_PurchaseTime_Key = @"purchaseTime"; /// 商品状态-是否被消耗 static NSString *Des_acknowledged_Key = @"acknowledged"; /// 原始订单ID static NSString *Des_originalOrderId_Key = @"originalOrderId"; /// 原始订单商品消耗时间 static NSString *Des_originalPurchaseTime_Key = @"originalPurchaseTime"; /// 商品ID static 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、CNY static 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 @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 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