How to setup environment for BlackBerry in-app payment tests? - testing

I'm trying to implement in-app payment support in a BB application.
Ok, I've read the API/docs and now I need to write a simple test. Here is what API says about testing:
To test the end-to-end purchase flow without being charged money, you can set up a BlackBerry ID as a test account. The test account allows you to download any applications or digital goods that are associated with your BlackBerry App World vendor account without incurring any costs. Local testing must be turned off for this type of testing, otherwise no network connections will be attempted.
From the above I see that I need to achieve 2 goals:
(1) "set up a BlackBerry ID as a test account" (what ever it means).
(2) "Local testing must be turned off for this type of testing" (what ever it means).
The API is vague on how to do that. I can only guess that point (1) can be done on the side of my customer (whom I'm writing the app for) via his AppWorld account. Is it true? And I'm totally out of ideas on point (2). Could anyone point me in the right direction?

Ah yes, the Payment API is particularly vague on testing, and in the latest version (1.5) RIM have removed the ability to test locally, so all testing must be done via App World. Here's how:
Setup a 'sandbox' account using the BlackBerry App World vendor portal
Upload your app into BlackBerry App world but don't publish it, just save it and leave it in draft state
Also in the vendor portal, set up your digital goods (the things available for in-app purchase)
On your BlackBerry, load App World and login with your sandbox account email address.
Within any screen in App World press ALT+TST and enter the SKU or ID of your test app.
You can then download the test version of your app (which is not available to anyone else)
Once the app is downloaded and installed you will be able to test your in app payments.
Bit of a faff, but not too hard once you've got the process sorted.

Related

IOS Automation How to Create Apple (Appstore Connect) Sandbox accounts Programatically?

Hi I am new to IOS automation and I have a scenario where we have to do an In-App purchase
As for Testing these could be done by AppStore Connect Portal under User Access and create a Sandbox account but is there a way by which we can create an Apple (Appstore Connect) Sandbox account programmatically
Please advise
Well, it isn't much of a solution and it is a PITA but you could use something like Appium, which is what I use, to automate all that stuff by driving a web browser.
I use it for testing 3rd party social logins. For things like Apple ID where the social login requires 2FA I have an Appium test step that goes to a google voice account in the mobile browser and retrieves the 2FA code that was texted to the GV number. It is tedious and a bit brittle but I couldn't find any other way to get around 2FA situations.

Testing a Dialogflow app

Is it possible to install a Dialogflow chatbot for testing on my Google Home device
without using the phrase "Talk to my test app?"
I am a rather new user of Dialogflow and have several simple test apps that
I plan to develop as learning exercises. Can set them up for testing on my
personal Google Home device without entering the "Talk to my test app" and without
submitting them for distribution to the Google Home community. I do not consider them
sinificant enough to offer them the the Google community at large.
I anticipate the develop of the following apps: 1 - SillyNameMaker, 2 - Woodchuck,
Gettysburg Address.
Thanks for any help
Jim
If you provide an app name and sample invocations in the "App information" section of the Actions on Google console, you'll be able to use this name to invoke your app on devices that are signed in to the Google account you are using for development.
One thing to note, however, is that you can only have one app in testing at a time. If you start testing a new app, the previous one (even if it is named) will be unavailable.

What is a progressive web app in layman's terms?

I have been a dev for some years now, but I can't wrap my head around what exactly is a PWA.
For example, if an app runs on a mobile phone it is a native app. I can point to it and tell people that "look it is a native app."
In a similar sense, what is a PWA? Where does it run? Which app can I point to and tell that it is a PWA?
From what I have read on the web I feel that a PWA is a website that has modern technologies and gives a "native app like" experience to the user.
Is my understanding correct?
All in all, it is a website that has native-like experience?
If so how does a user separate a normal website form a PWA?
The concept of the progressive web app (PWA) was approached by Google in late 2015. They are basically web applications (Website) but have look and feel like other native mobile apps. The progressive web app enabled websites can offer functionalities such as working offline, push notifications, and device hardware access.
Benefits of the progressive web app:
1. Smaller and Faster:
The progressive web apps are much smaller in size than native apps. They don’t even need to install. That’s they are not wasting disc space and load very fast.
2. Responsive Interface:
Progressive web app (PWA) supported web pages are capable to fit in every screen sizes automatically. It could be a smartphone, tablet, desktop or laptop.
3. No Updates Required:
Most of the mobile apps need regular weekly updates. Like the normal website, progressive web apps (PWA) are always loaded latest updated version whenever the user interaction happens and no App or Play Store approval required.
4. Cost Effective:
Native mobile apps need to be developed for both Android and iOS devices separately and their development cost is very high. On the other hand, progressive web apps are had the same features but the fraction of the prior price.
5. SEO Advantage:
Progressive web apps are discoverable by search engines and load super-fast. Just like other websites, their links are sharable too. This, in other words, gives good user experience and result in SEO rank boost.
6. Offline capabilities:
Due to the support of service worker API, PWAs are accessible in offline or low internet connections.
7. Security:
PWAs are delivered over HTTPS connection and secure user-data over each interaction.
8. Push Notifications:
By the support of push notifications, PWAs can interact easily with the users and provide a really amazing user experience.
9. Bypass the app stores:
PWAs don’t need the App store or Google play store support. Their updated version can be directly loaded from the web server without the requirement of app store approval. On the other hand, native apps need days of approval if any new update required. There are possibilities of getting rejected or banned.
10. Zero installation:
During browsing, progressive web app gets its own icon on phones and tablets, just like a mobile application, but without the need to go through the tedious and slow App Store installation process.
Disadvantages of the progressive web app:
1. Less access to system features:
Currently, Progressive Web Apps have limited access to native system features than native apps. Also, all browsers are not supporting its full features but maybe in near future, it will be the new standard of development.
2. More Android – Less Apple’s iOS:
progressive web apps are currently, most supported by Android devices. Apple’s iOS is only partially supporting.
3. No review standard:
progressive web apps don’t need any kind of review system which is applicable for native apps from the app store. It may make the process faster but lack of promotional benefits from the app store.
Progressive web app checklist:
The checklist for the progressive web app is extensive. I have described its main few items here.
1. HTTPS
2. Web app manifest - manifest.json
3. Service worker
4. Responsive design
5. App icon
6. First load fast even on 3G
Conclusions:
There are huge possibilities offered for the progressive web app. Although there are lots of features and browser adaptability expected in near future. But, whatever already exists in the market is enough to show a strong mobile presence.
Visit the video blog: https://www.youtube.com/watch?v=NVXP-RzA0Eo
A PWA is a website with certain progressive features, most notably the ability to load offline or in areas with spotty connection, load quickly, display push notifications, and have other native app qualities. The benefits of a PWA is that they run on any browsers (since they're a normal website, if the browser doesn't support PWAs then the user gets a normal website experience), even desktop browsers. On mobile devices, the user will often get prompted to install the web app to the home screen, which happens almost instantaneously and uses barely any data since the website is already loaded. This allows for way more "downloads" than a native app, leading to higher engagement. For another brief overview of what a PWA, Google has some great articles about them.
Technically speaking, a PWA is a website that has two things: a web app manifest file and a service worker.
A manifest is a JSON file (usually called manifest.json) with some information about the progressive web app. It contains information similar to what you would include with a native app. It has the name, the short name for display on home screens, icons, orientation, etc. A web app manifest can be used on any site (even non-PWAs) to give the browser more information and allow the site to create a shortcut on the user's homescreen, but it's required for a PWA. You can read more about it over on the Google Developer's site.
A service worker is a JavaScript file that can be installed by the browser to do certain tasks. This file will be run in the background of the site and can do things like caching resources, intercepting network requests (to do stuff like return data from the cache), receiving push notifications, background synchronization, etc. When a user first visits your site this JS file gets installed and starts running. This is the file that allows for things like offline functionality. You can read more about service workers on the Google Developer's site as well.
Roughly speaking PWA is a web app that has native feeling and can be installed to the users' home screen and can start & work offline with an optional sync to server when Internet connection gets available.
To be considered a Progressive Web App, your app must be:
Progressive - Work for every user, regardless of browser choice,
because they are built with progressive enhancement as a core tenet.
Responsive - Fit any form factor, desktop, mobile, tablet, or whatever
is next.
Connectivity independent - Enhanced with service workers to work
offline or on low quality networks.
App-like - Use the app-shell model to provide app-style navigation and
interactions.
Fresh - Always up-to-date thanks to the service worker update process.
Safe - Served via HTTPS to prevent snooping and ensure content has not
been tampered with.
Discoverable - Are identifiable as “applications” thanks to W3C
manifests and service worker registration scope allowing search
engines to find them.
Re-engageable - Make re-engagement easy through features like push
notifications.
Installable - Allow users to “keep” apps they find most useful on
their home screen without the hassle of an app store.
Linkable - Easily share via URL and not require complex installation.
I think PWA is quite a broad term. I say broad because there are many ways of developing and distributing a PWA. In Layman's terms a Progressive Web App is a 'web site' that is effectively used/displayed like a native app. I believe an example of this would be something like phonegap? where phonegap built an app 'surrounding/scaffolding' and displayed a webpage with some custom CSS over the top. (Editorial Note: Phonegap is not related to progressive web apps. Phonegap creates actual, native applications. Wrapping a website in a native application is very different from progressive web apps.)
Most recently though I've been working on a lot of react only based website which I believe is the closest to PWA you can get at the moment (especially for IOS who only support minimal feature to encourage you to build native apps for their app store).
But yea it's basically an app like app that's not an app; rendering from a web page :thumbsup:
Progressive Web Apps (PWAs) are web apps that follow a set of guidelines
Starts fast, stays fast
Performance plays a significant role in the success of any online experience, because high performing sites engage and retain users better than poorly performing ones. Sites should focus on optimizing for user-centric performance metrics.
Works in any browser
Users can use any browser they choose to access your web app before it's installed.
Responsive to any screen size
Users can use your PWA on any screen size and all of the content is available at any viewport size.
Provides a custom offline page
When users are offline, keeping them in your PWA provides a more seamless experience than dropping back to the default browser offline page.
Is installable
Users who install or add apps to their device tend to engage with those apps more.
For more details see What makes a good Progressive Web App?

How to create a login to a Google Glass app?

On https://glass.google.com/myglass, apps that require a login do it from the website before installing the app. How can I create an app that requires a login like this? I can't find anything in the documentation about it. Also, how can I test the app since it would not be in myglass?
Although Google has worked with some partners to get GDK-based Glassware in MyGlass that use auth, there is no public method to do so yet. This is a frequently requested feature, and you can expect that once the GDK leaves Developer Preview, it will be available.
Until then, you will need to test your app by sideloading the app onto Glass. If you're testing for yourself, you can hardcode the auth into the app, and many people have hacks that use QR codes.
Keep in mind that this only holds true for GDK Glassware. Anything built with the Mirror API has authentication as part of its web-based initialization which you can trigger without having to go through MyGlass.
Currenlty, Google Glass apps implemented with GDK do not have access to authentication support. The Google Glass team has accepted this issue to be implemented, but it is not there in XE12. Information from the Glass Team indicates that such authentication will be through the Account Manager, when it does arrive.
Only speculation and rumors about when that will be! (Though I will look at XE14 carefully when it comes out, moving Glass Android to 4.2.2 (KitKat).)

HOLLER: Secure Payment over API & Titanium Studio

I am using Titanium studio to build an iphone mobile app, and I want to do the following
Send a user id using API to my server
Server processes payment for that user using the previous card on file
Server sends a success/failure response.
What is the most secure way to do this? I know if I just send the user id then anyone could hack.
Are you sure what your doing is allowed (roll-your-own Payments and credit cards in-app will generally get you rejected)
Make sure your app does not violate any of these guidelines:
11.1 Apps that unlock or enable additional features or functionality with mechanisms other than the App Store will be rejected
11.2 Apps utilizing a system other than the In App Purchase API (IAP) to purchase content, functionality, or services in an app will be
rejected
11.13 Apps that link to external mechanisms for purchases or subscriptions to be used in the app, such as a “buy” button that goes
to a web site to purchase a digital book, will be rejected
Check the latest App store review guidelines here : https://developer.apple.com/appstore/resources/approval/guidelines.html
Also refer to these SO questions for more information:
iPhone Paypal in UIWebView Appstore approval process
iOS - Integrating credit card payments
A more secure way to do this (if you pass all the above guidelines) would be to use a userid, password, and salt, encrypted either over https or SHA256. Note that you have to specify you use encryption if you go the second route, during the review process.
Here is a wikipedia article about Salt and Passwords that I used.
Here is a SHA256 library for JavaSCript that works great with Titanium and is simple to use.