之前参考官方的写了一种用法,但是这种用法不是很方便,于是再写个方便一些的。
以cordova-plugin-wechat为例:
在项目中创建wechat-plugin.ts,代码如下:
declare var Wechat: any; // 此处声明plugin.xml中clobbers对应的值
export interface WechatPayParam {
mch_id: string;
prepay_id: string;
nonce: string;
timestamp: string;
sign: string;
}
export class WechatPlugin {
public static isInstalled() {
return new Promise((resolve, reject) => {
Wechat.isInstalled(result => {
resolve(result);
}, error => {
reject(error);
});
});
}
public static sendPaymentRequest(params: WechatPayParam) {
return new Promise((resolve, reject) => {
Wechat.sendPaymentRequest(params, result => {
resolve(result);
}, error => {
reject(error);
});
});
}
}
调用代码如下:
WechatPlugin.sendPaymentRequest({
mch_id: prepayInfo.partner_id,
prepay_id: prepayInfo.prepay_id,
nonce: prepayInfo.nonce_str,
timestamp: prepayInfo.timestamp,
sign: prepayInfo.sign
}).then(() => {
alert("success");
}).catch((error) => {
alert(error);
});