source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/visa/mpos.sdk.ios.pods.git' use_frameworks! target :"your-app-target>" do pod 'payworks', '2.61.0' pod 'payworks.paybutton', '2.61.0' end
#import mpos_ui/mpos_ui.h>
[MPUMposUi initializeWithProviderMode:MPProviderModeLIVE application:MPUApplicationNameMcashier integratorIdentifier:@"YOUR-INTEGRATOR-IDENTIFIER"]; [MPUMposUi sharedInitializedInstance].configuration. summaryFeatures = MPUMposUiConfigurationSummaryFeatureSendReceiptViaEmail;
- (void) showMposUiViewController:(UIViewController*) controller { UINavigationController *modalNav = [[UINavigationController alloc] initWithRootViewController:controller]; if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { modalNav.modalPresentationStyle = UIModalPresentationFullScreen; } else { // Show as Form on iPad modalNav.modalPresentationStyle = UIModalPresentationFormSheet; } [self presentViewController:modalNav animated:YES completion:NULL]; }
- (IBAction)paymentButtonClicked:(id)sender { MPUMposUi *ui = [MPUMposUi sharedInitializedInstance]; MPAccessoryParameters *ap = [MPAccessoryParameters externalAccessoryParametersWithFamily:MPAccessoryFamilyMiuraMPI protocol:@"com.miura.shuttle" optionals:nil]; MPTransactionParameters *tp = [MPTransactionParameters chargeWithAmount:[NSDecimalNumber decimalNumberWithString:@"5.00"] currency:MPCurrencyCHF optionals:^(id MPTransactionParametersOptionals> _Nonnull optionals) { optionals.subject = @"Bouquet of Flowers"; optionals.customIdentifier = @"yourReferenceForTheTransaction"; }]; ui.configuration.terminalParameters = ap; ui.configuration.summaryFeatures = MPUMposUiConfigurationSummaryFeatureSendReceiptViaEmail; // Add this line, if you do also want to offer printed receipts //ui.configuration.printerParameters = //ui.configuration.summaryFeatures |= MPUMposUiConfigurationSummaryFeaturePrintReceipt; UIViewController *viewController = [ui createTransactionViewControllerWithTransactionParameters:tp completed:^(UIViewController * _Nonnull controller, MPUTransactionResult result, MPTransaction * _Nullable transaction) { [self dismissViewControllerAnimated:YES completion:NULL]; UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Result" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK",nil]; if (result == MPUTransactionResultApproved) { alert.message = @"Payment was approved!"; } else { alert.message = @"Payment was declined/aborted!"; } [alert show]; }]; [self showMposUiViewController:viewController]; }
MPTransactionParameters *tp = [MPTransactionParameters refundForTransactionIdentifier:identifier optionals:nil];
UIViewController *summaryController = [[MPUMposUi sharedInitializedInstance] createSummaryViewControllerWithTransactionIdentifier:self.transactionIdentifier completed:^(UIViewController *controller) { [self dismissViewControllerAnimated:YES completion:NULL]; }]; [self showMposUiViewController:summaryController];
UIViewController *settingsController = [[MPUMposUi sharedInitializedInstance] createSettingsViewController:^(UIViewController *controller) { [self dismissViewControllerAnimated:YES completion:NULL]; }]; [self showMposUiViewController:settingsController];
[[MPUMposUi sharedInitializedInstance] logout];
BOOL isLoggedIn = [[MPUMposUi sharedInitializedInstance] isApplicationLoggedIn];
UIViewController *viewController = [ui createTransactionViewControllerWithTransactionParameters:tp completed:^(UIViewController * _Nonnull controller, MPUTransactionResult result, MPTransaction * _Nullable transaction) { [...] MPReceipt *merchantReceipt = transaction.merchantReceipt; MPReceipt *customerReceipt = transaction.customerReceipt; }];
allprojects { repositories { jcenter() maven { url "https://repo.visa.com/mpos-releases/" } } }
packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'LICENSE.txt' }
dependencies { compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.android.support:cardview-v7:25.2.0' compile 'com.android.support:support-v4:25.2.0' compile 'io.payworks:mpos.android.ui:2.61.0' compile 'io.payworks:mpos.java.accessories.miura:2.61.0' compile 'io.payworks:mpos.android.comlinks.bluetooth:2.61.0' }
MposUi mposUi = MposUi.initialize(this, ProviderMode.LIVE, ApplicationName.MCASHIER, "YOUR-INTEGRATOR-IDENTIFIER"); mposUi.getConfiguration().setSummaryFeatures(EnumSet.of(MposUiConfiguration.SummaryFeature.SEND_RECEIPT_VIA_EMAIL));
MposUi mposUi = MposUi.getInitializedInstance();
MposUi mposUi = MposUi.getInitializedInstance(); TransactionParameters transactionParameters = new TransactionParameters.Builder() .charge(new BigDecimal("5.00"), io.mpos.transactions.Currency.EUR) .subject("Bouquet of Flowers") .customIdentifier("yourReferenceForTheTransaction") .build(); Intent intent = mposUi.createTransactionIntent(transactionParameters); startActivityForResult(intent, MposUi.REQUEST_CODE_PAYMENT);
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == MposUi.REQUEST_CODE_PAYMENT) { if (resultCode == MposUi.RESULT_CODE_APPROVED) { // Transaction was approved Toast.makeText(this, "Transaction approved", Toast.LENGTH_LONG).show(); } else { // Card was declined, or transaction was aborted, or failed // (e.g. no internet or accessory not found) Toast.makeText(this, "Transaction was declined, aborted, or failed", Toast.LENGTH_LONG).show(); } // Grab the processed transaction in case you need it // (e.g. the transaction identifier for a refund). // Keep in mind that the returned transaction might be null // (e.g. if it could not be registered). Transaction transaction = MposUi.getInitializedInstance().getTransaction(); } }
MposUi mposUi = MposUi.getInitializedInstance(); TransactionParameters refundParameters = new TransactionParameters.Builder() .refund("TRANSACTION-IDENTIFIER>") .build(); Intent refundIntent = mposUi.createTransactionIntent(refundParameters); startActivityForResult(intent, MposUi.REQUEST_CODE_PAYMENT);
MposUi mposUi = MposUi.getInitializedInstance(); Intent summaryIntent = mposUi.createTransactionSummaryIntent(mLastTransactionIdentifier); startActivityForResult(summaryIntent, MposUi.REQUEST_CODE_SHOW_SUMMARY);
MposUi mposUi = MposUi.getInitializedInstance(); Intent intent = mposUi.createSettingsIntent(); startActivityForResult(intent, MposUi.REQUEST_CODE_SETTINGS);
MposUi mposUi = MposUi.getInitializedInstance() mposUi.logout();
MposUi mposUi = MposUi.getInitializedInstance() boolean isLoggedIn = mposUi.isLoggedIn();
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == MposUi.REQUEST_CODE_PAYMENT) { [...] //get hold of the last transaction Transaction transaction = MposUi.getInitializedInstance().getTransaction(); Receipt merchantReceipt = transaction.getMerchantReceipt(); Receipt customerReceipt = transaction.getCustomerReceipt(); } }