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
|