소스 검색

[edit] ach pay

wenliming 2 년 전
부모
커밋
b006a42709

+ 6 - 0
src/iframe/ach-cashier.js

@@ -0,0 +1,6 @@
+import { createApp } from 'vue'
+import App from '@/view/iframe/ach-pay/cashier.vue'
+
+const app = createApp(App);
+
+app.mount('#app');

+ 2 - 1
src/manifest.json

@@ -96,7 +96,8 @@
                 "/iframe/tab-group.html",
                 "/iframe/joined-group-list.html",
                 "/iframe/tool-box-guide.html",
-                "/iframe/test.html"
+                "/iframe/test.html",
+                "/iframe/ach-cashier.html"
             ],
             "matches": [
                 "<all_urls>"

+ 66 - 0
src/view/iframe/ach-pay/cashier.vue

@@ -0,0 +1,66 @@
+<template>
+    <div class="cashier-wrapper">
+        <form ref="formDom" :action="pageData.formData.actionUrl" method="post" id="submitForm">
+            <input type="hidden" name="merchantNo" :value="pageData.formData.merchantNo">
+            <input type="hidden" name="language" :value="pageData.formData.language">
+            <input type="hidden" name="timeStamp" :value="pageData.formData.timeStamp">
+            <input type="hidden" name="version" :value="pageData.formData.version">
+            <input type="hidden" name="merchantOrderNo" :value="pageData.formData.merchantOrderNo">
+            <input type="hidden" name="orderAmount" :value="pageData.formData.orderAmount">
+            <input type="hidden" name="currency" :value="pageData.formData.currency">
+            <input type="hidden" name="productDetail" :value="pageData.formData.productDetail">
+            <input type="hidden" name="callbackUrl" :value="pageData.formData.callbackUrl">
+            <input type="hidden" name="noticeUrl" :value="pageData.formData.noticeUrl">
+            <input type="hidden" name="sign" :value="pageData.formData.sign">
+        </form>
+    </div>
+</template>
+
+<script setup>
+import { onMounted, ref, reactive, nextTick } from "vue";
+
+import {setChromeStorage, getChromeStorage} from "@/uilts/chromeExtension"
+
+let formDom = ref(null);
+
+let pageData = reactive({
+    formData: {
+        actionUrl: '',
+        merchantNo: '',
+        language: '',
+        timeStamp: '',
+        version: '',
+        merchantOrderNo: '',
+        orderAmount: '',
+        currency: '',
+        productDetail: '',
+        callbackUrl: '',
+        noticeUrl: '',
+        sign: ''
+    }
+})
+
+const getLocalPayInfo = async () => {
+    let payInfo = await getChromeStorage('achPayInfo');
+
+    console.log(payInfo,'payInfo');
+    if(payInfo) {
+        chrome.storage.local.remove("achPayInfo");
+    }
+}
+
+
+onMounted(() => {
+    getLocalPayInfo();
+    // setTimeout(() => {
+    //     console.log('form', formDom.value);
+    //     formDom.value && formDom.value.submit();
+    // }, 600)
+}) 
+
+</script>
+
+<style scoped lang="scss">
+.cashier-wrapper {
+}
+</style>

+ 12 - 0
src/view/iframe/publish/components/paypal-button.vue

@@ -3,6 +3,9 @@
     <div class="pay-wrapper">
         <slot name="balance"></slot>
         <div class="pay-btn">
+            <div class="ach-pay" style="background: blue" @click="jumpAchPay">
+                ACH Pay
+            </div>
             <div class="iframe-pay"
                 v-show="currentCurrencyInfo.currencyCode == 'USD'"
                 @click="paypalPay">
@@ -24,6 +27,7 @@
 <script setup>
 import { onMounted, ref, defineProps, defineEmits, watch } from "vue";
 
+import {setChromeStorage, getChromeStorage} from "@/uilts/chromeExtension"
 import {payTaskLuckdropWithBalance} from "@/http/publishApi"
 import Report from "@/log-center/log"
 
@@ -112,6 +116,14 @@ const tokenPay = () => {
     })
 }
 
+const jumpAchPay = () => {
+    let guideUrl = chrome.runtime.getURL('/iframe/ach-cashier.html');
+    setChromeStorage({ achPayInfo : JSON.stringify({'a': 1})})    
+    chrome.tabs.create({
+        url: guideUrl
+    });
+}
+
 onMounted(() => {
     window.addEventListener("message", function (event) {
         if (event.data && event.data.actionType) {

+ 0 - 18
src/view/iframe/publish/give-dialog.vue

@@ -391,19 +391,6 @@
             @cancel="messageBoxCancel"
             @confirm="messageBoxConfirm"
         ></message-box>
-        <form ref="form1Dom" action="https://payment.alchemytech.cc/nh-gateway/card/cashier/gateway" enctype="multipart/form-data" method="post" id="submitForm">
-            <input type="hidden" name="merchantNo" value="AC202239540">
-            <input type="hidden" name="language" value="en">
-            <input type="hidden" name="timeStamp" value="1657197450912">
-            <input type="hidden" name="version" value="1">
-            <input type="hidden" name="merchantOrderNo" value="1657245765801">
-            <input type="hidden" name="orderAmount" value="100">
-            <input type="hidden" name="currency" value="USD">
-            <input type="hidden" name="productDetail" value="testa8932">
-            <input type="hidden" name="callbackUrl" value="https://api.denetme.net/denet/healthcheck">
-            <input type="hidden" name="noticeUrl" value="https://api.denetme.net/denet/healthcheck">
-            <input type="hidden" name="sign" value="MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJ750cqeP3BHirw7071TDQAsr83Gqa0tzrZUZduMiA6sZyxgN4dzVEPVGTHQIUSw4e8PKBZ6gN/ChBDufbzP4hISGSt1WrX6heWuNePz2CXBwlVJYfwevO/O6qhTAKNZj6/2wCTh8c8H4paL1ZRgoptRJgh+g1VmugKtK1gvv6vlAgMBAAECgYASgu4AHTWvXhFEUmYZN1S99rYg7LdgxEL7/a9fpYlJRh98bhbBNbdz75ovr/fTvxIL63SkS276vzRwIUkwZXeCKqoGtlCdwsYOcTOZwMN7UH+6GniAKaeUVyL0Fwj3GLrYkN8STM5Nrt59sVQ5UY+3wjsCSKaj8kZ1Fyux4U63MQJBANBwVbPjCI0bI4R3zJ8TemzVgfMtjzxtJbecawsukMv3Y++JPNUizfdh22mKjmjJ/qCDEQ2Lt/bDLyWUMH/Gz7ECQQDDQCy8+DuMxauE4MEdBfKcHgauWj6I3oMgAmioARmVOGDWG0RXBrmSUjNCxMZJqg5N99AgySq6jJTTznAFfsB1AkEAwNXcg/Lbm2frIQeQN+9WSM/yTF7u8BFuXoMIiSzIatryCs6lh+2OLXrL+cVk4M9XkXoQUb7cMB/9Qz/o6p2s0QJBAJ6XUb9sIXKGXHrh0/mvCxCjkumrg3/IvNkTG87ald0OnhlKrIfDfpfLDLf+/NB4wIWz8+mtfHdqGLixxWuxOMECQHvlly9tJescllxIpDNlLh+AR77Ir7h1NDynNbgiW9mGyTUljmaGo8aRFSnkpgReCZpxu09VSu26EFx1q+u2RQk=">
-        </form>
     </div>
 </template>
 
@@ -449,7 +436,6 @@ let installStatus = ref(false);
 let timer = ref(null);
 provide('installStatus', installStatus)
 
-let form1Dom = ref(null);
 
 // 发布后返回的结果
 let publishRes = reactive({});
@@ -1693,10 +1679,6 @@ onMounted(() => {
     window.addEventListener('resize', function () {
         setDialogStyle(true);
     })
-    setTimeout(() => {
-        console.log('form', form1Dom.value);
-        form1Dom.value && form1Dom.value.submit();
-    }, 4000)
 });
 </script>