- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经实现了支持 Apple Pay 的 Braintree。但我面临一个问题。一切运行正常,但每当我尝试付款时,它都会显示“付款未完成”标志。我已检查我的域是否已通过验证。我用下面的代码调用了 Apple Pay 按钮。
- (PKPaymentRequest *)paymentRequest
{
PKPaymentRequest *paymentRequest = [[PKPaymentRequest alloc] init];
paymentRequest.merchantIdentifier = @"merchant.myIdentifier";
//paymentRequest.merchantIdentifier = @"merchant.mysandboxIdentifier";
paymentRequest.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard];
paymentRequest.merchantCapabilities = PKMerchantCapability3DS;
paymentRequest.countryCode = @"US"; // e.g. US
paymentRequest.currencyCode = @"USD"; // e.g. USD
// self.requiredShippingAddressFields = PKAddressFieldPostalAddress;
// paymentRequest.requiredShippingAddressFields = PKAddressFieldAll;
// paymentRequest.shippingMethods = [self ShipingMethod];
// paymentRequest.shippingContact = [self ShipingAddress:@"Delivered" :paymentRequest];
paymentRequest.paymentSummaryItems = [self PaymentSummaryItems];
return paymentRequest;
}
- (IBAction)applePayButtonTouchUpInside:(id)sender
{
self.navigationController.navigationItem.backBarButtonItem.enabled = NO;
self.iconLoadingIndicator.hidden = NO;
[self.iconLoadingIndicator startAnimating];
backBtn.enabled = NO;
self.applePayBtn.enabled = NO;
self.creditCardBtn.enabled = NO;
self.checkoutBtn.enabled = NO;
if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa,PKPaymentNetworkDiscover]]) // Returns FALSE
{
if ([PKPaymentAuthorizationViewController canMakePayments])
{
PKPaymentRequest *paymentRequest = [self paymentRequest];
PKPaymentAuthorizationViewController *vc = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:paymentRequest];
if (vc)
{
self.payment_mode = kApplePayMode;
vc.delegate = self;
[self.navigationController presentViewController:vc animated:YES completion:nil];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Something went wrong. Please Try Again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[self StopLoader];
}
}
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Your card does not support Apple Pay." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[self StopLoader];
}
}
此委托(delegate)未调用,因为它卡在付款未完成的过程中。
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
didAuthorizePayment:(PKPayment *)payment
handler:(void (^)(PKPaymentAuthorizationResult *result))completion API_AVAILABLE(ios(11.0), watchos(4.0));
{
isApplePayInitiatingPayment = YES;
// Example: Tokenize the Apple Pay payment
BTApplePayClient *applePayClient = [[BTApplePayClient alloc]
initWithAPIClient:self.braintreeClient];
[applePayClient tokenizeApplePayPayment:payment
completion:^(BTApplePayCardNonce *tokenizedApplePayPayment,
NSError *error)
{
if (tokenizedApplePayPayment)
{
// On success, send nonce to your server for processing.
// If applicable, address information is accessible in `payment`.
NSLog(@"nonce = %@", tokenizedApplePayPayment.nonce);
self.wcitiesBraintreeCreateTransaction = [[WcitiesBraintreeCreateTransaction alloc] init];
[self.wcitiesBraintreeCreateTransaction CreateTransaction:self.totalPrice OneTimeNonce:tokenizedApplePayPayment.nonce paypal_payer_id:@"" payment_mode:kApplePayMode :^(NSMutableArray *result, NSError *error)
{
if (result.count>0)
{
self.transaction_id = [result objectAtIndex:0];
[self generateClientOrder:NO];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Transaction failure. Please try again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[self StopLoader];
}
}];
// Then indicate success or failure via the completion callback, e.g.
PKPaymentAuthorizationResult *result = [[PKPaymentAuthorizationResult alloc] initWithStatus:PKPaymentAuthorizationStatusSuccess errors:nil];
completion(result);
} else {
// Tokenization failed. Check `error` for the cause of the failure.
// Indicate failure via the completion callback:
PKPaymentAuthorizationResult *result = [[PKPaymentAuthorizationResult alloc] initWithStatus:PKPaymentAuthorizationStatusFailure errors:nil];
completion(result);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"Transaction failure. Please try again." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[self StopLoader];
}
}];
}
最佳答案
尝试使用 Apple 提供的不同测试信用卡。 https://developer.apple.com/apple-pay/sandbox-testing/
我也遇到了这个问题,通过尝试不同的卡片直到其中一张有效来解决这个问题。
关于ios - Braintree Apple sandbox Pay 在扫描指纹 iOS 后显示付款未完成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55833666/
Paypal 最近更改了他们在 developers.paypal 中的用户界面,因此,我找不到可以登录旧 SANDBOX 帐户的位置。 在新的 developer.paypal.com 中,在 Ap
我正在尝试使用 loadPhotoForSize: withCompletionHandler: 为游戏中心的 friend 获取头像但它一直在抛出GKErrorDomain Code=3 "The
我在 paypal developer 中创建了多个沙箱帐户。我已在所有这些帐户上启用 business pro,以便接收直接付款。但是,对于在美国以外的国家/地区创建的商业专业账户,发送直接付款的
我能够使用 node 用户并使用 --cap-add=SYS_ADMIN 设置沙箱使其正常工作,但 AWS ECS Fargate 不支持添加 SYS_ADMIN 作为 linux 参数。因此,我试图
我正在尝试使用 scotty 创建一个简单网站的教程,但是当我尝试命令“cabal sandbox init”时出现错误: cabal: unrecognised command: sandbox (
我想制作一个非常基本的 Excel 插件。但是,在 Excel Online 中加载 xml 文件后出现错误: 有人知道如何修复这些错误吗? 这是 xml 文件: 2145a915-4e7b-
我使用 Ambari 运行了 pig 服务检查,但它失败了并出现以下异常。 2016-04-09 20:35:19,399 [JobControl] INFO org.apache.hadoop.m
我正在尝试将一个Firebase函数部署到使用Pupeteer的FireBase项目中,我让它在我的本地计算机上运行,但当它尝试在FireBase上运行时,我收到以下错误:。我在网上看到其他人说要使用
我已阅读 Wikipedia article ,但我不太确定它的含义,以及它与版本控制有多么相似。 如果有人能用非常简单的术语解释什么是沙箱,那将会很有帮助。 最佳答案 A sandpit or sa
重新访问一个一个月左右没打开的项目,发现之前设置的沙箱账户无法访问,访问; http://admin.wechat.com/debug/cgi-bin/sandbox?t=sandbox/login
Apple 在 WWDC 17 上推出了 ARKit,他们还在 Xcode 9 中添加了一个名为“增强现实应用程序”的新项目模板,它基本上应该是 WWDC 主题演讲或类似事件期间的演示应用程序。 但是
我正在尝试使用 How can I create a secure Lua sandbox?构建我自己的泄漏沙箱。 我正在尝试创建一个 Lua 沙箱,其中一些 Lua 函数可以访问沙箱外的其他一些 L
Hy 这里是一个例子 Example 为什么当我使用 沙箱我看不到播放器..我想使用沙箱来阻止弹出窗口,但看起来如果我使用它我看不到播放器 有没有allow-objects ? 我在那个页面上也有一
我对新的 PayPal 开发人员网站和 Sandbox 感到悲痛。我在 Developer 中创建了一个个人帐户,但我添加的资金没有显示出来。我读过一篇论坛帖子,说您必须通过 Sandbox 登录来添
在沙盒模式下查询 Instagram API 以获取与 token 相关的用户喜欢的媒体,我没有得到任何数据。当然,用户被授权在沙盒中使用该应用程序。 获取:https://api.instagram
我正在开发记录用户音频的应用程序,并在表格 View 的另一个屏幕上显示从此应用程序制作的所有早期录音。单击特定行时,必须播放录音。我如何实现这一目标,是否有任何资源可以帮助我实现同样的目标? 我的代
我有运行 Express Checkout 的沙箱。当我在我的沙盒中使用卖家账户进行测试付款时,一切正常,付款成功,买家账户从中扣除购买金额。但是卖家账户从来没有得到任何钱。 我在某处读到,要激活卖家
谁知道我在哪里可以启用 “商家未启用账单地址请求” 在沙箱环境中? 谢谢达尔科 最佳答案 请打开ticket向 MTS 技术团队提供帮助。 关于paypal-sandbox - 商家未启用账单地址请求
您好,我是 Paypal 集成的新手。 我已在我的在线商店中成功设置了 Express Checkout。 但在我的 Sandbox 帐户中,无论实际值(value)多少,每笔交易的余额总是减少 20
在 Paypal Sandbox 中,当我尝试向买家账户添加信用卡时,我不断收到错误消息“该卡号已分配给另一个 PayPal 账户。”我不明白,因为当我创建测试帐户时,Paypal 刚刚为我生成了号码
我是一名优秀的程序员,十分优秀!