澳门威利斯人_威利斯人娱乐「手机版」

来自 威利斯人娱乐 2020-03-18 04:47 的文章
当前位置: 澳门威利斯人 > 威利斯人娱乐 > 正文

编程指南

***解密前要求对signature验签,验证此番支付的不错和安全性。苹果官方的验签步骤如下:

Paste_Image.png

三个福利 & 安全的线上支付才干,让客户达成他们的开销环节并把开拓有关的音讯报告您

PKPaymentRequest *request = [[PKPaymentRequest alloc] init];PKPaymentSummaryItem *total = [PKPaymentSummaryItemsummaryItemWithLabel:@"收款商户" amount:[NSDecimalNumber decimalNumberWithString:@"1"]]; // 金额request.paymentSummaryItems = @[total];request.countryCode = @"CN"; // process支付的中国request.currencyCode = @"CNY"; // 金额展示为人民币格式request.supportedNetworks = @[PKPaymentNetworkChinaUnionPay]; // 中国银联request.merchantIdentifier = @"merchant.com.company.test";request.merchantCapabilities = PKMerchantCapabilityEMV | PKMerchantCapability3DS;PKPaymentAuthorizationViewController *paymentSheet = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];if (paymentSheet) {[self presentViewController:paymentSheet animated:YES completion:nil];paymentSheet.delegate = self;}

授权战败

Apple Pay 应用内开辟

  1. Apple Pay 在得到顾客授权后加密交易数据,管理后再用开荒者钦赐的key加密数据,把结果发送给开辟者app。

  2. 与店内支付相像,Device Account Number 以至动态安全码等音信会发送给 Apple

- paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(PKPaymentAuthorizationStatus))completion{NSData *data = payment.token.paymentData;NSDictionary *dicFormatToken = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves|NSJSONReadingAllowFragments|NSJSONReadingMutableContainers error:nil];// 将dicFormatToken异步解密,并支付// ...// 将支付结果回调给苹果if (/*payment is complete*/) {completion(PKPaymentAuthorizationStatusSuccess);}}- paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller{[controller dismissViewControllerAnimated:YES completion:nil];}

5.显得支付授权分界面PKAuthorizationViewController,该分界面须要将request和急需的提醒音讯展现给顾客,例如shipping或许billing address。

Currency Code & Country Code

currencyCode 是描述支付所用的货币,贰位字符:USD

countryCode 是管理这些订单的地点,两位字符:US

文章将汇报怎么样在iOS App中开支帮衬中夏族民共和国顾客的Apple Pay,饱含前后端的一些甩卖逻辑如开拓音讯解密。关于Apple Pay的片段骨干认知和对应API,具体能够参照Apple Pay官方文书档案,这里没多少说。Apple Pay最近才引进中华夏族民共和国,并对准中黄炎子孙民共和国净增了一些接口,如采纳银行职员联合会卡。那几个接口在iOS9.2系统中,由此要支付此功效请先打算Xcode7.2或上述、红米真机iOS9.2或以上。能够看一下成效:

Paste_Image.png

HIG

当客商按下 Apple Pay 的按键,必需及时显得 Payment sheet。即使当前的装置不帮忙 Apple Pay 作用,你可以展现 Apple Pay 的 Set up 按键,只怕不显得 Apple Pay 按键。

![Apple Pay Button]()

用于体现订单的支出,配送,TAX等地点的音讯,app 能够钦定 sheet 中的内容,但无法干扰客户对 sheet 的人机联作

客户通过 Touch ID 授权(某些处境还索要银行的 PIN code)之后,你的 app 会得到 PassKit 的 payment token。里面包蕴完毕交易所须求的新闻,富含识别设备的 account number,金额,独一的二回性密文。具备证书私钥的商贾能够解密这一个支出音讯,恐怕是提供支付SDK的经纪人。

在中华,近期能够提供支撑 Apple Pay 支付应用方案的开采平台:

银行职员联合会,连连支付(LianlianPay),首都音讯手艺股份两合公司易支付,易宝支付,银联商务

[Emporium]()

下载来的品类有一部总局署项目要精心补充

  1. 到 itunesconnet 上安插 merchant,app id,provisioning profile(demo项目中还隐含 watch)

  2. AppConfiguration.swift 只怕要修改 merchant ID 与你在 itunesconnect 中

配备的完全一样

  1. 连串中有 User-Defined Setting “EMPOPRADOIUM_BUNDLE_PREFIX”, 用来计划bundle id 以至

  2. ProductTableViewController.swift 是浮动 payment request 以致实行支付授权的分界面。

supportedNetworks 增加 PKPaymentNetworkChinaUnionPay (iOS 要求9.2以上,修改 deployment target...)

paymentRequest 的 countryCode & currencyCode 要改成 CN & CNY

苹果回调的token格式如下:

邮递情势列表

Authorizing Payments

当顾客授权了支出,Apple Pay 会生成叁个与 Apple Server 和本设备的 Security Element 对应的 payment token。

  1. Security Element 在得到 payment request 之后,把payment card 以致专营商 的音信加密后送到 Apple 的服务端

  2. Apple 的服务端再利用配置好的 Merchant ID 的注脚加密 payment 数据,再次来到给器材

  3. 在 paymentAuthorizationViewController:didAuthorizePayment:completion: 左券中回到 token。app 把 token 发到具有解释工夫的服务端实行扣款。

  4. 当 Apple Pay 突显了付出的动静音讯之后,paymentAuthorizationViewControllerDidFinish: 会触发,app dimiss 支付授权的分界面,并呈现自身的订单确认分界面。

应用的是银行职员联合会SDK,有银行职员联合会管理支付之后的事体。

Apple Pay 的 UI 有严峻要求:

  1. 对于 iOS8.3 及未来,使用 PKPaymentButton 成立按键

  2. 对此 iOS8.3 早前,使用官方内定尺寸的图片

  3. Apple 对 Apple Pay 的来得有严厉需要,以致是 "Apple Pay" 那个短语都不许有任何不肖似, 假如不想频频被reject照旧先看看 [Apple Pay Identity Guide]()

  4. 分裂意翻译:Apple,Apple Pay,HUAWEI,Touch ID 以致其余Apple 的 trademark。

1. Get Apple G3 root CA certificate from this URL: https://www.apple.com/certificateauthority/ and load the certificate into a key store2. Build a certificate path from certificate chain in PKCS 7 signature3. Verify the certificate path is valid using the key store built on step 1.4. the signature was computed on input: Base64.decode(wrappedKey) Base64.decode(encryptedData) Hex.decode(transactionID). It is a PKCS7 signaure. Signature's algorithm, Apple's In-App payment server's signing key certificate and it's sub-ca certificate are included in the signature tag in JSON.

6.挑选付款卡会push出接纳付款卡调节器,展现全部已绑定的银行卡。当选取卡牌会调用代理方法
paymentAuthorizationViewController:didSelectPaymentMethod:completion:该办法,须求得以达成completion完毕回调,不然会卡在payment processing分界面

运用内集成Apple Pay须要七个部分:交易授权与交易管理。交易授权在动用内张开,通过PassKit.framework所提供的接口向客户获得支付授权(payment token);而交易管理则必要授权后调用可受理交易的服务器接口(将token传入服务器举行管理),你能够筛选有个别支付平台来管理贸易,或然也得以和睦完结贸易管理进程,苹果官方相比较推荐前面三个。

***待具名成功之后,就足以解密token了。用商行私钥解密wrappedKey获得对称秘钥,用对称秘钥AES解密data就取得开拓音讯了。解密取得的花销新闻中含有卡号(可卡bin的设想卡号卡塔尔、支付金额、信用卡密码等新闻。那个时候就可以运用那一个信息带头提倡支付并扣款了。获得开拓结果后,利用代理方法中的complete块回调给苹果,苹果依照对应的付出情状呈现给客户。如今苹果对此开垦处境的拍卖只有付出成功、失利、无效账单地址、无效邮寄地址、无效联系情势、甚至iOS9.2始发扶助的信用卡密码错误、密码锁定、未输入密码。

当选择别的邮寄方式会调用 paymentAuthorizationViewController :didSelectShippingMethod : completion:代理方法,在艺术中供给压实有关的request.paymentSummaryItems数组,重新计算列表消息和总的价值。德姆o中的calculateSummaryItemsFromSwag: withShippingMethod:方法提供了总括该数组的骨干逻辑。
9.当客户输入TouchID,且授权通过后,Apple Pay 将利用Secure Element安全元件集成电路处理信用卡音讯,再有secure enclave发生非常的授权标记符
10.将授权标记符发送给苹果的服务器,再使用MerChante identifier certificate举办三回加密后将token反回给app做其它管理。
11.在paymentAuthorizationViewController:didAuthorizePayment: completion:代理方法中能够得到payment音信,个中富含了payment token。
12.到手到payment token后能够将其发送给后台举行别的管理

只好够购置东西依旧服务,不得以用来开辟IAP

代理方法

用于显示商品列表,此中paymentSummaryItem的lastObject为厂家Item,amount为保有商品、tax、shipping以及discounts的总数。
德姆o中的calculateSummaryItemsFromSwag: withShippingMethod:方法提供了总结summaryItems数组的逻辑。

Apple Pay 店内支付

  1. Motorola 左近 NFC 终端时交易会示你的暗中同意信用卡,通过你的 Touch ID 或然密码授权开辟。Apple Watch 要求在解锁状态下双击 side button.

  2. 授权后,Device Account Number ,动态安全码以至部分附加新闻会发送给 NFC 终端

  3. 支付公司通过动态码验证支付必要是还是不是来自你的授权设备

***是还是不是能利用Apple Pay的API

// 授权控制权
PKPaymentAuthorizationViewController *paymentVC = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
paymentVC.delegate = self;
[self presentViewController:paymentVC animated:YES completion:nil];

举个例子接纳了联网银联的Apple Pay,所以除了查看 Apple 的文书档案以外,还要看银行职员联合会的付出文书档案。

{"data" : "....","header" : {"publicKeyHash" : "....","transactionId" : "......","wrappedKey" : "......"},"signature" : ".....";"version" : "RSA_v1"}

Apple Pay 的归拢需求做好版本和机型的适配。Apple Pay 只可以运作于黑莓9.2之上版本的金立6/6p及以上型号或版本在2.1上述的Apple Watch的配备上。
一、为App设置Apple Pay功能
1.在开采中账号中登记二个merchant ID;
2.创造CSQX56(CertificateSigningRequest)证书并付诸到支付中账号中;
澳门威尼斯人官方网站,3.在Xcode的Capabilities里使能Apple Pay,并添加merchant ID

Apple Review Guides

Review Guide 是会更新的,提出按期查一下

[29.Apple Pay]()

  1. 使用 Apple Pay 的 app 必需提供整机的开支新闻。要是 Apple Pay 用于订阅类型的周期性花费,你必要描述清楚订阅的周期,以致周期内所提供的劳务,以至哪些撤除订阅

  2. 接纳的 Apple Pay 视觉成分必得符合法定供给 [Apple Pay Identity Guidelines]()

  3. 购买出卖的事物必须相符地点准则

  4. 必须要提供 privacy policy

  5. 从 Apple Pay 得到的数目在用于提供第三方完结支付时要符合准则要求

Apple Pay 的布置意见:不访谈其余付出,交易的消息。而一个贸易涉及到的有顾客,商家和银行。基于安全的思忖,Apple Pay 需要客商安装了密码。

绑定银行卡:

  1. 客户输入卡号等新闻,iOS 把消息加密后发送到 Apple 的服务器

  2. Apple 加密音信,依照你的支出互联网,实行相应的加密。音信还包涵:你的iTunes 上的有个别交易信息,你的配备新闻(手提式有线电话机号码,名称,设备型号,地理地方等)。

  3. 发卡银行依附 Apple 发过来的新闻决定是或不是让你绑卡成功

  4. 绑卡成功的话,银行给 Apple 发送两个加密了的装置独一的 Device Account Number (甚至用于每便交易时生成动态安全码的key),Apple 不可能对 Device Account Number 解密,只保留到道具上的 Security Element 集成电路里。也不会备份到 iCloud。

  5. Apple 保存卡号的一片段,以至 Device Account Number 的一部分。。卡描述音讯到 Wallet,用以支持您管理银行卡。

要是 card number 通晓成大家的 urs,Device Account Number 就是道具音信的种子,还也可能有生成OTP的key,三者

  canMakePayments;  canMakePaymentsUsingNetworks:supportedNetworks capabilities:(PKMerchantCapability)capabilties;  canMakePaymentsUsingNetworks:supportedNetworks; //该方法除设备、网络不支持等情况下会返回NO,用户未在Wallet中绑卡的情况下也会返回NO
// 设置paymentSummaryItem数组
_paymentSummaryItems = [self calculateSummaryItemsFromSwag:_swag withShippingMethod:self.shippingMethods.firstObject];
request.paymentSummaryItems = _paymentSummaryItems;

Merchant Identifier

  1. 到 Member Center 上为 App 注册 Merchant ID

  2. 为 Merchant ID 上传 CSR

  3. 经过上传的 CSRAV4 生成证书,并下载

  4. 成立 Payment Request,设置它的 subtotal,discount 等音讯

  5. 因此 payment authoriztion view controller 浮现支付音信,等待顾客支付授权

  6. 客商授权开辟后,Apple Pay 加密管理支付信息,凭仗 merchant id 以致相应的支付卡消息计算出 payment token

  7. payment token 用 Merchant Id对应的申明加密,发送到 Apple Server

  8. Apple Server 把 token 交到我们的 App

  9. Payment token 交给能够拍卖贸易的第三方平台,大家那边是银行职员联合会SDK

注意: app bundle 里无需包罗 Merchant Id 的证件

  1. 成立 Payment Request 以前,最棒先检查是或不是能够运用 Payment

canMakePayments 是不是扶助 Apple Pay,NO时不要展示 Apple Pay 按钮

canMakePaymentsUsingNetworks:

万一 canMakePayments 是 YES,canMakePaymentsUsingNetworks 是 NO。意味着当前设备还未绑银行卡,你能够显得三个 setup 按钮,推荐调用 openPaymentSetup 鼓舞客户拉长银行卡

  1. Apple Pay 的规范满意之后,在客商按下 Apple Pay 后应当及时显得 payment 的音讯等待客户授权。

  2. 假定开采流程只在 Web 的点子上进展,你要在存活的花销流程中插入 Native 代码的逻辑,举例是捕捉url的议程。

澳门威尼斯人官方网站 1无标题.png

4.创制贰个PKPaymentRequest,该request需求满含富有商品和服务资费的,举例邮寄费,税大概折扣等

手提式有线电话机不见

  1. Find My Motorola 会清理你的绑定卡消息

  2. 可以步入 iCloud settings 移除设备的支出授权。

本文由澳门威利斯人发布于威利斯人娱乐,转载请注明出处:编程指南

关键词: 澳门威利斯人 IO 中国 指南 App