专注iOS开发(OC/Swift)iOS接下来要研究的知识点iOS 开发每天分享优质文章

iOS制作银联支付SDK过程

2018-07-10  本文已影响5人  洲洲哥

本文首发地址

这里很有必要记录一下银联支付的iOS控件的下载地址
银联支付SDK下载地址
git下载地址
选择手机控件下载即可,下载包中含有对应的开发文档和demo
本文记录主要讲把银联支付做成cocoapods组件供各位看官方便使用。

大家现在可以搜索

pod 'UnionPaySDK'

配置podspec文件
配置cocopod工程


配置UnionPaySDK.podspec文件

直接上podspec文件,主要配置请看注释

Pod::Spec.new do |s|
    s.name             = 'UnionPaySDK'
    s.version          = '0.0.2'
    s.summary          = '银联支付SDK'
    
    s.description      = <<-DESC
    TODO: Add long description of the pod here.
    DESC
    #这里是首页,请写对你git的首页
    s.homepage         = 'https://github.com/7General'
    s.license          = { :type => 'MIT', :file => 'LICENSE' }
    s.author           = { 'wanghuizhou' => 'wanghuizhou@guazi.com' }
    # 一定要写对你git上对应的工程的连接地址,否则lint时校验不通过
    s.source           = { :git => 'https://github.com/7General/UnionPaySDK.git', :tag => s.version.to_s }
    
    s.ios.deployment_target = '8.0'
    # 如果有.a或者framwork文件时一定要和class文件夹平级建设,应为在指定的sourcefile在class里面,然而里面确不能出现资源文件
    s.vendored_libraries = 'UnionPaySDK/Frameworks/libPaymentControl.a'
    s.libraries = 'z'
    s.frameworks = 'CFNetwork','SystemConfiguration','CoreTelephony'

  s.source_files = 'UnionPaySDK/Classes/**/*'
  # 注意
  s.user_target_xcconfig =   {'OTHER_LDFLAGS' => ['-lc++']}

end

在配置该podspec文件时要注意


info.plist添加协议白名单

info.plist添加协议白名单

把下载的资源包解压

UPPaymentControl.h放入class文件夹
libPaymentControl.a放入frameworks文件夹
如图


工程文件夹 SDK文件夹

注意:一定要添加URL Types


添加URL Types

回调结果

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    [[UPPaymentControl defaultControl] handlePaymentResult:url completeBlock:^(NSString *code, NSDictionary *data) {
        if ([code isEqualToString:@"success"]) {
            if (nil == data) {
                return;
            }
            NSData * singData = [NSJSONSerialization dataWithJSONObject:data options:0 error:nil];
            NSString * sign = [[NSString alloc] initWithData:singData encoding:NSUTF8StringEncoding];
            // 拿该证书去商户后台验签
            if (YES/*验签sign*/) {
                NSLog(@"//验签成功,展示支付成功提示");
            }else {
                NSLog(@"验签失败,交易可能被串改,商户app后台查询结果");
            }
        }else if([code isEqualToString:@"fail"]){
            NSLog(@"交易失败");
        }else if([code isEqualToString:@"cancle"]){
            NSLog(@"交易取消");
        }
    }];
    
    return YES;
}

上传cocoapod

上传的过程请查看下面这片文章
上传自己的私有的(公共的)CocoaPods支持库

有些地方说的不到位,还请各位看官指正。。。

可以来微信公众号(洲洲哥)后台给我们留言。 快来扫码关注我们吧!

公众号二维码
上一篇下一篇

猜你喜欢

热点阅读