Explorar o código

add app/pages/payment/PaymentConfig.js

wudebin hai 5 meses
pai
achega
55968ab86c
Modificáronse 1 ficheiros con 131 adicións e 0 borrados
  1. 131 0
      Strides-SPAPP/app/pages/payment/PaymentConfig.js

+ 131 - 0
Strides-SPAPP/app/pages/payment/PaymentConfig.js

@@ -0,0 +1,131 @@
+import React from 'react';
+import { Image } from 'react-native';
+import Svg, { Path } from 'react-native-svg';
+import { PageList } from '../Router';
+
+export const PAYTYPE = {
+  CREDIT_WALLET: "CreditWallet", // 余额支付
+  PAY_PER_USE: "PayPerUse", // 按次支付
+  PAY_PER_USE_CONTAIN: "pay_per_use"
+}
+
+/**
+ * @is2c2p 控制是否启用2C2P
+ * @DEFAULT 控制默认的支付方式
+ */
+export const PaymentDefault = {
+  is2c2p: true, //是否启用2C2P
+  enablePayPerUse: true, //是否启用按次支付
+  enableInnerWebView: true, //是否启用内部浏览器执行支付
+  DEFAULT: {
+    payType: PAYTYPE.CREDIT_WALLET,
+    payName: "Credit Wallet",
+    isWallet: true,
+    isPayPerUse: false
+  },
+  DEFAULT2: {
+    payType: PAYTYPE.PAY_PER_USE,
+    payName: "Pay Per Use (SGQR)",
+    isWallet: false,
+    isPayPerUse: true
+  }
+}
+
+export const getPaymenOptions = (back) => {
+  if (PaymentDefault.enablePayPerUse) {
+    if (PaymentDefault.DEFAULT.payType == PAYTYPE.PAY_PER_USE) {
+      back([{
+        title: $t('payment.payPerUse'),
+        desc: '(CARD)',
+        value: PAYTYPE.PAY_PER_USE,
+        iconFont: "PAYNOW",
+        icon: require('../../images/wallet/ic_payperuse.png')
+      }, {
+        title:  $t('wallet.creditWallet'),
+        desc: '',
+        value: PAYTYPE.CREDIT_WALLET,
+        iconFont: "WALLET",
+        icon: require('../../images/icon/draw-wallet.png')
+      }])
+    } else {
+      back([{
+        title: $t('wallet.creditWallet'),
+        desc: '',
+        value: PAYTYPE.CREDIT_WALLET,
+        iconFont: "WALLET",
+        icon: require('../../images/icon/draw-wallet.png')
+      }, {
+        title: $t('payment.payPerUse'),
+        desc: '(CARD)',
+        value: PAYTYPE.PAY_PER_USE,
+        iconFont: "PAYNOW",
+        icon: require('../../images/wallet/ic_payperuse.png')
+      }])
+    }
+  } else {
+    back([{
+      title: $t('wallet.creditWallet'),
+      desc: '',
+      value: PAYTYPE.CREDIT_WALLET,
+      iconFont: "WALLET",
+      icon: require('../../images/icon/draw-wallet.png')
+    }])
+  }
+}
+
+export const PaymentIcon = ({method="CARD", size=40, checked=false}) => {
+  switch (method) {
+    case "CARD": 
+      return (
+        /*<Svg width="40" height="40" viewBox="0 0 40 40">
+          <Path
+            fill={checked ? colorAccent : "#666666"}
+            d="M22.0532 16.1052C21.3736 16.8184 21 17.7567 21 18.7535V20.2465C21 21.2433 21.3736 22.1817 22.0532 22.8948C22.7327 23.608 23.6269 24 24.5768 24H37V15H24.5768C23.6269 15 22.7288 15.392 22.0532 16.1052ZM26.0392 17.8318C26.9175 17.8318 27.6289 18.5783 27.6289 19.5C27.6289 20.4217 26.9175 21.1682 26.0392 21.1682C25.161 21.1682 24.4496 20.4217 24.4496 19.5C24.4496 18.5783 25.161 17.8318 26.0392 17.8318Z"/>
+          <Path
+            fill={checked ? colorAccent : "#666666"}
+            d="M32.2342 4H6.7697C4.1403 4 2 6.16334 2 8.82988V30.1701C2 32.8327 4.13639 35 6.7697 35H32.2303C34.8597 35 37 32.8367 37 30.1701V25.7563H24.7686C21.7557 25.7563 19.2907 23.2601 19.2907 20.2092V18.7908C19.2907 15.7399 21.7557 13.2437 24.7686 13.2437H37V8.82988C37 6.16731 34.8597 4 32.2342 4Z" />
+        </Svg>*/
+        <MaterialCommunityIcons
+          name="credit-card-multiple"
+          color={checked ? colorAccent : "#666666"}
+          size={size}/>
+      );
+    case "PAYNOW":
+      return (
+        <Svg width={size} height={size} viewBox="0 0 40 40">
+          <Path
+            fill={checked ? colorAccent : "#666666"}
+            d="M4 18.2222H7.55556V21.7778H4V18.2222ZM18.2222 7.55556H21.7778V14.6667H18.2222V7.55556ZM14.6667 18.2222H21.7778V25.3333H18.2222V21.7778H14.6667V18.2222ZM25.3333 18.2222H28.8889V21.7778H32.4444V18.2222H36V21.7778H32.4444V25.3333H36V32.4444H32.4444V36H28.8889V32.4444H21.7778V36H18.2222V28.8889H25.3333V25.3333H28.8889V21.7778H25.3333V18.2222ZM32.4444 32.4444V25.3333H28.8889V32.4444H32.4444ZM25.3333 4H36V14.6667H25.3333V4ZM28.8889 7.55556V11.1111H32.4444V7.55556H28.8889ZM4 4H14.6667V14.6667H4V4ZM7.55556 7.55556V11.1111H11.1111V7.55556H7.55556ZM4 25.3333H14.6667V36H4V25.3333ZM7.55556 28.8889V32.4444H11.1111V28.8889H7.55556Z"/>
+        </Svg>
+      )
+    case "GRABPAY":
+      return (
+        <Image
+          style={{width: size, height: size}}
+          source={checked ? require('../../images/wallet/payment-grab-active.png') : require('../../images/wallet/payment-grab.png')}
+        />
+      );
+    case "WALLET":
+      return (
+        <Svg width={size} height={size} viewBox="0 0 40 40">
+          <Path
+            fill={checked ? colorAccent : "#666666"}
+            d="M22.0532 16.1052C21.3736 16.8184 21 17.7567 21 18.7535V20.2465C21 21.2433 21.3736 22.1817 22.0532 22.8948C22.7327 23.608 23.6269 24 24.5768 24H37V15H24.5768C23.6269 15 22.7288 15.392 22.0532 16.1052ZM26.0392 17.8318C26.9175 17.8318 27.6289 18.5783 27.6289 19.5C27.6289 20.4217 26.9175 21.1682 26.0392 21.1682C25.161 21.1682 24.4496 20.4217 24.4496 19.5C24.4496 18.5783 25.161 17.8318 26.0392 17.8318Z"/>
+          <Path
+            fill={checked ? colorAccent : "#666666"}
+            d="M32.2342 4H6.7697C4.1403 4 2 6.16334 2 8.82988V30.1701C2 32.8327 4.13639 35 6.7697 35H32.2303C34.8597 35 37 32.8367 37 30.1701V25.7563H24.7686C21.7557 25.7563 19.2907 23.2601 19.2907 20.2092V18.7908C19.2907 15.7399 21.7557 13.2437 24.7686 13.2437H37V8.82988C37 6.16731 34.8597 4 32.2342 4Z"/>
+        </Svg>
+      )
+  }
+}
+
+/*export const toTopupPage = () => {
+  if (PaymentDefault.is2c2p) {
+    startPage(PageList.topupV2);
+  } else {
+    startPage(PageList.topup);
+  }
+}*/
+export const toTopupPage = () => {
+  startPage(PageList.topupNew);
+}