{"_id":"2c2p-integration","_rev":"2-8d11e480753e9bdf19892217374cb6a4","name":"2c2p-integration","dist-tags":{"latest":"0.3.0"},"versions":{"0.2.0":{"name":"2c2p-integration","version":"0.2.0","keywords":["react-native","ios","2c2p","junxiang","android"],"author":{"url":"https://github.com/junxiang","name":"junxiang","email":"larypetero@gmail.com"},"license":"MIT","_id":"2c2p-integration@0.2.0","maintainers":[{"name":"tjunxiang92","email":"tjunxiang92@gmail.com"}],"homepage":"https://github.com/junxiang/react-native-junxiang-2c2p#readme","bugs":{"url":"https://github.com/junxiang/react-native-junxiang-2c2p/issues"},"dist":{"shasum":"4046843034d221ef28aa20264db5a9d7a636a662","tarball":"https://registry.npmjs.org/2c2p-integration/-/2c2p-integration-0.2.0.tgz","fileCount":30,"integrity":"sha512-DdYi1XWW68EoGrjzP5WWYR6p/1HTgIWJAmjX+0+iYkMPYDklKVW7k001r9vpZsDU6LANGOLB/k9jUKs8gU81+g==","signatures":[{"sig":"MEUCIC/rRHRjnSZQmytIcmY725SeOiuOsjyIuvbk+TbbrW2rAiEA488LvZ62PvYsRff7YXazNxf3Z87Rrz9WbzNHx9JpH3k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33542},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/src/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}}},"gitHead":"b04e0908c11b19a0aaa47cb6bab0e39d04b7bbc8","scripts":{"ios":"expo run:ios","lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","build":"babel src --extensions \".js,.ts,.tsx\" --out-dir lib","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","android":"expo run:android","example":"yarn workspace react-native-junxiang-2c2p-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"tjunxiang92","email":"tjunxiang92@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/junxiang/react-native-junxiang-2c2p.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.7.0","description":"2c2p library for react native","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.14.0","dependencies":{"expo":"^51.0.36","user":"^0.0.0","react":"*","expo-cli":"^6.3.10","react-native":"*","react-native-webview":"13.8.6","react-native-toast-message":"^2.2.1"},"eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"18.3.1","turbo":"^1.10.7","eslint":"^8.51.0","del-cli":"^5.1.0","prettier":"^3.0.3","@babel/cli":"^7.25.7","commitlint":"^17.0.2","release-it":"^15.0.0","typescript":"^5.2.2","@babel/core":"^7.25.7","@types/jest":"^29.5.5","@types/react":"^18.2.44","react-native":"0.75.3","@babel/preset-env":"^7.25.7","@babel/preset-react":"^7.25.7","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@babel/preset-typescript":"^7.25.7","react-native-builder-bob":"^0.30.2","@react-native/eslint-config":"^0.73.1","@commitlint/config-conventional":"^17.0.2","@release-it/conventional-changelog":"^5.0.0"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/2c2p-integration_0.2.0_1728535996741_0.5107648117321146","host":"s3://npm-registry-packages"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true}]]},"create-react-native-library":{"type":"module-legacy","version":"0.41.2","languages":"kotlin-objc"}},"0.2.2":{"name":"2c2p-integration","version":"0.2.2","keywords":["react-native","ios","2c2p","junxiang","android"],"author":{"url":"https://github.com/junxiang","name":"junxiang","email":"larypetero@gmail.com"},"license":"MIT","_id":"2c2p-integration@0.2.2","maintainers":[{"name":"tjunxiang92","email":"tjunxiang92@gmail.com"}],"homepage":"https://github.com/junxiang/react-native-junxiang-2c2p#readme","bugs":{"url":"https://github.com/junxiang/react-native-junxiang-2c2p/issues"},"dist":{"shasum":"a47c5202cc03245c56080e66b9e0c3f4a132c293","tarball":"https://registry.npmjs.org/2c2p-integration/-/2c2p-integration-0.2.2.tgz","fileCount":30,"integrity":"sha512-6MhX3KBrzZQVHezx/0wpIQ9fffym+r6WU2YY/BIqI6ZxvCjT3LHz/FPvLkuO8jiErL9kxsbleJrSIoRaiLw4xg==","signatures":[{"sig":"MEYCIQDOM71oFyEs/bq9Cwg5G7xQGc44ahxX9dWQbQv6k4sIkgIhALfmvL3ZsvzpYPt3assk4Rfb8rCv5ZcDb63+RMzLGI62","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33612},"jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"main":"./lib/commonjs/index.js","types":"./lib/typescript/commonjs/src/index.d.ts","module":"./lib/module/index.js","source":"./src/index.tsx","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}}},"gitHead":"5703244dd99a01160c07dc908d1c5ff517ba14e2","scripts":{"ios":"expo run:ios","lint":"eslint \"**/*.{js,ts,tsx}\"","test":"jest","build":"babel src --extensions \".js,.ts,.tsx\" --out-dir lib","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","android":"expo run:android","example":"yarn workspace react-native-junxiang-2c2p-example","prepare":"bob build","release":"release-it","typecheck":"tsc"},"_npmUser":{"name":"tjunxiang92","email":"tjunxiang92@gmail.com"},"prettier":{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release ${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"repository":{"url":"git+https://github.com/junxiang/react-native-junxiang-2c2p.git","type":"git"},"workspaces":["example"],"_npmVersion":"10.7.0","description":"2c2p library for react native","directories":{},"resolutions":{"@types/react":"^18.2.44"},"_nodeVersion":"20.14.0","dependencies":{"expo":"^51.0.36","user":"^0.0.0","react":"*","expo-cli":"^6.3.10","react-native":"*","react-native-webview":"13.8.6","react-native-toast-message":"^2.2.1"},"eslintConfig":{"root":true,"rules":{"prettier/prettier":["error",{"useTabs":false,"tabWidth":2,"quoteProps":"consistent","singleQuote":true,"trailingComma":"es5"}],"react/react-in-jsx-scope":"off"},"extends":["@react-native","prettier"]},"eslintIgnore":["node_modules/","lib/"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@3.6.1","devDependencies":{"jest":"^29.7.0","react":"18.3.1","turbo":"^1.10.7","eslint":"^8.51.0","del-cli":"^5.1.0","prettier":"^3.0.3","@babel/cli":"^7.25.7","commitlint":"^17.0.2","release-it":"^15.0.0","typescript":"^5.2.2","@babel/core":"^7.25.7","@types/jest":"^29.5.5","@types/react":"^18.2.44","react-native":"0.75.3","@babel/preset-env":"^7.25.7","@babel/preset-react":"^7.25.7","@evilmartians/lefthook":"^1.5.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@babel/preset-typescript":"^7.25.7","react-native-builder-bob":"^0.30.2","@react-native/eslint-config":"^0.73.1","@commitlint/config-conventional":"^17.0.2","@release-it/conventional-changelog":"^5.0.0"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/2c2p-integration_0.2.2_1728544069821_0.19335059278841338","host":"s3://npm-registry-packages"},"react-native-builder-bob":{"output":"lib","source":"src","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"esm":true}]]},"create-react-native-library":{"type":"module-legacy","version":"0.41.2","languages":"kotlin-objc"}},"0.3.0":{"name":"2c2p-integration","version":"0.3.0","description":"2c2p library for react native","source":"./src/index.tsx","main":"./lib/commonjs/index.js","module":"./lib/module/index.js","exports":{".":{"import":{"types":"./lib/typescript/module/src/index.d.ts","default":"./lib/module/index.js"},"require":{"types":"./lib/typescript/commonjs/src/index.d.ts","default":"./lib/commonjs/index.js"}}},"scripts":{"example":"yarn workspace 2c2p-integration","test":"jest","typecheck":"tsc","lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","prepare":"bob build","release":"release-it"},"keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/junxiang/2c2p-integration.git"},"author":{"name":"Jun Xiang","email":"tjunxiang92@gmail.com","url":"https://github.com/junxiang"},"license":"MIT","bugs":{"url":"https://github.com/junxiang/2c2p-integration/issues"},"homepage":"https://github.com/junxiang/2c2p-integration#readme","publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@commitlint/config-conventional":"^17.0.2","@evilmartians/lefthook":"^1.5.0","@react-native/eslint-config":"^0.73.1","@release-it/conventional-changelog":"^5.0.0","@types/jest":"^29.5.5","@types/react":"^18.2.44","commitlint":"^17.0.2","del-cli":"^5.1.0","eslint":"^8.51.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","jest":"^29.7.0","prettier":"^3.0.3","react":"18.3.1","react-native":"0.76.1","react-native-builder-bob":"^0.30.3","release-it":"^15.0.0","turbo":"^1.10.7","typescript":"^5.2.2"},"resolutions":{"@types/react":"^18.2.44"},"peerDependencies":{"react":"*","react-native":"*"},"workspaces":["example"],"packageManager":"yarn@3.6.1","jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"commitMessage":"chore: release ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"eslintConfig":{"root":true,"extends":["@react-native","prettier"],"rules":{"react/react-in-jsx-scope":"off","prettier/prettier":["error",{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false}]}},"eslintIgnore":["node_modules/","lib/"],"prettier":{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false},"react-native-builder-bob":{"source":"src","output":"lib","targets":[["commonjs",{"esm":true}],["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json","esm":true}]]},"create-react-native-library":{"type":"module-legacy","languages":"kotlin-swift","version":"0.42.2"},"dependencies":{"escape-string-regexp":"^5.0.0"},"_id":"2c2p-integration@0.3.0","gitHead":"b5faa65baf7b1e6e2936c9c9a72190fb2fdb9965","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-fFxMDpFB2yligLFhE5Ql+T0Ig/1Pxjbu2nXnwzD3+MTfjdQGWIQ6iWG3JPvqpRo2ZdahVL1K8wClomnuuJ8QrQ==","shasum":"4316991eca2d6b2b3e70f9c072b906bbd9a12e95","tarball":"https://registry.npmjs.org/2c2p-integration/-/2c2p-integration-0.3.0.tgz","fileCount":52,"unpackedSize":72304,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF35uGeuW/yxoAJ74kXIH4UbeeNGbVUyfZtCEZ+72G1OAiBEVnj6zHjPZhn4wICp9ggjDHpSOU/QCxpczWibwD8gXg=="}]},"_npmUser":{"name":"tjunxiang92","email":"tjunxiang92@gmail.com"},"directories":{},"maintainers":[{"name":"tjunxiang92","email":"tjunxiang92@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/2c2p-integration_0.3.0_1731560014813_0.8466315616202078"},"_hasShrinkwrap":false}},"time":{"created":"2024-10-10T04:53:16.740Z","modified":"2024-11-14T04:53:35.234Z","0.2.0":"2024-10-10T04:53:16.949Z","0.2.2":"2024-10-10T07:07:49.988Z","0.3.0":"2024-11-14T04:53:35.053Z"},"bugs":{"url":"https://github.com/junxiang/2c2p-integration/issues"},"author":{"name":"Jun Xiang","email":"tjunxiang92@gmail.com","url":"https://github.com/junxiang"},"license":"MIT","homepage":"https://github.com/junxiang/2c2p-integration#readme","keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/junxiang/2c2p-integration.git"},"description":"2c2p library for react native","maintainers":[{"name":"tjunxiang92","email":"tjunxiang92@gmail.com"}],"readme":"# react-native-junxiang-2c2p-v9\n\n2c2p library\n\n## Usage\n\nSet API test/live URLs in `src/Junxiang2c2p.tsx`.  \nSet `APIEnvironment.Sandbox` or `APIEnvironment.Production` in `android/src/main/Junxiang2c2pV9Module.java` or `ios/Junxiang2c2pV9.swift` for iOS.\n\n## To Call Payment Method\n\n```javascript\nimport { getPaymentToken, decodeJWT } from 'react-native-junxiang-2c2p-v9';\nconst { Junxiang2c2pV9 } = NativeModules; \n\nconst testPayload = {\n  merchantID: merchantID,\n  invoiceNo: invoiceNo,\n  description: description,\n  amount: amount,\n  isProduction: false, \n  currencyCode: currencyCode,\n  cardNo: cardNo,\n  nonceStr: nonceStr,\n  expiryMonth: expiryMonth,\n  expiryYear: expiryYear,\n  securityCode: securityCode,\n  securityKey: securityKey,\n  paymentChannel: paymentChannel,\n  request3DS: request3DS\n};\n\ngetPaymentToken(testPayload, false).then(async (result:any) => {\n  let paymentTokenEncoded = JSON.parse(result).payload;\n  let paymentTokenDecoded:any = await decodeJWT(paymentTokenEncoded);\n  let paymentParams:any  = JSON.parse(JSON.parse(paymentTokenDecoded).decoded);\n  let paymentToken:string = paymentParams.paymentToken;\n  let webUrl:string = paymentParams.webPaymentUrl;   \n\n  try {\n    const result = await Junxiang2c2pV9.proceed2C2PTransaction(testPayload, paymentToken);\n    \n    if (result.status === 'redirect') { \n      let urlToOpenInWebview = result.url;\n      // open url in webview\n    }\n    // android returns only url while ios (above) returns json.\n    else if (result.startsWith(\"https://\")) {\n      let urlToOpenInWebview = result;\n      // open url in webview \n    }\n  } catch (error) {\n    console.error(\"Payment failed:\", error);\n  }\n});\n","readmeFilename":"README.md"}