介绍
PayPro Global Inc 通过复杂的支付处理系统,提供了最好的购物体验,该系统提供安全交易、多功能性(满足所有客户偏好的多种选项)、用户友好体验(本地化内容、支付方式和货币)以及最高程度的交易完成度。
PPGAppKit 是 PayPro Global 的 SDK,它使您能够快速将我们的购物体验集成到 Mac App 中。
此 SDK 在 Webview 上是一个薄层,它使您能够在 Mac App 中集成 PayProGlobal 电子商务解决方案。
为了了解其工作原理,SDK 提供了 Swift 和 Objective-C 示例。所有源代码都是在 MIT 许可下发布的。它开放接受贡献,且使用不受限制。
PPGAppKit
PPGAppKit 由两个主要组件组成:PayProWebView
和 Configuration
。
PayProWebView
提供加载 PayPro Global 电子商务解决方案的功能。使用 Configuration
对象初始化 PayProWebView
,并嵌入到 Mac App 中。这个文档提供了如何构造提供给 Configuration
对象的 URL 的详细信息。一旦提交订单并在感谢页面上加载,您将通过 WebView 的 HTTP 响应头获得 PayProGlobal 订单号、状态和发票链接。
要求
-
Xcode 11.x
-
Swift 5.x
-
Objective-C 2.0
安装
CocoaPods
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'PPGAppKit'
end
替换YOUR_TARGET_NAME
,然后,在Podfile
目录中,输入
$ pod install
如果您尚未安装CocoaPods,可以使用以下命令进行安装
$ sudo gem install cocoapods
Swift Package Manager
要添加包依赖到您的Xcode项目,选择“文件”>“Swift Packages”>“添加包依赖”,然后输入其仓库URL https://github.com/paypro-global/MacOsWebViewSDK.git
如何在Swift中使用PPGAppKit
-
阅读我们的URL参数指南了解有关URL参数的信息。
-
使用步骤1中解释的URL参数创建
Configuration
对象。 -
使用包含
Configuration
对象的初始化创建PayProGlobal
。 -
观察
didFail/didStartPaymentViewLoad/didFinishPaymentViewLoad
以跟踪URL加载的进度。 -
观察
didCompletedOrder
,它在订单完成后与订单信息一起调用。 -
观察
urlCredential
方法来处理身份验证挑战。 -
在
PayProGlobal
中访问paymentView
对象,并将其作为任何NSWindow的子视图添加。
位于Example/Swift目录中的示例说明了如何创建PayProGlobal
及其详细使用方式。
如安装部分中所述,使用Swift Package或CocoaPods。
如果您已使用SwiftPackage,打开PayProGlobalStore.xcodeproj
,构建并运行。
如果您已使用CocoaPods,打开PayProGlobalStore.xcworkspace
,构建并运行。
示例
private lazy var payproGlobal: PayProGlobal = {
let configuration = Configuration(url: "https://store.payproglobal.com/checkout?products[1][id]=59421&use-test-mode=true&secret-key=gEcP!-xp9M")
return PPGAppKit.create(configuration: configuration)
}()
private func load(){
let paymentView = payproGlobal.paymentView
payproGlobal.didFail = { (error) in
print("Did Fail \(error)")
}
payproGlobal.didStartPaymentViewLoad = {
print("didStartPaymentViewLoad ")
}
payproGlobal.didFinishPaymentViewLoad = {
print("didFinishPaymentViewLoad ")
}
payproGlobal.didCompletedOrder = { (orderInfo) in
print("did complete Order \(orderInfo)")
}
payproGlobal.urlCredential = { [weak self] (crediential) in
self?.showAuthenticationUI(with: crediential)
}
paymentView.translatesAutoresizingMaskIntoConstraints = false
container.addConstraints(paymentViewConstraints)
container.addSubview(paymentView)
}
如何在 Objective-C 中使用 PPGAppKit
-
阅读我们的URL参数指南了解有关URL参数的信息。
-
使用以下方式创建
Configuration
对象 -
使用
Configuration
对象初始化PayProGlobal
。示例位于 Example/Swift 和 Example/Objective-C 中,展示了如何创建PayProGlobal
并详细使用它。 -
观察
didFail/didStartPaymentViewLoad/didFinishPaymentViewLoad
以跟踪URL加载的进度。 -
观察
didCompletedOrder
,它在订单完成后与订单信息一起调用。 -
观察
urlCredential
方法来处理身份验证挑战。 -
在
PayProGlobal
中访问paymentView
对象,并将其作为任何NSWindow的子视图添加。
位于 Example/Objectice-C 文件夹中的示例展示了如何创建 PayProGlobal
并详细使用它。
运行以下命令,使用 CocoaPods 创建 XcodeWorkspace
$ cd [../Example/Objective-C]
$ pod install
如果您尚未安装CocoaPods,可以使用以下命令进行安装
$ sudo gem install cocoapods
打开 PayProGlobalStore.xcworkspace
,构建并运行。
示例
Configuration *configuration = [[Configuration alloc] initWithUrl:@"https://store.payproglobal.com/checkout?products[1][id]=59421&use-test-mode=true&secret-key=gEcP!-xp9M"];
self.payproGlobal = [PPGAppKit createWithConfiguration:configuration];
self.payproGlobal.didStartPaymentViewLoad = ^(){
NSLog(@"Did start");
};
self.payproGlobal.didFinishPaymentViewLoad = ^(){
NSLog(@"Did Finish");
};
self.payproGlobal.didCompletedOrder = ^(NSDictionary<NSString *,id> * orderInfo){
NSLog(@"did Complete Order %@",orderInfo);
};
self.payproGlobal.didFail = ^(NSError * error) {
NSLog(@"Did Fail");
};
__weak ViewController *weakSelf = self;
self.payproGlobal.urlCredential = ^(void (^ callback)(NSURLCredential * _Nullable)) {
[weakSelf showAlert:callback];
};
NSView *paymentView = [self.payproGlobal paymentView];
[paymentView setTranslatesAutoresizingMaskIntoConstraints:false];
[self.container addSubview:paymentView];
沙箱设置
如果您的应用被沙箱化,你应在签名与能力标签中完成以下操作
-
启用 出站连接(客户端) 允许框架将数据发送给 PayPro Global。
-
启用 打印 允许框架打印发票。
-
框架通过提供对 用户选择的文件 的 读写访问 支持保存发票功能。