react-native-moyasar-sdk
Version:
Official React Native Moyasar SDK - Integrate Credit Cards, Apple Pay, Samsung Pay, and STC Pay with simple interfaces for a seamless payment experience in your React Native app
49 lines (48 loc) • 2.32 kB
JavaScript
"use strict";
/**
* Constructs a PaymentRequest object for creating a payment.
* @param {givenId | null} [givenId] - Optional UUID for the payment (UUID v4 is recommended). It will be attached with the payment creation request to support idempotency. `It is going be the ID of the created payment`.
* @param {number} amount - The amount to be charged in the smallest currency unit. For example, to charge `SAR 257.58` you will have the [amount] as `25758`. In other words, 10 SAR = 10 * 100 Halalas. Integer values only.
* @param {string} [currency='SAR'] - The currency code for the payment. Defaults to 'SAR'. Must be in ISO 4217 3-letter currency code format.
* @param {string | null} [description] - Can be any string you want to tag the payment. For example `Payment for Order #34321`.
* @param {Record<string, string | number | boolean> | null} [metadata] - Adds searchable key/value pairs to the payment. For example `{"size": "xl"}`.
* @param {PaymentRequestSource} source - A payment source object to be charged, such as Apple Pay source or Credit Card source.
* @param {string | null} [callbackUrl] - The URL to be redirected to after a 3D secure transaction (e.g., https://sdk.moyasar.com/return). Required for Credit Card payments.
* @param {boolean} [applyCoupon=true] - A flag to control the coupon application (based on the BIN). This key is required only if you don't want to apply the coupon. Otherwise, the coupon is going to be applied. Defaults to true.
*/
export class PaymentRequest {
constructor({
givenId,
amount,
currency = 'SAR',
description,
metadata,
source,
callbackUrl,
applyCoupon = true
}) {
this.givenId = givenId;
this.amount = amount;
this.currency = currency;
this.description = description;
this.metadata = metadata;
this.source = source;
this.callbackUrl = callbackUrl;
this.applyCoupon = applyCoupon;
}
toJson() {
return {
...(this.givenId && {
given_id: this.givenId
}),
amount: this.amount,
currency: this.currency,
description: this.description,
metadata: this.metadata,
source: this.source.toJson(),
callback_url: this.callbackUrl,
apply_coupon: this.applyCoupon ?? true
};
}
}
//# sourceMappingURL=payment_request.js.map