iOS/MacOS SDK 为您的 iOS/MacOS 应用提供灵活且易于集成的支付解决方案。
我们的开源示例/演示应用 VoucherMill 可在 App Store 下载。
在 Honey Store 教程 中,我们展示了如何使用 iOS SDK 与您的后端一起使用,启用退货(一键)支付。此外,我们集成了免费的 card.io 库进行卡扫描。
iOS 6.0 或更高版本 / OS X 10.6 或更高版本。
Podfile
pod 'PayMillSDK', '~> 2.2.0'
在 Cocoapods 中心仓库不可用的情况下,您可以在 Podfile
中添加以下行
pod 'PayMillSDK', :git=>'https://github.com/paymill/paymill-ios.git', :branch=>'master', :tag=>'2.2.0'
一个 PMPayment 对象包含客户的信用卡或银行账户信息。一个 PMPaymentParams 对象包含付款的参数 - 金额、货币、描述。两者都必须始终使用 PMFactory 类创建。
创建PMPayment和PMPaymentParams,使用您的PAYMILL公钥和模式调用PMManager generateTokenWithMethod。
NSError *error;
PMPaymentParams *params;
id paymentMethod = [PMFactory genCardPaymentWithAccHolder:@"Max Musterman"
cardNumber:@"4711100000000000" expiryMonth:@"12" expiryYear:@"2014"
verification:@"333" error:&error];
if(!error) {
params = [PMFactory genPaymentParamsWithCurrency:@"EUR" amount:100
description:@"Description" error:&error];
}
if(!error) {
//generate token with PAYMILL public key
[PMManager generateTokenWithPublicKey:myPublicKey testMode:YES
method:paymentMethod parameters:params
success:^(NSString *token) {
//token successfully created
}
failure:^(NSError *error) {
//token generation failed
}];
}
要从SDK直接创建交易和预授权,首先需要安装移动应用。在代码中,您需要通过调用带有您的PAYMILL公钥和模式的PMManger initWithTestMode方法来初始化SDK。
//init with PAYMILL public key
[PMManager initWithTestMode:YES merchantPublicKey:myPublicKey newDeviceId:nil init:^(BOOL success, NSError *error) {
if(success) {
// init successfull
// start using the SDK
}
}];
NSError *error;
PMPaymentParams *params;
id paymentMethod = [PMFactory genCardPaymentWithAccHolder:@"Max Musterman" cardNumber:@"4711100000000000" expiryMonth:@"12" expiryYear:@"2014"
verification:@"333" error:&error];
if(!error) {
params = [PMFactory genPaymentParamsWithCurrency:@"EUR" amount:100 description:@"Description" error:&error];
}
if(!error) {
[PMManager transactionWithMethod:paymentMethod parameters:params consumable:TRUE success:^(PMTransaction *transaction) {
// transaction successfully created
}
failure:^(NSError *error) {
// transaction creation failed
}];
}