iOS制作银联支付SDK过程

作者: 洲洲哥 | 来源:发表于2018-07-10 15:32 被阅读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文件时要注意

    • s.source:一定要在创建的工程git地址
    • s.vendored_libraries:这里是引用的资源文件,比如.a或者framewor文件等
    • s.user_target_xcconfig:当前编译模式吧

    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支持库

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

    • 如有问题可添加QQ群:234812704
    • 欢迎各位一块学习,提高逼格!
    • 也可以添加洲洲哥的微信公众号

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

    公众号二维码

    相关文章

      网友评论

        本文标题:iOS制作银联支付SDK过程

        本文链接:https://www.haomeiwen.com/subject/ejgnfftx.html