iOS Apple Pay开发流程

作者: Swift社区 | 来源:发表于2017-11-01 16:35 被阅读283次

一:介绍

项目中要用到支付功能,需要支付宝支付支付宝网页支付微信支付银联支付、Apple_pay,所以打算总结一下,方便以后的查阅,也方便大家, 用到的地方避免再次被坑。
今天我们就主要介绍一下银联控件支付,其他支付也写了对应教程,并且给出了连接。

二:支付流程介绍

2.1 Apple Pay 页面演示

Apple Pay 页面演示
  1. 买家在手机应用中购买商品或服务,在订单页面中展示 Apple Pay 按钮
  2. 通过银联控件,掉起 Apple Pay 支付页面
  3. 用户通过支付页面验证 Touch ID,输入银行卡密码 是否需要输入银行卡密码取决于交易限额和银行支持情况
  4. 支付成功,商户应用内展示成功页面
    (1)支付成功页面应参照 UI 示例,展示“银联”标识,“云闪付”标识。
    (2)银联 SDK 控件支持折扣功能。在折扣活动期间,商户应用内应参照实例 UI 进行原金 额、折扣金额的展示

2.2 Apple Pay 支付的实现方式

Apple Pay 支付的实现方式

1-2. 商户生成订单,通过商户 SERVER 端将订单信息发送给银联支付网关;
3-4. 银联支付网关记录订单信息,返回用来标识订单的 TN 号,经由商户 SERVER 返回至给 商户 APP;
5.商户 APP 调用银联 SDK,将 TN 号传递给银联 SDK
6.银联 SDK 向 Apple 公司的 PASSKIT FRAMEWORK 发起支付请求;
7.接口返回加密的支付 Token 信息;
8-9.银联 SDK 将支付 Token 传递给银联支付网关,完成交易认证;
10-12.银联将支付结果返回给商户 APP,商户 SERVER,商户 APP 负责提示用户交易结果。

三:工程配置

bundleID设置

bundleID设置

Capability中启用Apple Pay权限,并选择merchantID。

启用Apple Pay权限

之后项目会多一个Applepay的配置文件ApplePayYasin.entitlements

项目文件

四:下载Apple Pay SDK

Apple Pay SDK

下载之后,找到.h文件和库文件,使用UPPaymentControl需要将paymentcontrol/inc目录下UPAPayPlugin.h、UPAPayPluginDelegate.h文件和paymentcontrol/libs目录下的libUPAPayPlugin.a文件添加到商户应用的工程中

SDK路径

五:调用支付接口

在调用银联支付类里面,首先增加头文件引用。

#import "UPAPayPlugin.h"

// TODO 商户需要换用自己的mertchantID
#define kAppleMerchantID        @"merchant.com.AgreePay.ApplePayAgree"

在调起支付的方法中代码如下:

//当获得的tn不为空时,调用支付接口
if (tn != nil && tn.length > 0) {
        [UPAPayPlugin startPay:tn 
        mode:@"01" 
        viewController:ViewController 
        delegate:self andAPMechantID:kAppleMerchantID];
}

方法需要的几个参数文档上都写的有,tn是交易流水号,服务器端传回来的,客户端只有凭借这个参数才能调用支付控件 进行支付的。只需要调用一个方法就行啦!!!

六:支付结果回调

就在调起支付的ViewController 中写入下面代码即可

#pragma mark -
#pragma mark 响应控件返回的支付结果
#pragma mark -
- (void)UPAPayPluginResult:(UPPayResult *)result
{
    if(result.paymentResultStatus == UPPaymentResultStatusSuccess) {
        NSString *otherInfo = result.otherInfo?result.otherInfo:@"";
        NSString *successInfo = [NSString stringWithFormat:@"支付成功\n%@",otherInfo];
        
        NSLog(@"%@",successInfo);
       
    }else if(result.paymentResultStatus == UPPaymentResultStatusCancel){
        
        NSLog(@"支付取消");

    }else if (result.paymentResultStatus == UPPaymentResultStatusFailure) {
        
        NSString *errorInfo = [NSString stringWithFormat:@"%@",result.errorDescription];
        NSLog(@"支付失败%@",errorInfo);
    }else if (result.paymentResultStatus == UPPaymentResultStatusUnknownCancel)  {
        
        //TODO UPPAymentResultStatusUnknowCancel表示发起支付以后用户取消,导致支付状态不确认,需要查询商户后台确认真实的支付结果
//        NSString *errorInfo = [NSString stringWithFormat:@"支付过程中用户取消了,请查询后台确认订单"];
//        [self showAlertMessage:errorInfo];
        NSLog(@"支付过程中用户取消了,请查询后台确认订单");
        
    }
}
支付调起截图

希望可以帮助大家
如果哪里有什么不对或者不足的地方,还望读者多多提意见或建议
iOS技术交流群:668562416

相关文章

  • 收录 : iOS支付开发

    iOS 银联支付开发流程iOS 微信支付开发流程iOS 支付宝支付开发流程iOS Apple Pay开发流程App...

  • iOS Apple Pay开发流程

    一:介绍 项目中要用到支付功能,需要支付宝支付、支付宝网页支付、微信支付、银联支付、Apple_pay,所以打算总...

  • iOS开发--Apple Pay

    一、什么是Apple Pay? 概念 Apple Pay,简单来说, 就是一种移动支付方式。通过Touch ID/...

  • ios 开发 Apple pay

    详解:http://www.zuimoban.com/jiaocheng/ios/2016/0306/6781.html

  • Apple Pay Interface Guide

    基于 Apple Pay Identity Guidelines for iOS Developers 文档/ ...

  • Apple Pay--iOS开发

    一、什么是Apple Pay? 1. 概念 Apple Pay,简单来说, 就是一种移动支付方式。通过Touch ...

  • Apple Pay--iOS开发

    http://www.cnblogs.com/dashunzi/p/ApplePay.html http://ww...

  • Apple Pay--iOS开发

    一、什么是Apple Pay? 概念Apple Pay,简单来说, 就是一种移动支付方式。通过Touch ID/ ...

  • iPhone禁用Apple Pay

    本篇文章主要介绍如何屏蔽iOS手机弹出Apple Pay页面。 业务场景 当iPhone打开Apple Pay功能...

  • iOS11人机交互指南(十一)- 技术(Technologies

    一、Apple Pay Apple Pay用于在iOS和WatchOS应用内为实物商品、服务以及捐款进行付款,是一...

网友评论

    本文标题:iOS Apple Pay开发流程

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