如何在 Xamarin Forms 中集成 Apple Pay?

2023-11-25

我正在使用 xamarin Forms 开发应用程序。现在,我需要集成 Apple Pay 我试图通过互联网查找内容,但无法找到有效的解决方案。谁能建议我如何将 Apple pay 集成到我的应用程序中?

这是我的 Apple pay 代码

using System;
using ApplePayTest.iOS.Dependencies;
using ApplePayTest.Services;
using Foundation;
using PassKit;
using StoreKit;
using Stripe.iOS;
using UIKit;

[assembly: Xamarin.Forms.Dependency(typeof(ApplePayAuthorizer))]
namespace ApplePayTest.iOS.Dependencies
{
    public class ApplePayAuthorizer :PKPaymentAuthorizationViewControllerDelegate,IApplePayAuthorizer
   {
       public bool AuthorizePayment()
       {

           SKProductsRequest req=new SKProductsRequest(new NSSet());
          NSString[] paymentNetworks = new NSString[] {
              PKPaymentNetwork.Visa,
            PKPaymentNetwork.MasterCard
           , PKPaymentNetwork.Amex
               };
            var canmakepayment = PKPaymentAuthorizationViewController.CanMakePayments;

            PKPaymentRequest paymentRequest = new PKPaymentRequest();
             paymentRequest.MerchantIdentifier = "mymerchant code"; 
             paymentRequest.SupportedNetworks = paymentNetworks;
             paymentRequest.MerchantCapabilities = PKMerchantCapability.ThreeDS;
             paymentRequest.CountryCode = "CA";
             paymentRequest.CurrencyCode = "CAD";


             paymentRequest.PaymentSummaryItems = new PKPaymentSummaryItem[]{
                   new PKPaymentSummaryItem()
        {
            Label = "Sample Purchase Item" ,
                      Amount = new NSDecimalNumber("1")
                   }
    };
             var canmakepayments = PKPaymentAuthorizationViewController.CanMakePaymentsUsingNetworks(paymentNetworks);
            //can make payment is always false
             if (canmakepayments)
            {

                PKPaymentAuthorizationViewController controller = new
                      PKPaymentAuthorizationViewController(paymentRequest);
                controller.Delegate = (PassKit.IPKPaymentAuthorizationViewControllerDelegate)Self;
                var rootController = UIApplication.SharedApplication.
                      KeyWindow.RootViewController;
                rootController.PresentViewController(controller,
                                                     true, null);
            }
             return false;
          }
       public override void DidAuthorizePayment(PKPaymentAuthorizationViewController controller, PKPayment payment,
             Action<PKPaymentAuthorizationStatus> completion)
       {

          completion(obj: PKPaymentAuthorizationStatus.Success);
       }


       public override void PaymentAuthorizationViewControllerDidFinish
             (PKPaymentAuthorizationViewController controller)

       {
             controller.DismissViewController(true, null);
      }

       public override void WillAuthorizePayment(PKPaymentAuthorizationViewController controller)
       {

       }



    }
}

预期结果:

canmake paymentUsingNetwork 方法应返回 true。但是,它总是返回 false。

NOTE: 我在权利中添加了正确的商家 ID。在 Apple pay 文档中,只有当我们没有卡时,CanMakePaymentsUsingnetwork() 才会返回 false。我也在我的测试帐户中添加了卡。

我在 xamarin 表单共享应用程序中有一个按钮,当单击该按钮时,它将触发上面代码中的 AuthorizePayment() 方法。


Solved.

一切都配置正确。上面的代码按预期工作。唯一的问题是,我忘了加载权利.plistiOS 项目设置中的文件。这就是我总是得到 canmake paymentUsingNetwork(networks) 的主要原因false.

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Xamarin Forms 中集成 Apple Pay? 的相关文章

  • 为什么我不能将新的视图控制器推送到当前视图上?

    我正在使用以下代码并收到以下错误 编辑 参见this https i stack imgur com k713X png如果您看不懂上图 ChangePasscode 当前被声明为一个类 并且是一个具有 h 和 m 文件以及 nib 文件的
  • 带圆圈的 CGContextClearRect

    我正在创建一个应用程序 其中我试图清除rect of UIImageView 我已经实现了这一目标CGContextClearRect 但问题是它正在清除rect在方形中 我想在圆形中实现这种效果 到目前为止我已经尝试过 UITouch t
  • 与 UIActivityViewController 共享 PDF 文件

    我正在尝试使用共享 PDF 文件UIActivityViewController但是当我按下按钮时 我没有共享文件的选项 我怎样才能显示这些选项 https i stack imgur com ywDQw jpg https i stack
  • Xamarin.Forms 绘图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在为客户构建一个 Xamarin Forms 项目 我们需要一个图形库它将处理实时流式传输的数据连
  • 已删除的测试仍保留在 Xcode 测试导航器中

    我最近从我的项目中删除了一些旧的测试类并删除了这些文件 正如预期的那样 文件被移至垃圾箱并在 git 中显示为已删除 不幸的是 它们定义的测试类和测试用例继续出现在测试导航器中 我尝试过常见的方法 例如清理和重建 以及退出并重新打开 Xco
  • 无法在新的 Xcode 10.2 (iOS 12.2) 中构建 Alamofire 框架

    由于以下错误 我无法在 Xcode 10 2 iOS 12 2 中为 swift 5 构建 Alamofire SWIFT VERSION 3 0 is unsupported supported versions are 4 0 4 2
  • NSHTTPCookieStorage 是否跨应用程序持续存在?

    所以我只是好奇 NSHTTPCookieStorage 是否跨应用程序持久存在 或者仅在当前应用程序本地 我希望在另一个应用程序中收集的一些 cookie 可以在搜索应用程序中访问 是这样的吗 谢谢 PS 这是在 iPhone 或 iPad
  • Swift - 本地通知不会被触发

    我正在 Swift 3 中编码 我只是想发送通知now没有任何延迟或间隔 然而 通知永远不会被触发 这是我的代码 视图控制器代码 import UserNotifications class HomeViewController UIVie
  • 将第 3 方库 ZXing 导入 Xcode

    我尝试了多种方法将第 3 方库 ZXing 导入我的 iOS 应用程序 但所有方法都很痛苦 或者根本不起作用 如果有人可以建议我做错了什么 或者提出导入 ZXing 等库的更好方法 我将非常感激 一定比这个容易 这就是我所做的 结果是 My
  • SQLite创建连接时出现异常

    我在创建连接时收到 SQLite 异常 这在我安装 VS2015 RTM 之前有效 客户端 PCL databaseConnection DependencyService Get
  • 带闭包的默认属性值使编译器重新编译所有文件

    This source https developer apple com library content documentation Swift Conceptual Swift Programming Language Initiali
  • XCode 无法将 iPhone 应用程序部署到 iPhone 3GS

    因此 我构建了我的 iPhone 应用程序 它在模拟器中运行良好 因此我想将其部署到我的 iPhone 上进行最后一轮测试 然后再使用我的分发配置文件进行公开 Beta 测试 我已经这样做过很多次了 从来没有出现过问题 然而 自从上次测试运
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • 在 OS X 上创建和使用静态库

    好的 我正在尝试创建一个 Cocoa 库 静态 并使用 但我不断收到错误 我创建了一个超基本的静态库 TSXLib 其中仅包含一个额外的类 import
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我
  • Xcode 9:“clang:错误:生成多个输出文件时无法指定 -o”

    我刚刚将 Xcode 更新到版本 9 并且在编译时开始收到以下错误消息 该问题似乎与将 优化级别 参数设置为 无 即 O0 进行编译有关 如果我将其设置得更高 错误就会消失 但是当我增加优化时 调试工具将无法正常工作 例如变量跟踪 我查看了
  • nlohmann/json 框架中的未知断点

    一段时间以来 当我在启用断点的 Xcode 下运行我的应用程序时 我显然在名为 nlohmann basic json 的系统框架中遇到了一个未知断点 我可以毫无问题地继续执行 但这无论如何都很烦人 知道这个断点的原因是什么 或者更好的是
  • UITabBarController 为 TabBar 的每个 ViewController 提供不同的 Storyboard 文件

    我的团队正在开发一个具有 UITabBarController 的应用程序 我们正在使用 Storyboard 来开发界面和流程 由于我们是一个团队 所以我们不能将所有流程放在一个故事板中 因为这会导致与 SVN 同步出现问题 所以 解决方
  • 詹金斯配置文件问题

    检查依赖关系 找不到与 Nitin xxxxxxx xyzCAppStore 匹配的 iOS 配置文件 Xcode 找不到与 Nitin xxxxxxx xyzCAppStore 匹配的配置文件 安装配置文件 通过将其拖放到 Xcode 的

随机推荐

  • 如何防止Gson将整数表示为浮点数

    当我尝试将字符串转换为 json 时 Gson 有一些奇怪的行为 下面的代码将字符串草稿转换为 json 响应 有没有办法阻止 gson 将 0 添加到所有整数值 ArrayList
  • google-api-java-client NetHttpTransport 导致 NoClassDefFoundError

    我刚刚开始研究Android上的google api java client 将接下来的 3 个库添加到项目中 我不使用 Maven google api client 1 4 1 beta jar google api client go
  • Emacs/CEDET。多个项目和代码完成

    我已经使用 CEDET 1 0 和 ECB 2 40 设置了 emacs 23 1 50 1 很大程度上受到 Alex Otts 设置的启发 http github com alexott emacs configs blob master
  • CSS:-webkit-mask-image

    我正在使用 CSS 属性 webkit mask image 在图像上应用蒙版 但是 在 Chrome 中 当您将图像滚动到页面之外时 遮罩会移动 如何防止面罩移动 还是渲染神器 JSFiddle http jsfiddle net DZT
  • Scala 中不明确的导入

    我正在用 Scala 编写一个小型模拟程序 它是基于演员的 所以我创建了一个文件messages scala包含系统中所有有效的消息 除此之外 我还有一个管理组件 management scala以及定义节点和链接类的文件nodes sca
  • 在 GCP Cloud Run/Function 上使用固定公共 IP(列入白名单)

    我正在寻找将应用部署到 GCP 的最佳方法 该应用程序需要使用微服务 在Cloud Run或Cloud Function上运行 在远程数据库上执行SQL代码 基本上 微服务接收一段 SQL 代码 并需要在远程数据库上执行它 出于安全原因 远
  • 给 CSS 样式的 div 一个“border-left-image”

    只是想给网站上的主要内容 div 的左侧和右侧添加边框 我不想为每个边框设置单独的 div 而是使用border left imageCSS3 中的功能可以实现这一目标 我的代码如下 content background color 7FC
  • 将 Roslyn 编译器与 Visual Studio 2013 结合使用

    有没有办法将 Roslyn 编译器与 Visual Studio 2013 一起使用 以便我可以利用新的 C 6 功能 注意 不能使用 VS 2015 Yes 您可以使用 Visual Studio 2013 编译 C 6 代码 您只需安装
  • 斐波那契递归函数如何“工作”?

    当我读到描述函数递归的一章时 我是 Javascript 的新手 正在阅读它 它使用示例函数来查找斐波那契数列的第 n 个数字 代码如下 function fibonacci n if n lt 2 return 1 else return
  • 考虑添加 android:paddingStart="25dp" 以更好地支持从右到左布局错误

    我最近下载了一个新的ADT 每次保存我的项目后 它都会显示以下内容XML错误 但当我清理它时 同样的情况就会消失 有没有永久的解决方案 提前致谢
  • Ruby:从块中产生块?

    是否有可能lambda proc method或红宝石中其他类型的块 以屈服于另一个块 就像是 a lambda puts in a yield if block given a call puts in a s block 这不起作用 它
  • 每个块的 CUDA 线程限制

    为什么我不能使用 max ofMax dimension size of a thread block x y z 1024 1024 64 如果我使用 1024 1024 它不起作用 当我使用时 32 32 or 1 1024 等等它有效
  • Android FirebaseAuth.getCurrentUser() 从不为空

    我有一个 DispatchActivity 作为我的 Launcher Activity 其目的是检查当前是否有用户登录 如果用户已登录 我会将其发送到他们的 ProfileActivity 否则 我将它们发送到 LogInActivity
  • 动态查询 sqlalchemy 中的列子集

    假设表中只需要两列 名称和 ID 我会编写如下代码 session query User id User name all 但如果列名是动态的 def get data table columns return session query
  • C++:数组的构造函数初始化列表?

    我有一个基本问题 我有一个带有数据成员的类 double mydata N N 是模板参数 使用构造函数初始化列表将这些数据初始化为零的语法是什么 是 mydata 0 根据 C 标准 对于所有编译器也是如此 可以吗 非常感谢 不 在 C
  • 类加载器如何加载清单类路径中的类引用?

    我使用 Maven 构建了一个带有外部类路径添加的 jar添加类路径 当我使用运行该罐子时java jar artifact jar它能够从该主 jar 和 libs 目录中的所有 jar 加载类 但是如果我询问系统属性java class
  • 在会话中发出后续 POST 请求不起作用 - 网络抓取

    这就是我想做的 去here 然后点击 搜索 获取数据 然后点击 下一步 并继续点击下一步 直到页面用完 直到点击 下一步 为止的一切都有效 这是我的代码 r content 的格式在我打印两次时完全不同 这表明 GET 和 POST 请求之
  • DataGridView 中的超链接

    我正在开发 C 应用程序 它就像一个小型搜索引擎 用户输入一个单词 程序将返回包含该单词的文件 我有一个文件路径数组 作为字符串 我想将这些路径显示为DataGridView 以便当用户单击文件名时将打开该文件 注意 我正在使用 C Win
  • PHP HTTP 引荐来源网址

    我有一个接受来自远程站点的 POST 的页面 我想检测这些帖子来自的域 我意识到它可以被欺骗 但总比没有好 我尝试访问 HTTP REFERER 变量 但它只返回 null 该页面接受来自 PayPal 即时付款通知 和其他支付网关等来源的
  • 如何在 Xamarin Forms 中集成 Apple Pay?

    我正在使用 xamarin Forms 开发应用程序 现在 我需要集成 Apple Pay 我试图通过互联网查找内容 但无法找到有效的解决方案 谁能建议我如何将 Apple pay 集成到我的应用程序中 这是我的 Apple pay 代码