Page History

Home

Last edited by 王军波

一、产品概述

CNLivePaySDK 是视讯云推出的iOS平台上使用的软件开发工具包(SDK),为开发者提供简单快捷的接口,帮助开发者快速集成实现在各个平台上的支付功能。

二、版本更新说明

2017.05.12(版本号:1.0.0)第一版

三、SDK功能特性

支持支付宝客户端、网页支付购买;

支持微信客户端支付购买;

支持苹果内购支付购买;

支付结果回调返回枚举详解、错误描述、支付渠道、支付渠道错误码、支付渠道信息;

CNLivePaySDK 同微信、支付宝支付SDK是完全分离的,即使不导入第三方支付SDK也不会报错,但是无法使用第三方支付功能;

四、系统要求

最低支持iOS版本:iOS 8.0

支持的CPU架构:armv7 armv7s i386 x86_64 arm64

五、集成方式

下载 CNLivePaySDK ,并将支付SDK导入到工程中。

如果使用微信支付功能,需要导入微信支付相关SDK;

如果使用支付宝支付功能,需要导入支付宝支付相关SDK;

引入头文件

#import <CNLivePaySDK/CNLivePaySDK.h>

六、注意事项

Build Settings -> Other Linker Flags 设置 -ObjC;

在项目属性中的URL Types中添加URL Schemes;微信支付,支付宝支付都需要添加;

添加URL Schemes白名单,需要在“Info.plist”里增加如下代码:

<key>LSApplicationQueriesSchemes</key>
 <array>
    <!-- 微信 URL Scheme 白名单-->
    <string>wechat</string>
    <string>weixin</string>

   <!-- 支付宝  URL Scheme 白名单-->
    <string>alipay</string>

</array>

苹果内购支付都会去服务器验证,只有验证成功才算支付成功;开发环境内购支付会到沙盒环境下验证支付结果,验证成功才算支付成功,并且会给用户付款通知业务系统接收地址异步通知时返回参数 sandbox=1 后台可以此作为标记判断加不加商品;真实环境内购支付会到真实环境下验证支付结果,验证成功才算支付成功;

七、SDK基本使用

7.1 获取支付单例

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

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

代码示例: [CNLivePaySDK sharedCNLivePayManager]

7.2 初始化支付SDK

7.2.1 使用支付SDK所有功能之前,您必须先调用此方法初始化

/**
 注册支付SDK

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

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

代码示例: [[CNLivePaySDK sharedCNLivePayManager] registerApp:KAppId AppKey:KAppKey];

7.2.2 在使用微信支付之前,必须先调用此方法初始化微信支付

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

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

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

7.3 支付方法

7.3.1 微信、支付宝支付方法

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

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

7.3.2 苹果内购支付方法

/**
 支付方法(内购)

 @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;

7.4 处理支付渠道通过URL启动App时传递的数据

/**
 处理支付渠道通过URL启动App时传递的数据
 在 appdelegate
 iOS 9.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;