-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(all-in-one-sdk): add plugin for Paytm All-in-One SDK (#3536)
- Loading branch information
1 parent
c62c137
commit 1f48c31
Showing
1 changed file
with
78 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
import { Injectable } from '@angular/core'; | ||
import { Plugin, Cordova, CordovaProperty, CordovaInstance, InstanceProperty, IonicNativePlugin } from '@ionic-native/core'; | ||
import { Observable } from 'rxjs'; | ||
|
||
/** | ||
* @name AllInOneSDK | ||
* @description | ||
* Paytm All-in-One SDK plugin for Cordova/Ionic Applications | ||
* Paytm All-in-One SDK provides a swift, secure and seamless payment experience to your users by invoking the Paytm app (if installed on your user’s smartphone) to complete payment for your order. | ||
* Paytm All-in-One SDK enables payment acceptance via Paytm wallet, Paytm Payments Bank, saved Debit/Credit cards, Net Banking, BHIM UPI and EMI as available in your customer’s Paytm account. If Paytm app is not installed on a customer's device, the transaction will be processed via web view within the All-in-One SDK. | ||
* For more information about Paytm All-in-One SDK, please visit https://developer.paytm.com/docs/all-in-one-sdk/ | ||
* | ||
* @usage | ||
* ```typescript | ||
* import { AllInOneSDK } from '@ionic-native/all-in-one-sdk/ngx'; | ||
* | ||
* | ||
* constructor(private allInOneSDK: AllInOneSDK) { } | ||
* | ||
* ... | ||
* | ||
* For below parameters see [documentation](https://developer.paytm.com/docs/all-in-one-sdk/) | ||
* let paymentIntent = { mid : merchantID, orderId: orderId, txnToken: transactionToken, amount: amount, isStaging: isStaging, callbackUrl:callBackURL } | ||
* | ||
* this.allInOneSDK.startTransaction(paymentIntent) | ||
* .then((res: any) => console.log(res)) | ||
* .catch((error: any) => console.error(error)); | ||
* | ||
* ``` | ||
* | ||
* For iOS: | ||
* After adding the plugin, open the iOS project, you can find the same at <projectName>/platforms/ios. | ||
* In case merchant don’t have callback URL, Add an entry into Info.plist LSApplicationQueriesSchemes(Array) Item 0 (String)-> paytm | ||
* Add a URL Scheme “paytm”+”MID” | ||
* | ||
*/ | ||
@Plugin({ | ||
pluginName: 'AllInOneSDK', | ||
plugin: 'cordova-paytm-allinonesdk', | ||
pluginRef: 'AllInOneSDK', | ||
repo: 'https://github.com/paytm/paytm-allinonesdk-ionic-cordova.git', | ||
platforms: ['Android','iOS'] | ||
}) | ||
export class AllInOneSDK extends IonicNativePlugin { | ||
|
||
/** | ||
* This function checks if Paytm Application is available on the device. | ||
* If Paytm exists then it invokes Paytm Application with the parameters sent and creates an order. | ||
* If the Paytm Application is not available the transaction is continued on a webView within All-in-One SDK. | ||
* @param options {PaymentIntentModel} These parameters are required and will be used to create an order. | ||
* @return {Promise<PaytmResponse>} Returns a promise that resolves when a transaction completes(both failed and successful). | ||
*/ | ||
@Cordova() | ||
startTransaction(options : PaymentIntentModel): Promise<PaytmResponse> { | ||
return; | ||
} | ||
|
||
} | ||
|
||
/** | ||
* The response that will be recieved when any transaction is completed | ||
*/ | ||
export interface PaytmResponse{ | ||
message : string; | ||
response : string; // A stringified response of a hashmap returned from All-in-One SDK | ||
} | ||
|
||
/** | ||
* For below parameters see [documentation](https://developer.paytm.com/docs/all-in-one-sdk/) | ||
*/ | ||
export interface PaymentIntentModel{ | ||
mid : string; // Merchant ID | ||
orderId : string; // Order ID | ||
txnToken : string; // Transaction Token | ||
amount : string; // Amount | ||
isStaging: boolean; // Environment | ||
callbackUrl: string; // Callback URL | ||
} |