From 9d3b43bee63c73d8c11f027c499a2cf8f4ad19a8 Mon Sep 17 00:00:00 2001 From: zhx Date: Thu, 25 Jun 2026 11:18:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=85=85=E5=80=BC=20H5=20?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/api.js | 58 ++- recharge/config/aslan.json | 537 +++++++++++++++++--------- recharge/create.html | 749 +++++++++++++++++++++++++++++++++++++ recharge/index.html | 71 +++- 4 files changed, 1223 insertions(+), 192 deletions(-) create mode 100644 recharge/create.html diff --git a/common/api.js b/common/api.js index 9ad0da2..965b274 100644 --- a/common/api.js +++ b/common/api.js @@ -542,12 +542,10 @@ var default_api = 'https://api.global-interaction.com/'; options.country_code || options.countryCode || '' ).toUpperCase(); var matchedCountries = countries.filter(function (country) { - return ( - String(country.country_code || '').toUpperCase() === countryCode - ); + return countryMatchesCode(country, countryCode); }); var globalCountries = countries.filter(function (country) { - return String(country.country_code || '').toUpperCase() === 'GLOBAL'; + return countryMatchesCode(country, 'GLOBAL'); }); var matchedMethods = collectMifaPayMethods( matchedCountries, @@ -569,24 +567,23 @@ var default_api = 'https://api.global-interaction.com/'; function collectMifaPayMethods(countries, mifapay, options, fallbackAll) { var methods = []; (countries || []).forEach(function (country) { + var countryCode = primaryCountryCode(country); (country.methods || []).forEach(function (method, index) { methods.push( Object.assign({}, method, { method_id: [ mifapay.provider_code || 'mifapay', - country.country_code, + countryCode, method.pay_way, method.pay_type, index, ].join(':'), provider_code: mifapay.provider_code || 'mifapay', provider_name: mifapay.provider_name || 'MiFaPay', - country_code: country.country_code, + country_code: countryCode, country_name: country.country_name, currency_code: - fallbackAll || - String(country.country_code || '').toUpperCase() === - 'GLOBAL' + fallbackAll || countryMatchesCode(country, 'GLOBAL') ? options.currency_code || country.currency_code : country.currency_code, usd_to_currency_rate: @@ -606,6 +603,49 @@ var default_api = 'https://api.global-interaction.com/'; return methods; } + function primaryCountryCode(country) { + country = country || {}; + var codes = countryCodeAliases(country); + return codes[0] || ''; + } + + function countryMatchesCode(country, code) { + code = String(code || '') + .trim() + .toUpperCase(); + if (!code) return false; + return countryCodeAliases(country).indexOf(code) >= 0; + } + + function countryCodeAliases(country) { + country = country || {}; + var rawCodes = [] + .concat(country.country_code || []) + .concat(country.countryCode || []) + .concat(country.country_codes || []) + .concat(country.countryCodes || []); + var codes = []; + rawCodes.forEach(function (value) { + if (Array.isArray(value)) { + value.forEach(function (item) { + pushCountryCodeAlias(codes, item); + }); + return; + } + pushCountryCodeAlias(codes, value); + }); + return codes; + } + + function pushCountryCodeAlias(codes, value) { + value = String(value || '') + .trim() + .toUpperCase(); + if (value && codes.indexOf(value) < 0) { + codes.push(value); + } + } + function firstValue(object, keys) { object = object || {}; for (var i = 0; i < keys.length; i += 1) { diff --git a/recharge/config/aslan.json b/recharge/config/aslan.json index 8a46e65..e1fa50d 100644 --- a/recharge/config/aslan.json +++ b/recharge/config/aslan.json @@ -1,173 +1,372 @@ { - "app": "aslan", - "adapter": "aslan-web-pay", - "application_id": "1963531459019739137", - "sys_origin": "ATYOU", - "type": "GOLD", - "api": { - "prod": "https://api.atuchat.com/", - "test": "https://api.atuchat.com/", - "local": "http://127.0.0.1:1100/" - }, - "headers": { - "req-sys-origin": "origin=ATYOU;originChild=ATYOU", - "Req-Atyou": "true" - }, - "endpoints": { - "context": "/order/web/pay/h5/context", - "options": "/order/web/pay/h5/options", - "orders": "/order/web/pay/h5/orders", - "order": "/order/web/pay/h5/orders/{orderId}" - }, - "providers": { - "mifapay": { - "provider_code": "mifapay", - "provider_name": "MiFaPay", - "status": "active", - "countries": [ - { - "country_code": "AE", - "country_name": "United Arab Emirates", - "currency_code": "AED", - "methods": [ - { "pay_way": "Card", "pay_type": "CreditCard", "method_name": "UAE Credit Card", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/ae/card-creditcard.png" } - ] - }, - { - "country_code": "BD", - "country_name": "Bangladesh", - "currency_code": "BDT", - "methods": [ - { "pay_way": "Ewallet", "pay_type": "bKash", "method_name": "bKash", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/bd/ewallet-bkash.png" } - ] - }, - { - "country_code": "BH", - "country_name": "Bahrain", - "currency_code": "BHD", - "methods": [ - { "pay_way": "Card", "pay_type": "CreditCard", "method_name": "Bahrain Credit Card", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/bh/card-creditcard.png" } - ] - }, - { - "country_code": "EG", - "country_name": "Egypt", - "currency_code": "EGP", - "methods": [ - { "pay_way": "Ewallet", "pay_type": "FawryPay", "method_name": "FawryPay", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/eg/ewallet-fawrypay.png" }, - { "pay_way": "Ewallet", "pay_type": "Meeza", "method_name": "Meeza", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/eg/ewallet-meeza.png" }, - { "pay_way": "Ewallet", "pay_type": "Orange", "method_name": "Orange", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/eg/ewallet-orange.png" }, - { "pay_way": "Ewallet", "pay_type": "Vodafone", "method_name": "Vodafone", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/eg/ewallet-vodafone.png" } - ] - }, - { - "country_code": "ID", - "country_name": "Indonesia", - "currency_code": "IDR", - "methods": [ - { "pay_way": "BankTransfer", "pay_type": "BCA", "method_name": "BCA Bank", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-bca.png" }, - { "pay_way": "BankTransfer", "pay_type": "BNI", "method_name": "BNI Bank", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-bni.png" }, - { "pay_way": "BankTransfer", "pay_type": "BRI", "method_name": "BRI Bank", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-bri.png" }, - { "pay_way": "BankTransfer", "pay_type": "Mandiri", "method_name": "Mandiri Bank", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-mandiri.png" }, - { "pay_way": "BankTransfer", "pay_type": "Permata", "method_name": "Permata Bank", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-permata.png" }, - { "pay_way": "Ewallet", "pay_type": "DANA", "method_name": "DANA", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/ewallet-dana.png" }, - { "pay_way": "Ewallet", "pay_type": "LinkAja", "method_name": "LinkAja", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/ewallet-linkaja.png" }, - { "pay_way": "Ewallet", "pay_type": "OVO", "method_name": "OVO", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/ewallet-ovo.png" }, - { "pay_way": "Ewallet", "pay_type": "ShopeePay", "method_name": "ShopeePay", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/ewallet-shopeepay.png" }, - { "pay_way": "QR", "pay_type": "QRIS", "method_name": "QRIS", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/qr-qris.png" } - ] - }, - { - "country_code": "IN", - "country_name": "India", - "currency_code": "INR", - "methods": [ - { "pay_way": "Ewallet", "pay_type": "BHIM", "method_name": "BHIM", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-bhim.png" }, - { "pay_way": "Ewallet", "pay_type": "GooglePay", "method_name": "Google Pay", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-googlepay.png" }, - { "pay_way": "Ewallet", "pay_type": "Mobikwik", "method_name": "Mobikwik", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-mobikwik.png" }, - { "pay_way": "Ewallet", "pay_type": "Paytm", "method_name": "Paytm", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-paytm.png" }, - { "pay_way": "Ewallet", "pay_type": "PhonePe", "method_name": "PhonePe", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-phonepe.png" }, - { "pay_way": "Ewallet", "pay_type": "UPI", "method_name": "UPI", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-upi.png" } - ] - }, - { - "country_code": "KW", - "country_name": "Kuwait", - "currency_code": "KWD", - "methods": [ - { "pay_way": "Card", "pay_type": "Knet", "method_name": "KNET", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/kw/card-knet.png" } - ] - }, - { - "country_code": "MY", - "country_name": "Malaysia", - "currency_code": "MYR", - "methods": [ - ] - }, - { - "country_code": "OM", - "country_name": "Oman", - "currency_code": "OMR", - "methods": [ - { "pay_way": "Card", "pay_type": "CreditCard", "method_name": "Oman Credit Card", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/om/card-creditcard.png" } - ] - }, - { - "country_code": "PH", - "country_name": "Philippines", - "currency_code": "PHP", - "methods": [ - { "pay_way": "Ewallet", "pay_type": "Gcash", "method_name": "GCash", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/ph/ewallet-gcash.png" }, - { "pay_way": "Ewallet", "pay_type": "PayMaya", "method_name": "PayMaya", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/ph/ewallet-paymaya.png" }, - { "pay_way": "QR", "pay_type": "QRPH", "method_name": "QRPH", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/ph/qr-qrph.png" } - ] - }, - { - "country_code": "PK", - "country_name": "Pakistan", - "currency_code": "PKR", - "methods": [ - { "pay_way": "Ewallet", "pay_type": "Easypaisa", "method_name": "Easypaisa", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/pk/ewallet-easypaisa.png" }, - { "pay_way": "Ewallet", "pay_type": "JazzCash", "method_name": "JazzCash", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/pk/ewallet-jazzcash.png" } - ] - }, - { - "country_code": "QA", - "country_name": "Qatar", - "currency_code": "QAR", - "methods": [ - { "pay_way": "Card", "pay_type": "CreditCard", "method_name": "Qatar Credit Card", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/qa/card-creditcard.png" } - ] - }, - { - "country_code": "SA", - "country_name": "Saudi Arabia", - "currency_code": "SAR", - "methods": [ - { "pay_way": "Card", "pay_type": "MADA", "method_name": "MADA", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/sa/card-mada.png" }, - { "pay_way": "Ewallet", "pay_type": "ApplePay", "method_name": "Apple Pay", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/sa/ewallet-applepay.png" }, - { "pay_way": "Ewallet", "pay_type": "STCPay", "method_name": "STCPay", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/sa/ewallet-stcpay.png" } - ] - }, - { - "country_code": "TH", - "country_name": "Thailand", - "currency_code": "THB", - "methods": [ - { "pay_way": "Ewallet", "pay_type": "TrueMoney", "method_name": "TrueMoney", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/th/ewallet-truemoney.png" } - ] - }, - { - "country_code": "VN", - "country_name": "Vietnam", - "currency_code": "VND", - "methods": [ - { "pay_way": "BankTransfer", "pay_type": "VN_BankTransfer", "method_name": "Vietnam Bank Transfer", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/vn/banktransfer-vn-banktransfer.png" }, - { "pay_way": "QR", "pay_type": "VietQR", "method_name": "VietQR", "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/vn/qr-vietqr.png" } - ] + "app": "aslan", + "adapter": "aslan-web-pay", + "application_id": "1963531459019739137", + "sys_origin": "ATYOU", + "type": "GOLD", + "api": { + "prod": "https://api.atuchat.com/", + "test": "https://api.atuchat.com/", + "local": "http://127.0.0.1:1100/" + }, + "headers": { + "req-sys-origin": "origin=ATYOU;originChild=ATYOU", + "Req-Atyou": "true" + }, + "endpoints": { + "context": "/order/web/pay/h5/context", + "options": "/order/web/pay/h5/options", + "orders": "/order/web/pay/h5/orders", + "order": "/order/web/pay/h5/orders/{orderId}" + }, + "providers": { + "mifapay": { + "provider_code": "mifapay", + "provider_name": "MiFaPay", + "status": "active", + "countries": [ + { + "country_code": "AE", + "country_codes": ["AE", "ARE"], + "country_name": "United Arab Emirates", + "currency_code": "AED", + "methods": [ + { + "pay_way": "Card", + "pay_type": "CreditCard", + "method_name": "UAE Credit Card", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/ae/card-creditcard.png" + } + ] + }, + { + "country_code": "BD", + "country_codes": ["BD", "BGD"], + "country_name": "Bangladesh", + "currency_code": "BDT", + "methods": [ + { + "pay_way": "Ewallet", + "pay_type": "bKash", + "method_name": "bKash", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/bd/ewallet-bkash.png" + } + ] + }, + { + "country_code": "BH", + "country_codes": ["BH", "BHR"], + "country_name": "Bahrain", + "currency_code": "BHD", + "methods": [ + { + "pay_way": "Card", + "pay_type": "CreditCard", + "method_name": "Bahrain Credit Card", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/bh/card-creditcard.png" + } + ] + }, + { + "country_code": "EG", + "country_codes": ["EG", "EGY"], + "country_name": "Egypt", + "currency_code": "EGP", + "methods": [ + { + "pay_way": "Ewallet", + "pay_type": "FawryPay", + "method_name": "FawryPay", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/eg/ewallet-fawrypay.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "Meeza", + "method_name": "Meeza", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/eg/ewallet-meeza.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "Orange", + "method_name": "Orange", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/eg/ewallet-orange.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "Vodafone", + "method_name": "Vodafone", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/eg/ewallet-vodafone.png" + } + ] + }, + { + "country_code": "ID", + "country_codes": ["ID", "IDN"], + "country_name": "Indonesia", + "currency_code": "IDR", + "methods": [ + { + "pay_way": "BankTransfer", + "pay_type": "BCA", + "method_name": "BCA Bank", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-bca.png" + }, + { + "pay_way": "BankTransfer", + "pay_type": "BNI", + "method_name": "BNI Bank", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-bni.png" + }, + { + "pay_way": "BankTransfer", + "pay_type": "BRI", + "method_name": "BRI Bank", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-bri.png" + }, + { + "pay_way": "BankTransfer", + "pay_type": "Mandiri", + "method_name": "Mandiri Bank", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-mandiri.png" + }, + { + "pay_way": "BankTransfer", + "pay_type": "Permata", + "method_name": "Permata Bank", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/banktransfer-permata.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "DANA", + "method_name": "DANA", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/ewallet-dana.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "LinkAja", + "method_name": "LinkAja", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/ewallet-linkaja.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "OVO", + "method_name": "OVO", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/ewallet-ovo.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "ShopeePay", + "method_name": "ShopeePay", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/ewallet-shopeepay.png" + }, + { + "pay_way": "QR", + "pay_type": "QRIS", + "method_name": "QRIS", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/id/qr-qris.png" + } + ] + }, + { + "country_code": "IN", + "country_codes": ["IN", "IND"], + "country_name": "India", + "currency_code": "INR", + "methods": [ + { + "pay_way": "Ewallet", + "pay_type": "BHIM", + "method_name": "BHIM", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-bhim.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "GooglePay", + "method_name": "Google Pay", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-googlepay.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "Mobikwik", + "method_name": "Mobikwik", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-mobikwik.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "Paytm", + "method_name": "Paytm", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-paytm.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "PhonePe", + "method_name": "PhonePe", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-phonepe.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "UPI", + "method_name": "UPI", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/in/ewallet-upi.png" + } + ] + }, + { + "country_code": "KW", + "country_codes": ["KW", "KWT"], + "country_name": "Kuwait", + "currency_code": "KWD", + "methods": [ + { + "pay_way": "Card", + "pay_type": "Knet", + "method_name": "KNET", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/kw/card-knet.png" + } + ] + }, + { + "country_code": "MY", + "country_codes": ["MY", "MYS"], + "country_name": "Malaysia", + "currency_code": "MYR", + "methods": [] + }, + { + "country_code": "OM", + "country_codes": ["OM", "OMN"], + "country_name": "Oman", + "currency_code": "OMR", + "methods": [ + { + "pay_way": "Card", + "pay_type": "CreditCard", + "method_name": "Oman Credit Card", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/om/card-creditcard.png" + } + ] + }, + { + "country_code": "PH", + "country_codes": ["PH", "PHL"], + "country_name": "Philippines", + "currency_code": "PHP", + "methods": [ + { + "pay_way": "Ewallet", + "pay_type": "Gcash", + "method_name": "GCash", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/ph/ewallet-gcash.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "PayMaya", + "method_name": "PayMaya", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/ph/ewallet-paymaya.png" + }, + { + "pay_way": "QR", + "pay_type": "QRPH", + "method_name": "QRPH", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/ph/qr-qrph.png" + } + ] + }, + { + "country_code": "PK", + "country_codes": ["PK", "PAK"], + "country_name": "Pakistan", + "currency_code": "PKR", + "methods": [ + { + "pay_way": "Ewallet", + "pay_type": "Easypaisa", + "method_name": "Easypaisa", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/pk/ewallet-easypaisa.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "JazzCash", + "method_name": "JazzCash", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/pk/ewallet-jazzcash.png" + } + ] + }, + { + "country_code": "QA", + "country_codes": ["QA", "QAT"], + "country_name": "Qatar", + "currency_code": "QAR", + "methods": [ + { + "pay_way": "Card", + "pay_type": "CreditCard", + "method_name": "Qatar Credit Card", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/qa/card-creditcard.png" + } + ] + }, + { + "country_code": "KSA", + "country_codes": ["KSA", "SA", "SAU", "SP"], + "country_name": "Saudi Arabia", + "currency_code": "SAR", + "methods": [ + { + "pay_way": "Card", + "pay_type": "MADA", + "method_name": "MADA", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/sa/card-mada.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "ApplePay", + "method_name": "Apple Pay", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/sa/ewallet-applepay.png" + }, + { + "pay_way": "Ewallet", + "pay_type": "STCPay", + "method_name": "STCPay", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/sa/ewallet-stcpay.png" + } + ] + }, + { + "country_code": "TH", + "country_codes": ["TH", "THA"], + "country_name": "Thailand", + "currency_code": "THB", + "methods": [ + { + "pay_way": "Ewallet", + "pay_type": "TrueMoney", + "method_name": "TrueMoney", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/th/ewallet-truemoney.png" + } + ] + }, + { + "country_code": "VN", + "country_codes": ["VN", "VNM"], + "country_name": "Vietnam", + "currency_code": "VND", + "methods": [ + { + "pay_way": "BankTransfer", + "pay_type": "VN_BankTransfer", + "method_name": "Vietnam Bank Transfer", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/vn/banktransfer-vn-banktransfer.png" + }, + { + "pay_way": "QR", + "pay_type": "VietQR", + "method_name": "VietQR", + "logo_url": "https://media.haiyihy.com/admin/payment/mifapay/logos/vn/qr-vietqr.png" + } + ] + } + ] } - ] } - } } diff --git a/recharge/create.html b/recharge/create.html new file mode 100644 index 0000000..8ec19dc --- /dev/null +++ b/recharge/create.html @@ -0,0 +1,749 @@ + + + + + + 三方临时支付链接 + + + + +
+
+
+

三方临时支付链接

+

加载环境中...

+
+ +
+ +
+
+

创建支付链接

+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+
+
+ +
+

创建结果

+
+
还没有创建支付链接
+
+
+ + +
+
+ +
+

验证支付链接

+
+ + +
+
+ +
+
+
+ +
+

验证结果

+
+
还没有验证订单
+
+
+
+
+ + + + + diff --git a/recharge/index.html b/recharge/index.html index 92e0694..16c7caa 100644 --- a/recharge/index.html +++ b/recharge/index.html @@ -2268,10 +2268,15 @@ function selectPayCountryFromConfig(context) { var configured = selectedConfiguredPayCountry(context); if (configured) { - var resolved = payCountryFromContext( - context, - configured.country_code || configured.countryCode - ); + var configuredCode = + primaryConfiguredCountryCode(configured); + var resolved = + payCountryFromContext( + context, + userCountryCodeFromContext(context) + ) || + payCountryFromContext(context, configuredCode) || + {}; // app JSON 只控制国家和支付方式是否展示;后台 payCountryId 必须从账号 context 的国家映射里取, // 否则 Yumi 这类旧下单接口会在商品已展示后因为 payCountryId 为空被参数校验拦截。 state.selectedPayCountryID = @@ -2283,8 +2288,7 @@ resolved.id || ''; state.selectedCountryCode = String( - configured.country_code || - configured.countryCode || + configuredCode || resolved.country_code || resolved.countryCode || '' @@ -2346,12 +2350,9 @@ if (!userCountryCode) return null; return ( countries.find(function (country) { - return ( - String( - country.country_code || - country.countryCode || - '' - ).toUpperCase() === userCountryCode + return configuredCountryMatchesCode( + country, + userCountryCode ); }) || null ); @@ -2366,6 +2367,47 @@ : []; } + function primaryConfiguredCountryCode(country) { + return configuredCountryCodes(country)[0] || ''; + } + + function configuredCountryMatchesCode(country, code) { + code = String(code || '') + .trim() + .toUpperCase(); + if (!code) return false; + return configuredCountryCodes(country).indexOf(code) >= 0; + } + + function configuredCountryCodes(country) { + country = country || {}; + var rawCodes = [] + .concat(country.country_code || []) + .concat(country.countryCode || []) + .concat(country.country_codes || []) + .concat(country.countryCodes || []); + var codes = []; + rawCodes.forEach(function (value) { + if (Array.isArray(value)) { + value.forEach(function (item) { + pushConfiguredCountryCode(codes, item); + }); + return; + } + pushConfiguredCountryCode(codes, value); + }); + return codes; + } + + function pushConfiguredCountryCode(codes, value) { + value = String(value || '') + .trim() + .toUpperCase(); + if (value && codes.indexOf(value) < 0) { + codes.push(value); + } + } + function payCountryFromContext(context, countryCode) { var countries = (context && @@ -2392,7 +2434,7 @@ '' ).toUpperCase() === normalizedCountryCode ); - }) || {} + }) || null ); } @@ -2474,7 +2516,8 @@ function isLegacyWebPayApp() { var adapter = - state.appConfig && String(state.appConfig.adapter || ''); + state.appConfig && + String(state.appConfig.adapter || ''); // Aslan/Yumi 仍走旧支付网关,保持原来的字符串商品 ID,避免影响老接口的字段兼容。 return ( adapter === 'aslan-web-pay' ||