Skip to content

Commit

Permalink
feat(alipay): add alipay support. (#1097)
Browse files Browse the repository at this point in the history
* add cordova-alipay-base plugin. to support Alipay payment

* change ALI_PID to APP_ID, make it same with the latest SDK

* rewrite comments
  • Loading branch information
xueron authored and ihadeed committed Mar 2, 2017
1 parent 13484f9 commit 2eea3df
Show file tree
Hide file tree
Showing 2 changed files with 114 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import { initAngular1 } from './ng1';
const DEVICE_READY_TIMEOUT = 5000;

declare var window;

import { ActionSheet } from './plugins/actionsheet';
import { AdMob } from './plugins/admob';
import { Alipay } from './plugins/alipay';
import { AndroidFingerprintAuth } from './plugins/android-fingerprint-auth';
import { AppAvailability } from './plugins/appavailability';
import { AppRate } from './plugins/apprate';
Expand Down Expand Up @@ -130,6 +130,7 @@ import { Zip } from './plugins/zip';
export * from './plugins/3dtouch';
export * from './plugins/actionsheet';
export * from './plugins/admob';
export * from './plugins/alipay';
export * from './plugins/android-fingerprint-auth';
export * from './plugins/appavailability';
export * from './plugins/apprate';
Expand Down Expand Up @@ -256,6 +257,7 @@ export * from './plugins/zip';
window['IonicNative'] = {
ActionSheet,
AdMob,
Alipay,
AndroidFingerprintAuth,
AppAvailability,
AppRate,
Expand Down
111 changes: 111 additions & 0 deletions src/plugins/alipay.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
import { Plugin, Cordova } from './plugin';
/**
* @link https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.wlOhAE&treeId=193&articleId=105465&docType=1
*
* All values need be urlencoded.
*/
export interface AlipayOrder {
/**
* appId assigned by Alipay
*/
app_id: string;

/**
* Api name.
* Should be: alipay.trade.app.pay
*/
method: string;

/**
* Data format
* Default: "JSON"
*/
format?: string;

/**
* Charset
* Possible values: "UTF-8", "GBK"
* Default: "UTF-8"
*/
charset: string;

/**
* Sign method
* Default: 'RSA'
*/
sign_type: string;

/**
* Sign value. Should be got from server side.
* Default: 'RSA'
*/
sign: string;

/**
* Timestamp, formated like "yyyy-MM-dd HH:mm:ss", e.g. 2014-07-24 03:07:50
*/
timestamp: string;

/**
* Api version. Fixed value '1.0'
*/
version: string;

/**
* Notify url.
*/
notify_url: string;

/**
* biz content. formated in json. see alipay doc for detail.
*/
biz_content: string;
}

/**
* @name Alipay
* @description
* This plugin is used for Alipay APP support. Integrated with the latest SDK.
*
* Requires Cordova plugin: `cordova-alipay-base`. For more info, please see the [Alipay plugin docs](https://github.com/xueron/cordova-alipay-base).
*
* @usage
* ```
* import { Alipay } from 'ionic-native';
*
* // Should get from server side with sign.
* let alipayOrder = {
...
* };
*
* Alipay.pay(alipayOrder)
* .then(result => {
* console.log(result); // Success
* })
* .catch(error => {
* console.log(error); // Failed
* });
*
* ```
*
* @interfaces
* AlipayOrder
*/
@Plugin({
pluginName: 'Alipay',
plugin: 'cordova-alipay-base',
pluginRef: 'Alipay.Base',
repo: 'https://github.com/xueron/cordova-alipay-base',
platforms: ['Android', 'iOS'],
install: 'ionic plugin add https://github.com/xueron/cordova-alipay-base --variable APP_ID=your_app_id'
})
export class Alipay {
/**
* Open Alipay to perform App pay
* @param order { AlipayOrder } alipay options
* @returns {Promise<any>} Returns a Promise that resolves with the success return, or rejects with an error.
*/
@Cordova()
static pay(order: AlipayOrder): Promise<any> { return; }
}

0 comments on commit 2eea3df

Please sign in to comment.