PaymentConfig.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import React from 'react';
  2. import { Image } from 'react-native';
  3. import Svg, { Path } from 'react-native-svg';
  4. import { PageList } from '../Router';
  5. export const PAYTYPE = {
  6. CREDIT_WALLET: "CreditWallet", // 余额支付
  7. PAY_PER_USE: "PayPerUse" // 按次支付
  8. }
  9. /**
  10. * @is2c2p 控制是否启用2C2P
  11. * @DEFAULT 控制默认的支付方式
  12. */
  13. export const PaymentDefault = {
  14. is2c2p: false, //是否启用2C2P
  15. enablePayPerUse: false, //是否启用按次支付
  16. DEFAULT: {
  17. payType: PAYTYPE.CREDIT_WALLET,
  18. payName: "Credit Wallet",
  19. isWallet: true,
  20. isPayPerUse: false
  21. },
  22. DEFAULT2: {
  23. payType: PAYTYPE.PAY_PER_USE,
  24. payName: "Pay Per Use (SGQR)",
  25. isWallet: false,
  26. isPayPerUse: true
  27. }
  28. }
  29. export const getPaymenOptions = (back) => {
  30. if (PaymentDefault.enablePayPerUse) {
  31. if (PaymentDefault.DEFAULT.payType == PAYTYPE.PAY_PER_USE) {
  32. back([{
  33. title: $t('payment.payPerUse'),
  34. desc: '(SGQR)',
  35. value: PAYTYPE.PAY_PER_USE,
  36. iconFont: "PAYNOW",
  37. icon: require('../../images/wallet/ic_payperuse.png')
  38. }, {
  39. title: $t('wallet.creditWallet'),
  40. desc: '',
  41. value: PAYTYPE.CREDIT_WALLET,
  42. iconFont: "WALLET",
  43. icon: require('../../images/icon/draw-wallet.png')
  44. }])
  45. } else {
  46. back([{
  47. title: $t('wallet.creditWallet'),
  48. desc: '',
  49. value: PAYTYPE.CREDIT_WALLET,
  50. iconFont: "WALLET",
  51. icon: require('../../images/icon/draw-wallet.png')
  52. }, {
  53. title: $t('payment.payPerUse'),
  54. desc: '(SGQR)',
  55. value: PAYTYPE.PAY_PER_USE,
  56. iconFont: "PAYNOW",
  57. icon: require('../../images/wallet/ic_payperuse.png')
  58. }])
  59. }
  60. } else {
  61. back([{
  62. title: $t('wallet.creditWallet'),
  63. desc: '',
  64. value: PAYTYPE.CREDIT_WALLET,
  65. iconFont: "WALLET",
  66. icon: require('../../images/icon/draw-wallet.png')
  67. }])
  68. }
  69. }
  70. export const PaymentIcon = ({method="CARD", size=40, checked=false}) => {
  71. switch (method) {
  72. case "CARD":
  73. return (
  74. /*<Svg width="40" height="40" viewBox="0 0 40 40">
  75. <Path
  76. fill={checked ? colorAccent : "#666666"}
  77. 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"/>
  78. <Path
  79. fill={checked ? colorAccent : "#666666"}
  80. 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" />
  81. </Svg>*/
  82. <MaterialCommunityIcons
  83. name="credit-card-multiple"
  84. color={checked ? colorAccent : "#666666"}
  85. size={size}/>
  86. );
  87. case "PAYNOW":
  88. return (
  89. <Svg width={size} height={size} viewBox="0 0 40 40">
  90. <Path
  91. fill={checked ? colorAccent : "#666666"}
  92. 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"/>
  93. </Svg>
  94. )
  95. case "GRABPAY":
  96. return (
  97. <Image
  98. style={{width: size, height: size}}
  99. source={checked ? require('../../images/wallet/payment-grab-active.png') : require('../../images/wallet/payment-grab.png')}
  100. />
  101. );
  102. case "WALLET":
  103. return (
  104. <Svg width={size} height={size} viewBox="0 0 40 40">
  105. <Path
  106. fill={checked ? colorAccent : "#666666"}
  107. 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"/>
  108. <Path
  109. fill={checked ? colorAccent : "#666666"}
  110. 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"/>
  111. </Svg>
  112. )
  113. }
  114. }
  115. /*export const toTopupPage = () => {
  116. if (PaymentDefault.is2c2p) {
  117. startPage(PageList.topupV2);
  118. } else {
  119. startPage(PageList.topup);
  120. }
  121. }*/
  122. export const toTopupPage = () => {
  123. startPage(PageList.topupNew);
  124. }