CNLivePaySDK.h 3.16 KB
//
//  CNLivePaySDK.h
//  CNLivePaySDK
//
//  Created by cnliveJunBo on 17/5/1.
//  Copyright © 2017年 cnlive. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "CNLivePayArg.h"
#import "CNLivePayResult.h"

typedef void(^CNLCompletionBlock)(CNLivePayResult *cnlivePayResult);

@interface CNLivePaySDK : NSObject

/**
 获取SDK当前版本号

 @return 返回SDK当前版本号
 */
+ (NSString *)getVersion;


/**
 获取支付核心类单例

 @return 返回支付核心类单例
 */
+ (instancetype)sharedCNLivePayManager;


/**
 注册支付SDK

 @param appid  从视讯云平台获取到的appId
 @param appkey 从视讯云平台获取到的appKey
 @warning      必须传参数 appid appkey
 @discussion   您在使用支付SDK所有功能之前,您必须先调用此方法初始化SDK。在App整个生命周期中,您只需要执行一次初始化。

 @return 是否注册成功
 */
- (BOOL) registerApp:(NSString *)appid AppKey:(NSString *)appkey;


/**
 注册微信支付(只有使用了微信支付才会使用到此方法)

 @param wxAppId 微信平台申请到的appId

 @return 是否注册成功
 */
- (BOOL) registerWXApiWithWXAppId:(NSString *)wxAppId;


/**
 支付方法(微信, 支付宝)

 @param payArg          支付所需参数结构体;
 @param schemeStr       支付宝支付时需要的appScheme,需要与info配置的scheme对应;其他支付不需要可填nil;
 @param completionBlock 支付结果回调;
 @discussion            支付宝 客户端, 网页 支付结果回调都在此方法中的block回调中;
                        微信客户端支付结果回调在此方法中的block回调中;
 */
- (void)pay:(CNLivePayArg *)payArg appScheme:(NSString *)schemeStr completion:(CNLCompletionBlock)completionBlock;


/**
 支付方法(内购)
 
 @param payArg          支付所需参数结构体;
 @param isDebug         是否是测试环境,上线时务必改成NO;开发环境请填YES,内购支付会到沙盒环境下验证支付结果,验证成功才算支付成功,并且会给用户付款通知业务系统接收地址异步通知时返回参数 sandbox=1 后台可以此作为标记判断加不加商品;真实环境请填NO,内购支付会到真实环境下验证支付结果,验证成功才算支付成功;
 @param productId       内购时商品的ID,只有内购时用到,其他支付可传nil;
 @param completionBlock 支付结果回调;
 @discussion            内购支付结果回调在此方法中的block回调中;
 */
- (void)pay:(CNLivePayArg *)payArg isDebug:(BOOL)isDebug productId:(NSString *)productId completion:(CNLCompletionBlock)completionBlock;


/**
 处理支付渠道通过URL启动App时传递的数据
 在 appdelegate
 iOS 8.0 以前
 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
 iOS 9.0及以后
 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options;
 中实现此方法,否则支付结果回调无法实现;

 @param url             支付渠道在启动第三方应用时传递过来的URL

 @return                成功返回YES,失败返回NO;
 */
- (BOOL)handleOpenURL:(NSURL *)url;

@end