@cafebazaar/react-native-poolakey
Version:
ReactNative implementation of CafeBazaar's in-app payment SDK
60 lines • 2.56 kB
JavaScript
import { NativeEventEmitter, NativeModules } from 'react-native';
import { parsePurchaseResult } from './PurchaseResult';
import { parseSkuDetails } from './SkuDetails';
const LINKING_ERROR = "The package 'react-native-poolakey' doesn't seem to be linked. Make sure you rebuilt the app after installing the package";
const Poolakey = NativeModules.ReactNativePoolakey ? NativeModules.ReactNativePoolakey : new Proxy({}, {
get() {
throw new Error(LINKING_ERROR);
}
});
const eventEmitter = new NativeEventEmitter(Poolakey);
export default {
async connect(rsaKey) {
return Poolakey.connectPayment(rsaKey);
},
disconnect() {
// never rejects
return Poolakey.disconnectPayment();
},
addDisconnectListener(handler) {
const eventListener = eventEmitter.addListener('disconnected', handler);
return () => {
eventListener.remove();
};
},
removeAllDisconnectListeners() {
eventEmitter.removeAllListeners('disconnected');
},
purchaseProduct(productId) {
let developerPayload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
let dynamicPriceToken = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
return Poolakey.purchaseProduct(productId, developerPayload || null, dynamicPriceToken || null).then(parsePurchaseResult);
},
consumePurchase(purchaseToken) {
return Poolakey.consumePurchase(purchaseToken);
},
subscribeProduct(productId) {
let developerPayload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
let dynamicPriceToken = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
return Poolakey.subscribeProduct(productId, developerPayload || null, dynamicPriceToken || null).then(parsePurchaseResult);
},
getPurchasedProducts() {
return Poolakey.getPurchasedProducts().then(parsePurchaseResult);
},
getSubscribedProducts() {
return Poolakey.getSubscribedProducts().then(parsePurchaseResult);
},
queryPurchaseProduct(productId) {
return Poolakey.queryPurchaseProduct(productId).then(parsePurchaseResult);
},
querySubscribeProduct(productId) {
return Poolakey.querySubscribeProduct(productId).then(parsePurchaseResult);
},
getInAppSkuDetails(productIds) {
return Poolakey.getInAppSkuDetails(JSON.stringify(productIds)).then(parseSkuDetails);
},
getSubscriptionSkuDetails(productIds) {
return Poolakey.getSubscriptionSkuDetails(JSON.stringify(productIds)).then(parseSkuDetails);
}
};
//# sourceMappingURL=bridge.js.map