标签: applepay

将Apple Pay JS集成到网站中

我正在考虑使用新的Apple Pay JS SDK 将Apple Pay集成到一个网站中.目前文档很少,仅涉及API声明以及如何实例化新ApplePaySession对象.

是否有任何示例代码可用,或者是否有人自己实现了这一点,显示了Web应用程序的典型API集成流程?

我能够找到所有内容的唯一例子似乎是第三方支付提供商自己的Apple Pay SDK集成.

html applepay applepayjs

18
推荐指数
3
解决办法
1万
查看次数

如何在Apple Pay PKPaymentAuthorizationViewController上方显示UIAlertView?

使用下面的标准UIAlertView代码将在Apple Pay PKPaymentAuthorizationViewController表下方显示警报.

[[[UIAlertView alloc] initWithTitle:@"Payment Error"
                            message:[error localizedDescription]
                           delegate:nil
                  cancelButtonTitle:@"Okay"
                  otherButtonTitles:nil] show];
Run Code Online (Sandbox Code Playgroud)

如何在付款授权书上方显示?或者是否有不同的方式为Apple Pay显示错误消息?我想在用户输入无效的送货地址时给出特定的错误消息.

objective-c ios applepay

17
推荐指数
3
解决办法
811
查看次数

你如何在Safari中测试Apple Pay?

我正在使用Stripe在网上设置Apple Pay,并希望使用我们在iTunes Connect中设置的Sanbox Tester帐户在Safari中的iOS和macOS上进行测试.

在测试设备(2017 iPad)上,我使用Sandbox Tester帐户登录iCloud,并在设置应用程序中将测试卡添加到电子钱包中.在我的开发网站上,Apple Pay按钮显示,交互工作正常.

我在MacBook Pro(Retina,2015年中)创建了一个新帐户,并使用相同的Sandbox Tester帐户再次登录iCloud.但是,当我在此处查看我的开发网站时,该checkAvailability函数始终返回false:

Stripe.applePay.checkAvailability(function(available) {
  alert(available);
  ...
}
Run Code Online (Sandbox Code Playgroud)

大概这是因为我需要进一步设置Apple Pay才能工作.但对于我的生活,我无法让macOS合作.在阅读了一些文档后,我认为这些点是相关的:

  • 在我的iPad的电子钱包和Apple Pay设置中,没有"允许在Mac上付款"选项
  • 我的macOS设置应用中没有"电子钱包和付款"选项
  • 在macOS Safari设置,隐私选项卡中没有提到Apple Pay
  • 在Mac上启用了切换功能

我是否可以使用切换在macOS上使用我的沙箱用户启用测试付款,如果是这样,我错过了哪些步骤?

更新

  • 我的macOS Sierra版本是10.12.4(16E195)
  • window.ApplePaySession.canMakePayments()在控制台中运行返回false

更新2

此处列出的步骤均适用于两台设备.当我在MacBook上打开Safari并导航到某个页面时,多任务屏幕上会显示切换图标,反之亦然,当我在iOS Safari中打开一个标签时,切换图标会显示在停靠栏的左侧.它似乎切换工作正常.

此外,Universal Clipboard正在双向工作.

注意:在使用不同iPad切换的同一台MacBook上的另一个(非沙盒)iCloud帐户上,付款选项会按预期显示在Safari中.

safari stripe-payments applepay

16
推荐指数
2
解决办法
1753
查看次数

如何验证ios设备支持Apple Pay

我正在启动Apple Pay集成项目,并且能够在设备上连接交易,并使用Stripe授权付款.我实际上正在努力的部分是设备测试Apple Pay是否受支持的正确方法?因此,对于较旧的Iphone型号,我会选择隐藏Apple Pay功能,即使它们安装了ios8或ios9.

我可以检查设备型号,然后忽略Apply Pay for <Iphone5S.然而,如果我还需要开始测试IPad版本等,这会变得复杂.

我想知道是否有一种方法可以测试ApplePay是否受支持?

我在网上发现这种方法是一个想法,但是它声称在Iphone5模拟器中支持苹果支付,我想这并不完全正确.不幸的是,我没有Iphone5实际设备进行测试.

- (BOOL) applePaySupported {
    return [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard]];
}
Run Code Online (Sandbox Code Playgroud)

编辑/解决方案:

我现在使用这一行,它被验证适用于Iphone5(不支持)与Iphone6(支持); 我推测其他设备.我不完全确定它总是在模拟器中工作,但ApplePay在那里有点奇怪,测试最好在设备上完成.

- (BOOL) applePaySupported {
    return [PKPaymentAuthorizationViewController canMakePayments] && [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard]];
}
Run Code Online (Sandbox Code Playgroud)

ios applepay

14
推荐指数
1
解决办法
2513
查看次数

Apple Pay - authorize.net 仅在实时、沙箱工作时返回错误 153

搜索了很多文章后,我找不到解决我的问题的方法。

我在我的网站上集成了 ApplePay 按钮,并在沙盒模式下成功进行了交易。我正在使用 authorize.net php SDK 来生成请求。当我切换到生活时,问题就开始了。来自 authorize.net 的消息是“处理付款数据时出错。解密数据中缺少必填字段

这是我所做的:

  1. 将付款处理证书更改为来自 live authorize.net 帐户的一个
  2. 将我用于处理 authorize.net 付款的凭据更改为我获得付款流程证书的同一个真实账户
  3. 使用带有真实信用卡的实时 Apple 设备。
  4. 我使用 First data Nashville 处理器作为支持 ApplePay 的 CC 处理器

请注意,如果我切换回沙箱模式,事务将毫无问题地通过。

请求和失败的响应如下:

要求:

{ 
    "createTransactionRequest":{ 
        "merchantAuthentication":{ 
            "name":"xxxxxxxxx",
            "transactionKey":"xxxxxxxxxxx"
        },
        "clientId":"sdk-php-2.0.0",
        "refId":"ref1575669789",
        "transactionRequest":{ 
            "transactionType":"authOnlyTransaction",
            "amount":"14.08",
            "payment":{ 
                "opaqueData":{ 
                    "dataDescriptor":"COMMON.APPLE.INAPP.PAYMENT",
                    "dataValue":"eyJ2ZXJzaW9u...Q1OSJ9fQ=="
                }
            },
            "order":{ 
                "invoiceNumber":"63059-191206",
                "description":"xxxxxxxxx, xxxxxxxxxxxx v9.0.12 (Order# 63059-191206)"
            },
            "customer":{ 
                "type":"individual",
                "email":""
            },
            "billTo":{ 
                "firstName":"xxxxxxx",
                "lastName":"xxxxxxx",
                "address":"xxxx San Remo Cir ",
                "city":"Vista",
                "state":"CA",
                "zip":"92084",
                "country":"US"
            },
            "retail":{ …
Run Code Online (Sandbox Code Playgroud)

php authorize.net applepay applepayjs

14
推荐指数
1
解决办法
1101
查看次数

Apple Pay不会显示预先填写的信息

在尝试在iOS应用中设置Apple Pay时,我们遇到了API问题和预填充信息.我们的用户流程允许用户在使用Apple Pay付款之前手动设置他们的地址,电子邮件和电话,因此我们希望确保在他们决定的情况下使用他们的输入填写Apple Pay提示.

根据开发指南,这应该像在request.shippingContact中设置这些值一样简单.但是,当我们这样做时,将忽略这些值.

文档没有告诉我们什么吗?

PKContact *contact = [[PKContact alloc] init];  
contact.emailAddress = @"john@appleseed.com";
contact.phoneNumber = [[CNPhoneNumber alloc] initWithStringValue:@"5555555"];

NSPersonNameComponents *name = [[NSPersonNameComponents alloc] init];
name.givenName = @"John";
name.familyName = @"Appleseed";
contact.name = name;

request.billingContact = contact;
request.shippingContact = contact;
request.requiredBillingAddressFields = PKAddressFieldAll;
request.requiredShippingAddressFields = PKAddressFieldEmail | PKAddressFieldPhone;
Run Code Online (Sandbox Code Playgroud)

Apple Pay Sample

ios applepay

10
推荐指数
1
解决办法
244
查看次数

iOS 13上的ApplePay错误“无法连接到远程警报视图服务”

我已经完成了ApplePay的全面工作。都可以在iOS10、11和12上正常运行。

从iOS 13和Xcode 11的第一个测试版开始至今(iOS13GM和Xcode 11GM),ApplePay授权模式不会出现。

PKPaymentRequest应该没问题,因为它可以在以前的OS版本上运行,并且当我尝试演示时,PKPaymentAuthorizationViewController可以在控制台中找到它:

[General] Connection to remote alert view service failed
Run Code Online (Sandbox Code Playgroud)

我查看了其他问题,并尝试关闭并重新打开ApplePay功能几次,然后进行硬清理,重新启动。我什至用新的商家ID和证书创建了一个新应用,仍然得到了相同的结果-在iOS 12上可以运行,在iOS 13GM上则不能。

更新:

使用在iOS 12.2模拟器上运行的Xcode 11GM,一切都可以正常工作。iOS 13GM模拟器上的相同代码不起作用。

xcode passkit swift applepay ios13

10
推荐指数
0
解决办法
375
查看次数

使用 SwiftUI 实现 Apple Pay

这是我第一次在一个大项目中使用 PassKit 和 SwiftUI。我正在尝试实现 Apple Pay SwiftUI,并且由于还没有本地方式来实现,因此我尝试将 PKPaymentAuthorizationViewController 包装在 UIViewControllerRepresentable 中,但我不确定我是否正确执行此操作。

该视图显示正确,并且在单击它付款时似乎可以正常工作。我通过将视图绑定到 isPresentingApplePay bool 来控制显示窗口(见下文)。应该关闭窗口时会发生问题。点击cancel按钮不会关闭视图;有时它甚至不调用 paymentAuthorizationViewControllerDidFinish 委托函数。提交付款也会发生同样的事情。有时会调用 didFinish 委托,但不会取消视图。我尝试传递绑定变量 isPresentingApplePay 并将其从 didFinish设置为false但它没有做任何事情。让视图消失的唯一方法是点击苹果支付窗口的任何部分。

有谁知道我做错了什么?有什么我完全想念的吗?

通过将视图绑定到 if statement

这是我的 PKPaymentAuthorizationViewController 包装器:

import Foundation
import PassKit
import SwiftUI

struct ApplePayController: UIViewControllerRepresentable {
    @Environment(\.presentationMode) var presentationMode
    @EnvironmentObject var userData: UserData
    @Binding var purchase: Purchase
    @Binding var isPresenting: Bool

    let items: [PKPaymentSummaryItem]

    func updateUIViewController(_ uiViewController: PKPaymentAuthorizationViewController, context: Context) {

    }

    typealias UIViewControllerType = PKPaymentAuthorizationViewController


    func makeUIViewController(context: Context) …
Run Code Online (Sandbox Code Playgroud)

ios passkit applepay swiftui uiviewrepresentable

10
推荐指数
1
解决办法
2587
查看次数

Apple Pay支付"未完成付款" - 无法获得令牌

我正在使用PassKit实现Apple Pay,我正在以正确的方式显示对话框并处理委托方法,但每次我使用touch Id验证购买时它都显示"付款未完成"并且从未达到我的委托方法paymentAuthorizationViewController:didAuthorizePayment:completion:.我完全做了所有这些事情来设置苹果工资,但我似乎无法获得一个令牌发送到我的支付网关.

PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
self.paymentRequest = request;
request.countryCode = @"US";
request.currencyCode = @"USD";
request.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
request.merchantCapabilities = PKMerchantCapabilityEMV;
request.merchantIdentifier = @"merchant.com.*******";
request.requiredShippingAddressFields = PKAddressFieldPostalAddress;
request.requiredBillingAddressFields = PKAddressFieldPostalAddress;

request.paymentSummaryItems = [self paymentSummaryItems];
self.paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
self.paymentPane.delegate = self;
if (self.paymentPane) {
    [self presentViewController:self.paymentPane animated:TRUE completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

这就是我所看到的,屏幕就在那里,一遍又一遍地说"再试一遍":

在此输入图像描述

objective-c ios applepay

8
推荐指数
1
解决办法
8068
查看次数

我们可以在模拟器中测试Apple pay

我知道Apple支付测试我们在iOS 8中使用Apple工资存根,但是请告诉我如何在iOS 9中使用Apple Payy而不使用ApplePayStubs模拟器.

提前致谢

xcode swift ios8 applepay ios9

8
推荐指数
3
解决办法
7915
查看次数