AMSPaymentElement
AMSPaymentElement
是 Payment Element 的核心类,集成于 AMSProductBase
,用于在 iOS 应用中集成 Antom Payment Element 支付组件的主类。商户通过该类完成 SDK 初始化配置、创建支付组件、提交支付、重置及销毁等操作。声明
Objective-C
Swift
@interface AMSPaymentElement : AMSProductBasepublic class AMSPaymentElement : AMSProductBase访问单例
Objective-C
Swift
@property (class, nonatomic, readonly, strong) AMSPaymentElement *shared;
@endpublic class var shared: AMSPaymentElement { get }实例方法
AMSPaymentElement
单例实例提供以下主要方法:属性
Objective-C
Swift
@property (nonatomic, weak, nullable) id<AMSPaymentProtocol> paymentDelegate;public weak var paymentDelegate: AMSPaymentProtocol?使用说明
- 通过 AMSPaymentElement.shared访问该实例。
- 调用 前需先调用 。
- 所有 UI 相关方法( 、、)需要从主线程调用。
使用示例
Objective-C
Swift
#import <AMSFoundation/AMSFoundation-Swift.h>
#import <AMSElement/AMSElement-Swift.h>
@interface PaymentViewController () <AMSPaymentProtocol>
@end
@implementation PaymentViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 1. 创建配置
AMSPaymentElementConfiguration *config = [AMSPaymentElementConfiguration new];
config.locale = @"en_US";
config.options = @{
@"sandbox": @YES,
@"showLoading": @YES
};
// 2. 初始化 SDK(带回调)
[[AMSPaymentElement shared] initConfiguration:config completion:^(AMSStatusResult * _Nonnull result) {
if (result.status == AMSStatusResultTypeSUCCESS) {
NSLog(@"初始化成功");
} else {
NSLog(@"初始化失败: %@", result.error.message);
}
}];
// 3. 设置代理
[AMSPaymentElement shared].paymentDelegate = self;
// 4. (可选)预加载资源
[[AMSPaymentElement shared] preload];
}
- (void)startPaymentWithSessionData:(NSString *)sessionData {
// 5. 创建支付组件(带回调)
[[AMSPaymentElement shared] createComponent:sessionData completion:^(AMSStatusResult * _Nonnull result) {
if (result.status == AMSStatusResultTypeSUCCESS) {
NSLog(@"组件创建成功");
}
}];
}
#pragma mark - AMSPaymentProtocol
- (void)onSubmitPayCallback:(AMSStatusResult * _Nullable)eventResult {
switch (eventResult.status) {
case AMSStatusResultTypeSUCCESS:
NSLog(@"支付成功");
break;
case AMSStatusResultTypeFAIL:
NSLog(@"支付失败: %@", eventResult.error.message);
break;
case AMSStatusResultTypePROCESSING:
NSLog(@"支付处理中");
break;
case AMSStatusResultTypeCANCELLED:
NSLog(@"支付已取消");
break;
default:
break;
}
}
- (void)onEventCallback:(NSString * _Nonnull)eventCode eventResult:(AMSEventResult * _Nonnull)eventResult {
NSLog(@"事件回调: %@", eventCode);
}
- (void)dealloc {
[[AMSPaymentElement shared] onDestroy];
}
@endimport AMSFoundation
import AMSElement
class PaymentViewController: UIViewController, AMSPaymentProtocol {
override func viewDidLoad() {
super.viewDidLoad()
// 1. 创建配置
let config = AMSPaymentElementConfiguration()
config.locale = "en_US"
config.options = [
"sandbox": true,
"showLoading": true
]
// 2. 初始化 SDK
AMSPaymentElement.shared.initConfiguration(config) { result in
if result.status == .SUCCESS {
print("初始化成功")
} else {
print("初始化失败: (result.error?.message ?? "")")
}
}
// 3. 设置代理
AMSPaymentElement.shared.paymentDelegate = self
// 4. (可选)预加载资源
AMSPaymentElement.shared.preload()
}
func startPayment(sessionData: String) {
// 5. 创建支付组件
AMSPaymentElement.shared.createComponent(sessionData) { result in
if result.status == .SUCCESS {
print("组件创建成功")
}
}
}
func onSubmitPayCallback(_ eventResult: AMSStatusResult?) {
guard let result = eventResult else { return }
switch result.status {
case .SUCCESS:
print("支付成功")
case .FAIL:
print("支付失败: (result.error?.message ?? "")")
case .PROCESSING:
print("支付处理中")
case .CANCELLED:
print("支付已取消")
default:
break
}
}
func onEventCallback(_ eventCode: String, eventResult: AMSEventResult) {
print("事件回调: (eventCode)")
}
// 销毁
deinit {
AMSPaymentElement.shared.onDestroy()
}
}