Apple支付延迟付款吗?
例如,一名乘客预订出租车,称他将使用Apple Pay.使用Touch id,当乘客在已经知道旅行价格时到达目的地时付款.那可能吗?
怎么实现呢?
可以使用之前从Touch id获得的令牌然后使用延迟它来支付吗?
我正在为来自美国以外的美国客户开发使用Apple Pay的应用程序.我正在使用Braintree + Apple Pay.我们支持真实的信用卡到Passbook,但我们无法验证它们.
我成功生成了一个客户端令牌,self.braintree并尝试了BT的两种集成方式.
BTPaymentProvider - 我们对付款方式创建的抽象.
if(self.braintree && ![self.braintree isKindOfClass:[NSNull class]])
{
self.provider = [braintree paymentProviderWithDelegate:self];
if ([self.provider canCreatePaymentMethodWithProviderType:BTPaymentProviderTypeApplePay])
{
self.provider.paymentSummaryItems = @[[PKPaymentSummaryItem summaryItemWithLabel:@"XXXX" amount:[NSDecimalNumber decimalNumberWithString:@"1"]]];
}
[self.provider createPaymentMethod:BTPaymentProviderTypeApplePay];
}
Run Code Online (Sandbox Code Playgroud)
但它没有推动" PKPaymentAuthorizationViewController".跟踪它也不例外.
PassKit - Apple的ApplePay API.
if([PKPaymentAuthorizationViewController canMakePayments]) // It returns TRUE
{
PKPaymentRequest *paymentRequest = [[PKPaymentRequest alloc] init];
paymentRequest.countryCode = @"US";
paymentRequest.currencyCode = @"USD";
paymentRequest.merchantCapabilities = PKMerchantCapabilityEMV | PKMerchantCapability3DS;
paymentRequest.merchantIdentifier = MERCHANTID;
paymentRequest.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
paymentRequest.paymentSummaryItems = @[ [PKPaymentSummaryItem summaryItemWithLabel:@"TEST" amount:[NSDecimalNumber …Run Code Online (Sandbox Code Playgroud)当我使用带有Stripe的iOS SDK的Apple Pay时,付款后它会在以下方法中崩溃吗?
-[PKPaymentAuthorizationControllerExportedObject authorizationDidFinishWithError:] + 76
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
无论何时PKPaymentAuthorizationViewController因任何原因被解雇,Apple Pay都会致电以下代表.有没有办法检测是否只触摸了取消按钮?
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller
{
[self dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
以下代码来自WWDC 2015 Session 702 Apple Pay in Apps - Emporium:Apple Pay的简单购物体验
if PKPaymentAuthorizationViewController.canMakePaymentsUsingNetworks(ProductTableViewController.supportedNetworks) {
let button = PKPaymentButton(type: .Buy, style: .Black)
button.addTarget(self, action: #selector(ProductTableViewController.applePayButtonPressed), forControlEvents: .TouchUpInside)
button.center = applePayView.center
button.autoresizingMask = [.FlexibleLeftMargin, .FlexibleRightMargin]
applePayView.addSubview(button)
}
Run Code Online (Sandbox Code Playgroud)
我想知道我们是否可以在IB中创建这个按钮.
我正在努力将Apple pay集成到我的应用程序中进行测试,我认为我需要在我的钱包应用程序中添加一些测试卡.没有这个我在Xcode中收到错误"此设备无法付款."
我已经完成了与Xcode相关的所有设置,并且在功能下我可以看到我的商家ID被选中并且所有3个复选标记都已完成.
所以我尝试添加测试卡进行苹果支付测试(获取令牌)我按照流程设置 - >钱包和苹果支付 - >添加信用卡/借记卡 - >手动输入 - >这里我给了从苹果采取的假凭证
来自苹果网站的测试卡 FPAN:5204 2477 5000 1497有效期:11/2022 CVC:111
但没有一张卡被接受,对于MASTERCARDS我得到的错误就像发行人还没有提供对这张卡的支持.同样我得到的签证测试卡的错误.
所以我想如何测试苹果工资集成而无需在苹果工资设置中添加卡片或如何成功添加测试卡以便我获得令牌.
编辑:我能够成功地看到苹果付费演示屏幕,因为模拟卡默认已经添加到其中.
我正在寻找与真实设备相同的东西
我正在开发一个需要具备收集慈善捐款功能的应用程序.
我在上述链接中发现Apple Pay禁止收集慈善捐款.
在3.2.2节中,它指出您无法使用应用内购买来收集慈善捐款.
我找到了另一个StackOverflow帖子,在这里刷我的问题.
因此,根据规则和条例,我知道我无法在应用程序中购买慈善捐款.我也知道我不能使用Apple Pay.
提示用户捐赠而不强制他们手动将所有付款信息输入在线表单的最佳方法是什么?
我看了一下Apple Wallet,但唯一可行的方法是,如果某人已经设置了卡片,它将有助于自动填充信息.如果我错了,请纠正我,但这是我所理解的.
此外,苹果公司是否有任何理由说明为何如此难以捐赠慈善捐款?一位同事正在为Android做同样的事情,并没有遇到像我一样多的障碍.
Authorized Apple Pay(如果重要的话).General> Language & Region > Region设置为美国,语言设置为EN-US.PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:回报YES.[[PKPaymentAuthorizationViewController alloc]
initWithPaymentRequest:request]; 有正确货币的有效请求和物品每次返回nil.假设在iPhone的模拟器上工作.我不确定问题出在哪里.有谁知道我做错了什么?有什么明显的东西我不见了吗?任何帮助,将不胜感激!
我已经按照设置Apple Pay证书的每一步进行操作,我的商家ID已设置并添加到Apple开发者帐户的App ID中,但Xcode仍然显示我需要"向商家添加商家ID"的错误ID".我认为我的截图清楚地表明我已经这样做了.
我只有一个商家ID,所以并不是我指的是错误的ID.任何人都可以猜到我可能会遗漏或者我错过了下载和验证我的证书之间的一步吗?
Apple开发者帐户上App ID的屏幕截图:
我们遇到了一个问题,PKPaymentAuthorizationController尽管一切都已完成,但未呈现 ,如示例中所述。APKPaymentRequest在代码中创建,传递给PKPaymentAuthorizationController初始值设定项,之后也present对其调用该方法。PKPaymentAuthorizationController当您第一次尝试在新安装的应用程序中显示控制器时,会强烈地再现此行为。并且该Bug在后续使用过程中会随机重现;在这种情况下,不可能找到任何明确的复制方法。\n问题绝对不是创建 所需的任何值 \xe2\x80\x8b\xe2\x80\x8b 中的拼写错误PKPaymentRequest,我的意思是merchantIdentifier, supportedNetworks, merchantCapabilities, countryCode,currencyCode并且paymentSummaryItems,我们已经不止一次地检查过这一点。这个问题也不在于将Double价格值转换为NSDecimalNumber,正如 Stack Overflow 上类似问题的答案之一所写。我们使用了调试器,这表明 已经PKPaymentRequest成功创建,就像它PKPaymentAuthorizationController本身一样。但当present调用该方法时,屏幕上没有任何反应。如果您能帮助我们解决问题,我们将不胜感激。这是示例代码:
let request = PKPaymentRequest()\n request.merchantIdentifier = "HERE_IS_OUR_M_ID"\n request.supportedNetworks = [.amex, .visa, .masterCard]\n request.merchantCapabilities = .capability3DS\n request.countryCode = "US"\n request.currencyCode = "USD"\n request.paymentSummaryItems = [\n PKPaymentSummaryItem(label: "BUY_ITEM_TEXT", amount: NSDecimalNumber(value: buyItemPrice)),\n PKPaymentSummaryItem(label: "COMPANY_NAME", amount: NSDecimalNumber(value: buyItemPrice), type: .final)\n …Run Code Online (Sandbox Code Playgroud)