fix(payment): support ezpay cashier urls
This commit is contained in:
@@ -134,13 +134,17 @@ export function SubscriptionCheckoutButton({
|
|||||||
|
|
||||||
function getPaymentUrl(payParams: Record<string, unknown>): string | null {
|
function getPaymentUrl(payParams: Record<string, unknown>): string | null {
|
||||||
const keys = [
|
const keys = [
|
||||||
"url",
|
"cashierUrl",
|
||||||
|
"cashier_url",
|
||||||
"checkoutUrl",
|
"checkoutUrl",
|
||||||
"checkout_url",
|
"checkout_url",
|
||||||
"paymentUrl",
|
"paymentUrl",
|
||||||
"payment_url",
|
"payment_url",
|
||||||
|
"approvalUrl",
|
||||||
|
"approval_url",
|
||||||
"redirectUrl",
|
"redirectUrl",
|
||||||
"redirect_url",
|
"redirect_url",
|
||||||
|
"url",
|
||||||
];
|
];
|
||||||
|
|
||||||
for (const key of keys) {
|
for (const key of keys) {
|
||||||
|
|||||||
@@ -3,9 +3,48 @@
|
|||||||
*/
|
*/
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
|
const paymentUrlKeys = [
|
||||||
|
"cashierUrl",
|
||||||
|
"cashier_url",
|
||||||
|
"checkoutUrl",
|
||||||
|
"checkout_url",
|
||||||
|
"paymentUrl",
|
||||||
|
"payment_url",
|
||||||
|
"approvalUrl",
|
||||||
|
"approval_url",
|
||||||
|
"redirectUrl",
|
||||||
|
"redirect_url",
|
||||||
|
"url",
|
||||||
|
] as const;
|
||||||
|
|
||||||
export const CreatePaymentOrderResponseSchema = z.object({
|
export const CreatePaymentOrderResponseSchema = z.object({
|
||||||
orderId: z.string(),
|
orderId: z.string(),
|
||||||
payParams: z.record(z.string(), z.unknown()),
|
payParams: z.record(z.string(), z.unknown()),
|
||||||
|
cashierUrl: z.string().optional(),
|
||||||
|
cashier_url: z.string().optional(),
|
||||||
|
checkoutUrl: z.string().optional(),
|
||||||
|
checkout_url: z.string().optional(),
|
||||||
|
paymentUrl: z.string().optional(),
|
||||||
|
payment_url: z.string().optional(),
|
||||||
|
approvalUrl: z.string().optional(),
|
||||||
|
approval_url: z.string().optional(),
|
||||||
|
redirectUrl: z.string().optional(),
|
||||||
|
redirect_url: z.string().optional(),
|
||||||
|
url: z.string().optional(),
|
||||||
|
}).transform((data) => {
|
||||||
|
const payParams = { ...data.payParams };
|
||||||
|
|
||||||
|
for (const key of paymentUrlKeys) {
|
||||||
|
const value = data[key];
|
||||||
|
if (typeof value === "string" && value.length > 0 && !(key in payParams)) {
|
||||||
|
payParams[key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
orderId: data.orderId,
|
||||||
|
payParams,
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
export type CreatePaymentOrderResponseInput = z.input<
|
export type CreatePaymentOrderResponseInput = z.input<
|
||||||
|
|||||||
Reference in New Issue
Block a user