iOS Apple Pay(银联渠道) 、云闪付

首先提一下。Apple pay 和 云闪付是两个东西。刚开始的时候产品理解不清楚,他们就认为是一个东西

Apple Pay:用的是苹果的设备,内部的资金的流向都是第三方操作的,我这边用的是银联渠道。你们可以用别的渠道
云闪付:用的是银联的SDK,走的是银联的口子,资金也是银联处理(相当于是接 支付宝支付、微信支付)。

Apple Pay

  1. 在银联平台下载CSR文件https://merchant.unionpay.com/(一般你找后台要)
    在这里插入图片描述
    在这里插入图片描述

  2. 拿第一步下载的CSR去 https://developer.apple.com 创建Merchant ID (商户ID)。再生成Apple Pay证书
    在这里插入图片描述
    在这里插入图片描述点击完成就生成了Merchant ID。然后生成证书
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    选择CSR文件之后,点击完成就生成了证书了

  3. 去银联下载SDK 。直接把文件拖入工程,导入相应的库(我这里是Apple Pay 和银联的都包含了)
    在这里插入图片描述

(1) 添 加 CFNetwork.framework 、 libUPAPayPlugin.a 、 PassKit.framework 、 SystemConfiguration.framework 到商户 App 工程中
(2) 在工程中配置你的merchant id
在这里插入图片描述
(4)导入UPAPayPlugin.h。下面是支付核心代码
iOS9.2以下是没有Apple Pay的。没有绑定银行卡的去绑定银行卡

  if (@available(iOS 9.2, *)) {
                if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkChinaUnionPay]] )
                {
                    if (tn.length>0) {
        				[UPAPayPlugin startPay:tn mode:@"00" viewController:self.rootViewC delegate:self andAPMechantID:@"xxxxxx"];
   				    }//有绑定银联的卡片 - 支付代码
                }else{
                    //跳转到钱包页面
                    [user setObject:@"pushToWallet" forKey:PayManagerUserDefaults];
                    NSURL * myURL_APP_A = [NSURL URLWithString:@"shoebox://"];
                    if ([[UIApplication sharedApplication] canOpenURL:myURL_APP_A]) {
                        NSLog(@"canOpenURL");
                        [[UIApplication sharedApplication] openURL:myURL_APP_A];
                    }
                    return;
                }
            } else {
                return;//9.2一下的系统不做处理
 }
#pragma mark -ApplePay 支付回调
-(void) UPAPayPluginResult:(UPPayResult *) payResult{
    NSLog(@"   ------------     %@",payResult.errorDescription);
    
    if (payResult.paymentResultStatus == UPPaymentResultStatusSuccess) {
       
    }else if (payResult.paymentResultStatus == UPPaymentResultStatusFailure) {
       
    }else if (payResult.paymentResultStatus == UPPaymentResultStatusCancel) {
       
    }else if (payResult.paymentResultStatus == UPPaymentResultStatusUnknownCancel) {
       
    }
}

最后就是Apple Pay的图标一定要规范
最后就是Apple Pay的图标一定要规范
最后就是Apple Pay的图标一定要规范
不然会审核被拒





云闪付

云闪付就比较简单了和接入支付宝、微信支付差不多
  1. 导入SDK 。直接拖入到项目中(我这里包含了Apple Pay和云闪付的SDK)
    在这里插入图片描述

  2. 添加 CFNetwork.framework、SystemConfiguration.framework 、libz、libPaymentControl.a到工程中,

  3. 在工程info.plist设置中添加一个URL Types回调协议(在xxxxxxx工程中使用“xxxxxx”作为协议),用于在支付完成后返回商户客户端。请注意URL Schemes需要是唯一的(自己弄一个 复杂点就行,成功回调会用到)。
    在这里插入图片描述

  4. 在info.plist文件中添加白名单

<key>LSApplicationQueriesSchemes</key>
     <array>
		<string>uppaysdk</string>
		<string>uppaywallet</string>
		<string>uppayx1</string>
		<string>uppayx2</string>
		<string>uppayx3</string>
     </array>
  1. 调用支付代码
#pragma mark -云闪付app(银联app) 支付
-(void)unionPay:(NSDictionary *)data andPushType:(NSString *)pushType{
    self.unionpay = data[@"unionpay"];
    NSString *tn = self.unionpay[@"tn"];
    if (tn.length>0) {
        [[UPPaymentControl defaultControl] startPay:tn fromScheme:kSmallUPPay mode:@"00" viewController:self.rootViewC];
    }
}

支付回调

  - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options {
	if ([url.scheme isEqualToString:@"xxxxxx"]) {
	//这里的xxxxxxx就是URL Schemes中填写的
         [[UPPaymentControl defaultControl] handlePaymentResult:url completeBlock:^(NSString *code, NSDictionary *data) {
        	NSDictionary * resultDic;
       	 	NSString *alipayJudge = [[NSUserDefaults standardUserDefaults] objectForKey:AlipayJudge];
        	if([code isEqualToString:@"success"]) {
            	//结果code为成功时,去商户后台查询一下确保交易是成功的再展示成功
        	else if([code isEqualToString:@"fail"]) {
            	//交易失败
        	}
        	else if([code isEqualToString:@"cancel"]) {
            	//交易取消
        	}
        
  
    	}];
    }    
}

有问题可以去尹丽娜开放平台查看(我只是代码的搬运工)。那边都有更详细的Demo下载
https://open.unionpay.com/tjweb/index

更新文档: 由于要更新SDK ,下载地址https://open.unionpay.com/tjweb/doc/mchnt/list

云闪付就是“银联线上收银台”(含安卓Pay) ;以及Apple Pay
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值