| 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"; //商品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 <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
 
 
  |