From 8a86cc5335698bed50557968d235aeb598b2475f Mon Sep 17 00:00:00 2001 From: Wik-T <812952667@qq.com> Date: Fri, 25 Mar 2022 09:34:01 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=94=AF=E4=BB=98=E5=8F=B0=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=AE=8C=E6=88=90=202.=E6=90=AD=E5=BB=BA=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 14 +- Utils/Api.js | 13 + Utils/Request.js | 61 ++ Utils/js/date.js | 52 ++ components/cj-slider/cj-slider.vue | 372 +++++++++ components/wyb-popup/iconfont.css | 16 + components/wyb-popup/wyb-popup.vue | 420 ++++++++++ manifest.json | 12 +- node_modules/jweixin-module/README.md | 30 + node_modules/jweixin-module/lib/index.js | 1 + node_modules/jweixin-module/package.json | 54 ++ node_modules/vue-jsonp/LICENSE | 21 + node_modules/vue-jsonp/README.md | 153 ++++ node_modules/vue-jsonp/dist/index.d.ts | 73 ++ node_modules/vue-jsonp/dist/index.esm.js | 8 + node_modules/vue-jsonp/dist/index.js | 8 + node_modules/vue-jsonp/dist/utils/index.d.ts | 20 + node_modules/vue-jsonp/package.json | 80 ++ package-lock.json | 16 + pages.json | 8 +- pages/index/index.vue | 602 ++++++++++---- static/index1.png | Bin 0 -> 30855 bytes static/index2.png | Bin 0 -> 15783 bytes static/jt.png | Bin 0 -> 824 bytes static/noorder.png | Bin 0 -> 38119 bytes uni.scss | 741 +++++++++++++++++- uni_modules/uni-pay/README.md | 43 + uni_modules/uni-pay/changelog.md | 37 + uni_modules/uni-pay/package.json | 83 ++ .../cloudfunctions/common/uni-pay/LICENSE.md | 201 +++++ .../cloudfunctions/common/uni-pay/index.js | 8 + .../common/uni-pay/package.json | 16 + 32 files changed, 2985 insertions(+), 178 deletions(-) create mode 100644 Utils/Api.js create mode 100644 Utils/Request.js create mode 100644 Utils/js/date.js create mode 100644 components/cj-slider/cj-slider.vue create mode 100644 components/wyb-popup/iconfont.css create mode 100644 components/wyb-popup/wyb-popup.vue create mode 100644 node_modules/jweixin-module/README.md create mode 100644 node_modules/jweixin-module/lib/index.js create mode 100644 node_modules/jweixin-module/package.json create mode 100644 node_modules/vue-jsonp/LICENSE create mode 100644 node_modules/vue-jsonp/README.md create mode 100644 node_modules/vue-jsonp/dist/index.d.ts create mode 100644 node_modules/vue-jsonp/dist/index.esm.js create mode 100644 node_modules/vue-jsonp/dist/index.js create mode 100644 node_modules/vue-jsonp/dist/utils/index.d.ts create mode 100644 node_modules/vue-jsonp/package.json create mode 100644 package-lock.json create mode 100644 static/index1.png create mode 100644 static/index2.png create mode 100644 static/jt.png create mode 100644 static/noorder.png create mode 100644 uni_modules/uni-pay/README.md create mode 100644 uni_modules/uni-pay/changelog.md create mode 100644 uni_modules/uni-pay/package.json create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/common/uni-pay/LICENSE.md create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/common/uni-pay/index.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/common/uni-pay/package.json diff --git a/App.vue b/App.vue index 99f6e28..b2746c6 100644 --- a/App.vue +++ b/App.vue @@ -1,5 +1,17 @@ + + diff --git a/components/wyb-popup/iconfont.css b/components/wyb-popup/iconfont.css new file mode 100644 index 0000000..5890a5d --- /dev/null +++ b/components/wyb-popup/iconfont.css @@ -0,0 +1,16 @@ +@font-face {font-family: "iconfont"; + src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAKUAAsAAAAABlAAAAJJAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcApcdgE2AiQDCAsGAAQgBYRtBy8bmwXIrjBu4UkbIjvjLimCmu1EP9KHAd4jgmi/3+zde18toRbpnkUTzRKRUkgQE6RA9xL+tMuG6RYp8bFsgmbcecAB9mDhH67tDS3pQsIsmSbPL7chM1RKsFr5mNDBoUDPJItlaZG8fvhi/tciWcbRfJ7L6U2gA1l9oBz3orEmTRpAvTigAPfCKLISSiNtGLvAJdwn0DCHgMfN/kgLK1jLAvE0p7YWzoUVCparCZWavYV4U6qllxTNa/j5+JeKMEmZWQ1njw1PK39hF+TnFG59QoSADpfI2AEUxFVt+oQpGIc10pYlYF+1wRfTfZfYq12wv86qboEZqLgnpau61VyC21L06V8d9cuJmT795hWPJp8ayHj0wrZNx+/+1Nzdf8MBtu9H2p+tgB5tn/W1PEZvgeD5Xf/if61ZgE9foa3Qz0ttd57gtyh79hS62nKmQlXWDiczp2tqaGAK+we+sZbxPeRDzXiEt2o2RVazQhbsDkpNu6io2UPDNn24aagxRVHHlgkQehaSjg9kPYcs2IvSxENFL0w03ASd2bQW82is0d6iB+YE2ZWCOO5tNKodIN0xe51Vh/wE15t5DGQsUcy1UOB6jg19T1NjSyCsJQcFHkPGJJS1XKC7jaXtVpV4nNS9KGYl16KOrCHbFvIA4wRkLkkg/uitaOn9A4jaYWzrlq6a/ARa25hPDiRG9CBbBtGr616e6faolGGLAMGaxAEFZiGGkUCpn7WAXFsxaURSKeH2oNDXEFvfxL/uGDRY1hT2lKy8Y3KDmgYA') format('woff2') +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 30px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-close:before { + content: "\e622"; +} + diff --git a/components/wyb-popup/wyb-popup.vue b/components/wyb-popup/wyb-popup.vue new file mode 100644 index 0000000..f93c12a --- /dev/null +++ b/components/wyb-popup/wyb-popup.vue @@ -0,0 +1,420 @@ + + + + + diff --git a/manifest.json b/manifest.json index bc64e7f..6140c54 100644 --- a/manifest.json +++ b/manifest.json @@ -68,5 +68,15 @@ "uniStatistics" : { "enable" : false }, - "vueVersion" : "2" + "vueVersion" : "2", + "h5" : { + "router" : { + "mode" : "hash", + "base" : "/scanPay" + }, + "title" : "支付", + "devServer" : { + "https" : false + } + } } diff --git a/node_modules/jweixin-module/README.md b/node_modules/jweixin-module/README.md new file mode 100644 index 0000000..7c91d7b --- /dev/null +++ b/node_modules/jweixin-module/README.md @@ -0,0 +1,30 @@ +# jweixin-module + +微信JS-SDK + +## 安装 + +### NPM + +```shell +npm install jweixin-module --save +``` + +### UMD + +```http +https://unpkg.com/jweixin-module/out/index.js +``` + +## 使用 + +```js +var jweixin = require('jweixin-module') +jweixin.ready(function(){ + // TODO +}); +``` + +## 完整API + +>[微信JS-SDK说明文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115) diff --git a/node_modules/jweixin-module/lib/index.js b/node_modules/jweixin-module/lib/index.js new file mode 100644 index 0000000..1b5014b --- /dev/null +++ b/node_modules/jweixin-module/lib/index.js @@ -0,0 +1 @@ +!function(e,n){"function"==typeof define&&(define.amd||define.cmd)?define(function(){return n(e)}):n(e,!0)}(window,function(o,e){if(!o.jWeixin){var n,c={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest",openEnterpriseRedPacket:"getRecevieBizHongBaoRequest",startSearchBeacons:"startMonitoringBeacons",stopSearchBeacons:"stopMonitoringBeacons",onSearchBeacons:"onBeaconsInRange",consumeAndShareCard:"consumedShareCard",openAddress:"editAddress"},a=function(){var e={};for(var n in c)e[c[n]]=n;return e}(),i=o.document,t=i.title,r=navigator.userAgent.toLowerCase(),s=navigator.platform.toLowerCase(),d=!(!s.match("mac")&&!s.match("win")),u=-1!=r.indexOf("wxdebugger"),l=-1!=r.indexOf("micromessenger"),p=-1!=r.indexOf("android"),f=-1!=r.indexOf("iphone")||-1!=r.indexOf("ipad"),m=(n=r.match(/micromessenger\/(\d+\.\d+\.\d+)/)||r.match(/micromessenger\/(\d+\.\d+)/))?n[1]:"",g={initStartTime:L(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},h={version:1,appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:f?1:p?2:-1,clientVersion:m,url:encodeURIComponent(location.href)},v={},S={_completes:[]},y={state:0,data:{}};O(function(){g.initEndTime=L()});var I=!1,_=[],w={config:function(e){B("config",v=e);var t=!1!==v.check;O(function(){if(t)M(c.config,{verifyJsApiList:C(v.jsApiList),verifyOpenTagList:C(v.openTagList)},function(){S._complete=function(e){g.preVerifyEndTime=L(),y.state=1,y.data=e},S.success=function(e){h.isPreVerifyOk=0},S.fail=function(e){S._fail?S._fail(e):y.state=-1};var t=S._completes;return t.push(function(){!function(){if(!(d||u||v.debug||m<"6.0.2"||h.systemType<0)){var i=new Image;h.appId=v.appId,h.initTime=g.initEndTime-g.initStartTime,h.preVerifyTime=g.preVerifyEndTime-g.preVerifyStartTime,w.getNetworkType({isInnerInvoke:!0,success:function(e){h.networkType=e.networkType;var n="https://open.weixin.qq.com/sdk/report?v="+h.version+"&o="+h.isPreVerifyOk+"&s="+h.systemType+"&c="+h.clientVersion+"&a="+h.appId+"&n="+h.networkType+"&i="+h.initTime+"&p="+h.preVerifyTime+"&u="+h.url;i.src=n}})}}()}),S.complete=function(e){for(var n=0,i=t.length;n` + + - `jsonp: (url: string, param?: IJsonpParam, timeout?: number) => Promise` + +## API + +### IJsonpParam + +IJsonpParam is the type of param for jsonp function. + +```ts +/** + * JSONP parameter declaration. + */ +interface IJsonpParam { + /** + * Callback query name. + * This param is used to define the query name of the callback function. + * + * @example + * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice" + * jsonp('/some-url', { + * callbackQuery: 'myCallback', + * callbackName: 'jsonp_func', + * myCustomUrlParam: 'veryNice' + * }) + * + * @default callback + */ + callbackQuery?: string + + /** + * Callback function name. + * This param is used to define the jsonp function name. + * + * @example + * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice" + * jsonp('/some-url', { + * callbackQuery: 'myCallback', + * callbackName: 'jsonp_func', + * myCustomUrlParam: 'veryNice' + * }) + * + * @default jsonp_ + randomStr() + */ + callbackName?: string + + /** + * Custom data. + */ + [key: string]: any +} +``` + +## Example + +```ts +import Vue from 'vue' +import { VueJsonp } from 'vue-jsonp' + +Vue.use(VueJsonp) + +const vm = new Vue() +const { code, data, message } = await vm.$jsonp<{ + code: number, + message: string, + data: { + id: number, + nickname: string + } +}>('/my-awesome-url', { + name: 'MyName', age: 20 +}) + +assert(code === 0) +assert(message === 'ok') +assert(data.id === 1) +assert(data.nickname === 'John Smith') +``` + +```ts +import { jsonp } from 'vue-jsonp' + +const result = await jsonp('/my-awesome-url') +assert(result === 'such a jsonp') +``` + +## License + +MIT diff --git a/node_modules/vue-jsonp/dist/index.d.ts b/node_modules/vue-jsonp/dist/index.d.ts new file mode 100644 index 0000000..ec621c7 --- /dev/null +++ b/node_modules/vue-jsonp/dist/index.d.ts @@ -0,0 +1,73 @@ +/** + * Vue Jsonp. + * # Carry Your World # + * + * @author: LancerComet + * @license: MIT + */ +import { PluginObject } from 'vue/types/plugin'; +declare module 'vue/types/vue' { + interface Vue { + $jsonp: typeof jsonp; + } +} +/** + * Vue JSONP. + */ +declare const VueJsonp: PluginObject; +/** + * JSONP function. + * + * @param { string } url Target URL address. + * @param { IJsonpParam } param Querying params object. + * @param { number } timeout Timeout setting (ms). + * + * @example + * jsonp('/url', { + * callbackQuery: '' + * callbackName: '', + * name: 'LancerComet', + * age: 26 + * }, 1000) + */ +declare function jsonp(url: string, param?: IJsonpParam, timeout?: number): Promise; +export { VueJsonp, jsonp }; +/** + * JSONP parameter declaration. + */ +interface IJsonpParam { + /** + * Callback query name. + * This param is used to define the query name of the callback function. + * + * @example + * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice" + * jsonp('/some-url', { + * callbackQuery: 'myCallback', + * callbackName: 'jsonp_func', + * myCustomUrlParam: 'veryNice' + * }) + * + * @default callback + */ + callbackQuery?: string; + /** + * Callback function name. + * This param is used to define the jsonp function name. + * + * @example + * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice" + * jsonp('/some-url', { + * callbackQuery: 'myCallback', + * callbackName: 'jsonp_func', + * myCustomUrlParam: 'veryNice' + * }) + * + * @default jsonp_ + randomStr() + */ + callbackName?: string; + /** + * Custom data. + */ + [key: string]: any; +} diff --git a/node_modules/vue-jsonp/dist/index.esm.js b/node_modules/vue-jsonp/dist/index.esm.js new file mode 100644 index 0000000..893bec4 --- /dev/null +++ b/node_modules/vue-jsonp/dist/index.esm.js @@ -0,0 +1,8 @@ +function e(t,n){t=t.replace(/=/g,"");var o=[];switch(n.constructor){case String:case Number:case Boolean:o.push(encodeURIComponent(t)+"="+encodeURIComponent(n));break;case Array:n.forEach((function(n){o=o.concat(e(t+"[]=",n))}));break;case Object:Object.keys(n).forEach((function(r){var a=n[r];o=o.concat(e(t+"["+r+"]",a))}))}return o}function t(e){var n=[];return e.forEach((function(e){"string"==typeof e?n.push(e):n=n.concat(t(e))})),n} +/** + * Vue Jsonp. + * # Carry Your World # + * + * @author: LancerComet + * @license: MIT + */var n={install:function(e){e.prototype.$jsonp=o}};function o(n,o,r){if(void 0===o&&(o={}),"string"!=typeof n)throw new Error('[Vue-jsonp] Type of param "url" is not string.');if("object"!=typeof o||!o)throw new Error("[Vue-jsonp] Invalid params, should be an object.");return r="number"==typeof r?r:5e3,new Promise((function(a,c){var u="string"==typeof o.callbackQuery?o.callbackQuery:"callback",i="string"==typeof o.callbackName?o.callbackName:"jsonp_"+(Math.floor(1e5*Math.random())*Date.now()).toString(16);o[u]=i,delete o.callbackQuery,delete o.callbackName;var s=[];Object.keys(o).forEach((function(t){s=s.concat(e(t,o[t]))}));var l=t(s).join("&"),f=function(){p(),clearTimeout(m),c({status:400,statusText:"Bad Request"})},p=function(){b.removeEventListener("error",f)},d=function(){document.body.removeChild(b),delete window[i]},m=null;r>-1&&(m=setTimeout((function(){p(),d(),c({statusText:"Request Timeout",status:408})}),r)),window[i]=function(e){clearTimeout(m),p(),d(),a(e)};var b=document.createElement("script");b.addEventListener("error",f),b.src=n+(/\?/.test(n)?"&":"?")+l,document.body.appendChild(b)}))}export{n as VueJsonp,o as jsonp}; diff --git a/node_modules/vue-jsonp/dist/index.js b/node_modules/vue-jsonp/dist/index.js new file mode 100644 index 0000000..c5e0aee --- /dev/null +++ b/node_modules/vue-jsonp/dist/index.js @@ -0,0 +1,8 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VueJsonp={})}(this,(function(e){"use strict";function t(e,o){e=e.replace(/=/g,"");var n=[];switch(o.constructor){case String:case Number:case Boolean:n.push(encodeURIComponent(e)+"="+encodeURIComponent(o));break;case Array:o.forEach((function(o){n=n.concat(t(e+"[]=",o))}));break;case Object:Object.keys(o).forEach((function(r){var c=o[r];n=n.concat(t(e+"["+r+"]",c))}))}return n}function o(e){var t=[];return e.forEach((function(e){"string"==typeof e?t.push(e):t=t.concat(o(e))})),t} +/** + * Vue Jsonp. + * # Carry Your World # + * + * @author: LancerComet + * @license: MIT + */var n={install:function(e){e.prototype.$jsonp=r}};function r(e,n,r){if(void 0===n&&(n={}),"string"!=typeof e)throw new Error('[Vue-jsonp] Type of param "url" is not string.');if("object"!=typeof n||!n)throw new Error("[Vue-jsonp] Invalid params, should be an object.");return r="number"==typeof r?r:5e3,new Promise((function(c,a){var i="string"==typeof n.callbackQuery?n.callbackQuery:"callback",s="string"==typeof n.callbackName?n.callbackName:"jsonp_"+(Math.floor(1e5*Math.random())*Date.now()).toString(16);n[i]=s,delete n.callbackQuery,delete n.callbackName;var u=[];Object.keys(n).forEach((function(e){u=u.concat(t(e,n[e]))}));var f=o(u).join("&"),l=function(){p(),clearTimeout(b),a({status:400,statusText:"Bad Request"})},p=function(){m.removeEventListener("error",l)},d=function(){document.body.removeChild(m),delete window[s]},b=null;r>-1&&(b=setTimeout((function(){p(),d(),a({statusText:"Request Timeout",status:408})}),r)),window[s]=function(e){clearTimeout(b),p(),d(),c(e)};var m=document.createElement("script");m.addEventListener("error",l),m.src=e+(/\?/.test(e)?"&":"?")+f,document.body.appendChild(m)}))}e.VueJsonp=n,e.jsonp=r,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/node_modules/vue-jsonp/dist/utils/index.d.ts b/node_modules/vue-jsonp/dist/utils/index.d.ts new file mode 100644 index 0000000..6b2f521 --- /dev/null +++ b/node_modules/vue-jsonp/dist/utils/index.d.ts @@ -0,0 +1,20 @@ +/** + * Generate random string. + * + * @return { string } + */ +declare function randomStr(): string; +/** + * Format params into querying string. + * + * @return {string[]} + */ +declare function formatParams(queryKey: string, value: any): string[]; +/** + * Flat querys. + * + * @param {string[] | (string[])[]} array + * @returns + */ +declare function flatten(array: string[] | (string[])[]): string[]; +export { formatParams, flatten, randomStr }; diff --git a/node_modules/vue-jsonp/package.json b/node_modules/vue-jsonp/package.json new file mode 100644 index 0000000..c3ceeaf --- /dev/null +++ b/node_modules/vue-jsonp/package.json @@ -0,0 +1,80 @@ +{ + "_from": "vue-jsonp", + "_id": "vue-jsonp@2.0.0", + "_inBundle": false, + "_integrity": "sha512-Mzd9GNeuKP5hHFDWZNMWOsCuMILSkA6jo2l4A02wheFz3qqBzH7aSEFTey1BRCZCLizlaf1EqJ5YUtF392KspA==", + "_location": "/vue-jsonp", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "vue-jsonp", + "name": "vue-jsonp", + "escapedName": "vue-jsonp", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/vue-jsonp/-/vue-jsonp-2.0.0.tgz", + "_shasum": "3bfac56bb72941a2511c11e1a123b876f03427f7", + "_spec": "vue-jsonp", + "_where": "C:\\Users\\Administrator\\Documents\\high-mini", + "author": { + "name": "LancerComet", + "email": "chw644@hotmail.com" + }, + "bugs": { + "url": "https://github.com/LancerComet/vue-jsonp/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A tiny library for handling JSONP request.", + "devDependencies": { + "@types/expect-puppeteer": "^4.4.3", + "@types/jest": "^26.0.14", + "@types/jest-environment-puppeteer": "^4.4.0", + "@types/puppeteer": "^3.0.2", + "jest": "^26.4.2", + "jest-puppeteer": "^4.4.0", + "puppeteer": "^5.3.1", + "rollup": "^2.28.2", + "rollup-plugin-cleanup": "^3.2.1", + "rollup-plugin-delete": "^2.0.0", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.27.3", + "ts-jest": "^26.4.1", + "tslint": "^6.1.3", + "typescript": "^4.0.3", + "vue": "^2.6.12" + }, + "files": [ + "dist/", + "index.d.ts", + "README.md" + ], + "homepage": "https://github.com/LancerComet/vue-jsonp#readme", + "keywords": [ + "Vue", + "JSONP" + ], + "license": "MIT", + "main": "./dist/index.js", + "module": "./dist/index.esm.js", + "name": "vue-jsonp", + "repository": { + "type": "git", + "url": "git+https://github.com/LancerComet/vue-jsonp.git" + }, + "scripts": { + "build": "rollup -c", + "prepublish": "npm run test", + "pretest": "npm run build", + "preversion": "npm run test", + "test": "jest" + }, + "version": "2.0.0" +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..bfec92c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "jweixin-module": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz", + "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==" + }, + "vue-jsonp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vue-jsonp/-/vue-jsonp-2.0.0.tgz", + "integrity": "sha512-Mzd9GNeuKP5hHFDWZNMWOsCuMILSkA6jo2l4A02wheFz3qqBzH7aSEFTey1BRCZCLizlaf1EqJ5YUtF392KspA==" + } + } +} diff --git a/pages.json b/pages.json index bf32f65..0eaad5f 100644 --- a/pages.json +++ b/pages.json @@ -3,7 +3,13 @@ { "path": "pages/index/index", "style": { - "navigationBarTitleText": "uni-app" + "navigationBarTextStyle": "white", + "navigationBarTitleText": "首页", + "onReachBottomDistance": 50, + "app-plus": { + "titleNView": false, //禁用原生导航栏 + "softinputNavBar": "none" + } } } ], diff --git a/pages/index/index.vue b/pages/index/index.vue index 67fbf3a..5aff822 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,140 +1,464 @@ - - - - - diff --git a/static/index1.png b/static/index1.png new file mode 100644 index 0000000000000000000000000000000000000000..5e17c16c11b1613cb037293f2a3a24eefe49fc0b GIT binary patch literal 30855 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.toUpperCase():"")}function f(e){return e.replace(c,e=>"_"+e.toLowerCase())}function h(e,t){let r,n;switch(t){case"snake2camel":n=l,r=u;break;case"camel2snake":n=f,r=c}for(const i in e)if(s(e,i)&&r.test(i)){const r=n(i);e[r]=e[i],delete e[i],a(e[r])?e[r]=h(e[r],t):Array.isArray(e[r])&&(e[r]=e[r].map(e=>h(e,t)))}return e}function p(e,t="-"){e=e||new Date;const r=[];return r.push(e.getFullYear()),r.push(("00"+(e.getMonth()+1)).substr(-2)),r.push(("00"+e.getDate()).substr(-2)),r.join(t)}function d(e,t=":"){e=e||new Date;const r=[];return r.push(("00"+e.getHours()).substr(-2)),r.push(("00"+e.getMinutes()).substr(-2)),r.push(("00"+e.getSeconds()).substr(-2)),r.join(t)}function y(e){const t=e.toString().split("."),r=t[1]?t[1].length:0;return{value:Number(t.join("")),power:r}}},function(e,t){e.exports=require("util")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(39);t.bytesFromIP=function(e){switch(n.isIP(e)){case 4:return Buffer.from(e.split(".").map(e=>parseInt(e,10)));case 6:const t=e.split(":"),r=Buffer.alloc(16);let n=0;""===t[t.length-1]&&(t[t.length-1]="0");for(let e=0;es&&(s=n,i=r)):(r=-1,n=0),t.push(o.toString(16))}if(s>0){let e="";const r=t.slice(i+s);t.length=i,0===t.length&&(e+=":"),0===r.length&&(e+=":"),t.push(e,...r)}return t.join(":");default:return""}};const i=Object.create(null),s=/^[0-9.]+$/;function a(e,t){i[e]=t,i[t]=e}t.getOID=function(e){return s.test(e)&&""!==i[e]?e:null==i[e]?"":i[e]},t.getOIDName=function(e){return s.test(e)||""===i[e]?null==i[e]?e:i[e]:e},a("1.2.840.113549.1.1.1","rsaEncryption"),a("1.2.840.113549.1.1.4","md5WithRsaEncryption"),a("1.2.840.113549.1.1.5","sha1WithRsaEncryption"),a("1.2.840.113549.1.1.8","mgf1"),a("1.2.840.113549.1.1.10","RSASSA-PSS"),a("1.2.840.113549.1.1.11","sha256WithRsaEncryption"),a("1.2.840.113549.1.1.12","sha384WithRsaEncryption"),a("1.2.840.113549.1.1.13","sha512WithRsaEncryption"),a("1.2.840.10045.2.1","ecEncryption"),a("1.2.840.10045.4.1","ecdsaWithSha1"),a("1.2.840.10045.4.3.2","ecdsaWithSha256"),a("1.2.840.10045.4.3.3","ecdsaWithSha384"),a("1.2.840.10045.4.3.4","ecdsaWithSha512"),a("1.2.840.10040.4.3","dsaWithSha1"),a("2.16.840.1.101.3.4.3.2","dsaWithSha256"),a("1.3.14.3.2.7","desCBC"),a("1.3.14.3.2.26","sha1"),a("2.16.840.1.101.3.4.2.1","sha256"),a("2.16.840.1.101.3.4.2.2","sha384"),a("2.16.840.1.101.3.4.2.3","sha512"),a("1.2.840.113549.2.5","md5"),a("1.3.101.110","X25519"),a("1.3.101.111","X448"),a("1.3.101.112","Ed25519"),a("1.3.101.113","Ed448"),a("1.2.840.113549.1.7.1","data"),a("1.2.840.113549.1.7.2","signedData"),a("1.2.840.113549.1.7.3","envelopedData"),a("1.2.840.113549.1.7.4","signedAndEnvelopedData"),a("1.2.840.113549.1.7.5","digestedData"),a("1.2.840.113549.1.7.6","encryptedData"),a("1.2.840.113549.1.9.1","emailAddress"),a("1.2.840.113549.1.9.2","unstructuredName"),a("1.2.840.113549.1.9.3","contentType"),a("1.2.840.113549.1.9.4","messageDigest"),a("1.2.840.113549.1.9.5","signingTime"),a("1.2.840.113549.1.9.6","counterSignature"),a("1.2.840.113549.1.9.7","challengePassword"),a("1.2.840.113549.1.9.8","unstructuredAddress"),a("1.2.840.113549.1.9.14","extensionRequest"),a("1.2.840.113549.1.9.20","friendlyName"),a("1.2.840.113549.1.9.21","localKeyId"),a("1.2.840.113549.1.9.22.1","x509Certificate"),a("1.2.840.113549.1.12.10.1.1","keyBag"),a("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag"),a("1.2.840.113549.1.12.10.1.3","certBag"),a("1.2.840.113549.1.12.10.1.4","crlBag"),a("1.2.840.113549.1.12.10.1.5","secretBag"),a("1.2.840.113549.1.12.10.1.6","safeContentsBag"),a("1.2.840.113549.1.5.13","pkcs5PBES2"),a("1.2.840.113549.1.5.12","pkcs5PBKDF2"),a("1.2.840.113549.2.7","hmacWithSha1"),a("1.2.840.113549.2.9","hmacWithSha256"),a("1.2.840.113549.2.10","hmacWithSha384"),a("1.2.840.113549.2.11","hmacWithSha512"),a("1.2.840.113549.3.7","3desCBC"),a("2.16.840.1.101.3.4.1.2","aesCBC128"),a("2.16.840.1.101.3.4.1.42","aesCBC256"),a("2.5.4.3","commonName"),a("2.5.4.5","serialName"),a("2.5.4.6","countryName"),a("2.5.4.7","localityName"),a("2.5.4.8","stateOrProvinceName"),a("2.5.4.10","organizationName"),a("2.5.4.11","organizationalUnitName"),a("2.5.4.15","businessCategory"),a("2.16.840.1.113730.1.1","nsCertType"),a("2.5.29.2","keyAttributes"),a("2.5.29.4","keyUsageRestriction"),a("2.5.29.6","subtreesConstraint"),a("2.5.29.9","subjectDirectoryAttributes"),a("2.5.29.14","subjectKeyIdentifier"),a("2.5.29.15","keyUsage"),a("2.5.29.16","privateKeyUsagePeriod"),a("2.5.29.17","subjectAltName"),a("2.5.29.18","issuerAltName"),a("2.5.29.19","basicConstraints"),a("2.5.29.20","cRLNumber"),a("2.5.29.21","cRLReason"),a("2.5.29.22","expirationDate"),a("2.5.29.23","instructionCode"),a("2.5.29.24","invalidityDate"),a("2.5.29.27","deltaCRLIndicator"),a("2.5.29.28","issuingDistributionPoint"),a("2.5.29.29","certificateIssuer"),a("2.5.29.30","nameConstraints"),a("2.5.29.31","cRLDistributionPoints"),a("2.5.29.32","certificatePolicies"),a("2.5.29.33","policyMappings"),a("2.5.29.35","authorityKeyIdentifier"),a("2.5.29.36","policyConstraints"),a("2.5.29.37","extKeyUsage"),a("2.5.29.46","freshestCRL"),a("2.5.29.54","inhibitAnyPolicy"),a("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST"),a("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC"),a("1.3.6.1.4.1.11129.2.4.2","timestampList"),a("1.3.6.1.5.5.7.1.1","authorityInfoAccess"),a("1.3.6.1.5.5.7.3.1","serverAuth"),a("1.3.6.1.5.5.7.3.2","clientAuth"),a("1.3.6.1.5.5.7.3.3","codeSigning"),a("1.3.6.1.5.5.7.3.4","emailProtection"),a("1.3.6.1.5.5.7.3.8","timeStamping"),a("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp"),a("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")},function(e,t){e.exports=require("fs")},function(e,t,r){"use strict";const n=e=>!("object"!=typeof e||null===e||e instanceof RegExp||e instanceof Error||e instanceof Date);e.exports=function e(t,r,i,s){if(i=Object.assign({deep:!1,target:{}},i),(s=s||new WeakMap).has(t))return s.get(t);s.set(t,i.target);const a=i.target;delete i.target;for(const o of Object.keys(t)){const u=t[o],c=r(o,u,t);let l=c[1];i.deep&&n(l)&&(l=Array.isArray(l)?l.map(t=>n(t)?e(t,r,i,s):t):e(l,r,i,s)),a[c[0]]=l}return a}},function(e,t,r){"use strict";var n=r(6),i=r(31);e.exports=function(e,t){return t=Object.assign({deep:!0},t),n(e,(function(e,t){return[i(e),t]}),t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(0),i=r(34),s=r(35),a=r(7),o={RSA:"RSA-SHA1",RSA2:"RSA-SHA256"};t.ALIPAY_ALGORITHM_MAPPING=o,t.sign=function(e,t={},r){const u=t.bizContent||null;delete t.bizContent;let c=Object.assign({method:e,appId:r.appId,charset:r.charset,version:r.version,signType:r.signType,timestamp:i().format("YYYY-MM-DD HH:mm:ss")},t);r.appCertSn&&r.alipayRootCertSn&&(c=Object.assign({appCertSn:r.appCertSn,alipayRootCertSn:r.alipayRootCertSn},c)),u&&(c.bizContent=JSON.stringify(a(u)));const l=a(c),f=Object.keys(l).sort().map(e=>{let t=l[e];return"[object String]"!==Array.prototype.toString.call(t)&&(t=JSON.stringify(t)),`${e}=${s.encode(t,r.charset)}`}).join("&"),h=n.createSign(o[r.signType]).update(f,"utf8").sign(r.privateKey,"base64");return Object.assign(l,{sign:h})}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(3),i=r(0),s=r(40),a=r(10),o=r(4);t.publicKeyValidator={name:"PublicKeyInfo",class:a.Class.UNIVERSAL,tag:a.Tag.SEQUENCE,capture:"publicKeyInfo",value:[{name:"PublicKeyInfo.AlgorithmIdentifier",class:a.Class.UNIVERSAL,tag:a.Tag.SEQUENCE,value:[{name:"PublicKeyAlgorithmIdentifier.algorithm",class:a.Class.UNIVERSAL,tag:a.Tag.OID,capture:"publicKeyOID"}]},{name:"PublicKeyInfo.PublicKey",class:a.Class.UNIVERSAL,tag:a.Tag.BITSTRING,capture:"publicKey"}]},t.privateKeyValidator={name:"PrivateKeyInfo",class:a.Class.UNIVERSAL,tag:a.Tag.SEQUENCE,capture:"privateKeyInfo",value:[{name:"PrivateKeyInfo.Version",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.AlgorithmIdentifier",class:a.Class.UNIVERSAL,tag:a.Tag.SEQUENCE,value:[{name:"PrivateKeyAlgorithmIdentifier.algorithm",class:a.Class.UNIVERSAL,tag:a.Tag.OID,capture:"privateKeyOID"}]},{name:"PrivateKeyInfo.PrivateKey",class:a.Class.UNIVERSAL,tag:a.Tag.OCTETSTRING,capture:"privateKey"}]};const u={name:"RSAPublicKey",class:a.Class.UNIVERSAL,tag:a.Tag.SEQUENCE,value:[{name:"RSAPublicKey.modulus",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"publicKeyExponent"}]},c={name:"RSAPrivateKey",class:a.Class.UNIVERSAL,tag:a.Tag.SEQUENCE,value:[{name:"RSAPrivateKey.version",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",class:a.Class.UNIVERSAL,tag:a.Tag.INTEGER,capture:"privateKeyCoefficient"}]},l=[o.getOID("X25519"),o.getOID("X448"),o.getOID("Ed25519"),o.getOID("Ed448")];class f{constructor(e){const r={},n=e.validate(t.publicKeyValidator,r);if(null!=n)throw new Error("Cannot read X.509 public key: "+n.message);this.oid=a.ASN1.parseOID(r.publicKeyOID.bytes),this.algo=o.getOIDName(this.oid),this._pkcs8=e,this._keyRaw=a.ASN1.parseBitString(r.publicKey.bytes).buf,this._finalKey=this._keyRaw,this._finalPEM=""}static fromPEM(e){const t=a.PEM.parse(e)[0];if(t.procType.includes("ENCRYPTED"))throw new Error("Could not convert public key from PEM, PEM is encrypted.");const r=a.ASN1.fromDER(t.body,!0);switch(t.type){case"PUBLIC KEY":return new f(r);case"RSA PUBLIC KEY":const e=a.ASN1.Seq([a.ASN1.Seq([a.ASN1.OID(o.getOID("rsaEncryption")),a.ASN1.Null()]),a.ASN1.BitString(r.DER)]);return new f(e);default:throw new Error("Could not convert public key from PEM, recommend PKCS#8 PEM")}}static addVerifier(e,t){if(""===(e=o.getOID(e)))throw new Error("Invalid object identifier: "+e);if(null!=f._verifiers[e])throw new Error(`Verifier ${e} exists`);f._verifiers[e]=t}get keyRaw(){return this._finalKey}verify(e,t,r){const n=f._verifiers[this.oid];if(null!=n){const s=i.createHash(r).update(e).digest();return n.call(this,s,t)}const s=i.createVerify(r);return s.update(e),s.verify(this.toPEM(),t)}getFingerprint(e,t="PublicKey"){let r;switch(t){case"PublicKeyInfo":r=this._pkcs8.DER;break;case"PublicKey":r=this._keyRaw;break;default:throw new Error(`Unknown fingerprint type "${t}".`)}const n=i.createHash(e);return n.update(r),n.digest()}toASN1(){return this._pkcs8}toDER(){return this._pkcs8.DER}toPEM(){return""===this._finalPEM&&(this._finalPEM=new a.PEM("PUBLIC KEY",this._pkcs8.DER).toString()),this._finalPEM}toJSON(){return{oid:this.oid,algo:this.algo,publicKey:this._keyRaw}}[n.inspect.custom](e,t){return`<${this.constructor.name} ${n.inspect(this.toJSON(),t)}>`}}f._verifiers=Object.create(null),t.PublicKey=f;class h{constructor(e){const r=Object.create(null),n=e.validate(t.privateKeyValidator,r);if(null!=n)throw new Error("Cannot read X.509 private key: "+n.message);if(this.version=a.ASN1.parseIntegerNum(r.privateKeyVersion.bytes)+1,this.oid=a.ASN1.parseOID(r.privateKeyOID.bytes),this.algo=o.getOIDName(this.oid),this._pkcs8=e,this._keyRaw=r.privateKey.bytes,this._publicKeyRaw=null,this._finalKey=this._keyRaw,this._finalPEM="",l.includes(this.oid))if(this._finalKey=this._keyRaw=a.ASN1.parseDER(this._keyRaw,a.Class.UNIVERSAL,a.Tag.OCTETSTRING).bytes,"1.3.101.112"===this.oid){const e=s.sign.keyPair.fromSeed(this._keyRaw);this._publicKeyRaw=Buffer.from(e.publicKey),this._finalKey=Buffer.from(e.secretKey)}else if(2===this.version)for(const t of e.mustCompound())t.class===a.Class.CONTEXT_SPECIFIC&&1===t.tag&&(this._publicKeyRaw=a.ASN1.parseBitString(t.bytes).buf,this._finalKey=Buffer.concat([this._keyRaw,this._publicKeyRaw]))}static fromPEM(e){const t=a.PEM.parse(e)[0];if(t.procType.includes("ENCRYPTED"))throw new Error("Could not convert private key from PEM, PEM is encrypted.");let r=a.ASN1.fromDER(t.body,!0);switch(t.type){case"PRIVATE KEY":return new h(r);case"RSA PRIVATE KEY":return r=a.ASN1.Seq([r.value[0],a.ASN1.Seq([a.ASN1.OID(o.getOID("rsaEncryption")),a.ASN1.Null()]),new a.ASN1(a.Class.UNIVERSAL,a.Tag.OCTETSTRING,r.DER)]),new h(r);default:throw new Error("Could not convert private key from PEM, recommend PKCS#8 PEM")}}static addSigner(e,t){if(""===(e=o.getOID(e)))throw new Error("Invalid object identifier: "+e);if(null!=h._signers[e])throw new Error(`Signer ${e} exists`);h._signers[e]=t}get keyRaw(){return this._finalKey}get publicKeyRaw(){return this._publicKeyRaw}sign(e,t){const r=h._signers[this.oid];if(null!=r){const n=i.createHash(t).update(e).digest();return r.call(this,n)}const n=i.createSign(t);return n.update(e),n.sign(this.toPEM())}toASN1(){return this._pkcs8}toDER(){return this._pkcs8.DER}toPEM(){return""===this._finalPEM&&(this._finalPEM=new a.PEM("PRIVATE KEY",this._pkcs8.DER).toString()),this._finalPEM}toJSON(){return{version:this.version,oid:this.oid,algo:this.algo,privateKey:this._keyRaw,publicKey:this._publicKeyRaw}}[n.inspect.custom](e,t){return`<${this.constructor.name} ${n.inspect(this.toJSON(),t)}>`}}h._signers=Object.create(null),t.PrivateKey=h;class p extends f{static fromPublicKey(e){return new p(e.toASN1())}constructor(e){if(super(e),o.getOID(this.oid)!==o.getOID("rsaEncryption"))throw new Error("Invalid RSA public key, unknown OID: "+this.oid);const t=Object.create(null);this._pkcs1=a.ASN1.fromDER(this._keyRaw,!0);const r=this._pkcs1.validate(u,t);if(null!=r)throw new Error("Cannot read RSA public key: "+r.message);this.modulus=a.ASN1.parseIntegerStr(t.publicKeyModulus.bytes),this.exponent=a.ASN1.parseIntegerNum(t.publicKeyExponent.bytes)}toASN1(){return this._pkcs1}toDER(){return this._keyRaw}toPEM(){return""===this._finalPEM&&(this._finalPEM=new a.PEM("RSA PUBLIC KEY",this._keyRaw).toString()),this._finalPEM}toPublicKeyPEM(){return new a.PEM("PUBLIC KEY",this._pkcs8.DER).toString()}toJSON(){return{oid:this.oid,algo:this.algo,modulus:y(this.modulus),exponent:this.exponent}}[n.inspect.custom](e,t){return`<${this.constructor.name} ${n.inspect(this.toJSON(),t)}>`}}t.RSAPublicKey=p;class d extends h{static fromPrivateKey(e){return new d(e.toASN1())}constructor(e){if(super(e),o.getOID(this.oid)!==o.getOID("rsaEncryption"))throw new Error("Invalid RSA private key, unknown OID: "+this.oid);const t=Object.create(null);this._pkcs1=a.ASN1.fromDER(this._keyRaw,!0);const r=this._pkcs1.validate(c,t);if(null!=r)throw new Error("Cannot read RSA private key: "+r.message);this.publicExponent=a.ASN1.parseIntegerNum(t.privateKeyPublicExponent.bytes),this.privateExponent=a.ASN1.parseIntegerStr(t.privateKeyPrivateExponent.bytes),this.modulus=a.ASN1.parseIntegerStr(t.privateKeyModulus.bytes),this.prime1=a.ASN1.parseIntegerStr(t.privateKeyPrime1.bytes),this.prime2=a.ASN1.parseIntegerStr(t.privateKeyPrime2.bytes),this.exponent1=a.ASN1.parseIntegerStr(t.privateKeyExponent1.bytes),this.exponent2=a.ASN1.parseIntegerStr(t.privateKeyExponent2.bytes),this.coefficient=a.ASN1.parseIntegerStr(t.privateKeyCoefficient.bytes)}toASN1(){return this._pkcs1}toDER(){return this._keyRaw}toPEM(){return""===this._finalPEM&&(this._finalPEM=new a.PEM("RSA PRIVATE KEY",this._keyRaw).toString()),this._finalPEM}toPrivateKeyPEM(){return new a.PEM("PRIVATE KEY",this._pkcs8.DER).toString()}toJSON(){return{version:this.version,oid:this.oid,algo:this.algo,publicExponent:this.publicExponent,privateExponent:y(this.privateExponent),modulus:y(this.modulus),prime1:y(this.prime1),prime2:y(this.prime2),exponent1:y(this.exponent1),exponent2:y(this.exponent2),coefficient:y(this.coefficient)}}[n.inspect.custom](e,t){return`<${this.constructor.name} ${n.inspect(this.toJSON(),t)}>`}}function y(e){return e.length%8!=0&&e.startsWith("00")?e.slice(2):e}t.RSAPrivateKey=d,f.addVerifier(o.getOID("Ed25519"),(function(e,t){return s.sign.detached.verify(e,t,this.keyRaw)})),h.addSigner(o.getOID("Ed25519"),(function(e){const t=this.keyRaw;if(64!==t.length)throw new Error("Invalid signing key.");return Buffer.from(s.sign.detached(e,t))}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(11);t.BufferVisitor=n.BufferVisitor;var i=r(41);t.PEM=i.PEM;var s=r(42);t.ASN1=s.ASN1,t.Class=s.Class,t.Tag=s.Tag,t.BitString=s.BitString},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.BufferVisitor=class{constructor(e,t=0,r=0){this.start=t,this.end=r>t?r:t,this.buf=e}get length(){return this.buf.length}reset(e=0,t=0){return this.start=e,t>=this.start?this.end=t:this.endthis.buf.length){const e=new Error(t);throw e.available=this.buf.length,e.requested=r,e}return this.walk(0),this}mustWalk(e,t){return this.mustHas(e,t),this.walk(e),this}}},function(e,t,r){"use strict";var n=o(r(13)),i=o(r(19)),s=o(r(46)),a=r(1);function o(e){return e&&e.__esModule?e:{default:e}}e.exports={initWeixin:(e={})=>(e.clientType=e.clientType||__ctx__.PLATFORM,(0,a.createApi)(n.default,e)),initAlipay:(e={})=>(e.clientType=e.clientType||__ctx__.PLATFORM,(0,a.createApi)(i.default,e)),initAppleIapPayment:(e={})=>(e.clientType=e.clientType||__ctx__.PLATFORM,(0,a.createApi)(s.default,e))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=a(r(14)),i=a(r(18)),s=r(1);function a(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e={}){if(!e.appId)throw new Error("appId required");if(!e.mchId)throw new Error("mchId required");if(!e.key)throw new Error("key required");e.signType=e.signType||"MD5",this.options=Object.assign({},e),this._protocols=i.default,this.baseUrl="https://api.mch.weixin.qq.com",this.paths={unifiedOrder:"/pay/unifiedorder",orderQuery:"/pay/orderquery",closeOrder:"/pay/closeorder",refund:"/secapi/pay/refund",refundQuery:"/pay/refundquery",downloadBill:"/pay/downloadbill",downloadFundflow:"/pay/downloadfundflow",getsignkey:"/pay/getsignkey"}}_getSign(e,t){const r=n.default.getSignStr(e)+"&key="+this.options.key;switch(t){case"MD5":return n.default.md5(r).toUpperCase();case"HMAC-SHA256":return n.default.sha256(r,this.options.key).toUpperCase();default:throw new Error("signType Error")}}_normalizeResult(e,t){return e.returnMsg=e.returnMsg||("SUCCESS"===e.returnCode?"ok":"fail"),e.errMsg=`payment.${t} ${e.returnMsg.toLowerCase()}`,e}_parse(e,t,r){const i=n.default.parseXML(e);if("FAIL"===i.return_code)throw new Error(""+i.return_msg);if("getSandboxKey"!==t){if(i.appid!==this.options.appId)throw new Error("appId不匹配");if(i.mch_id!==this.options.mchId)throw new Error("mchId不匹配");if(i.sign!==this._getSign(i,r))throw new Error("返回结果签名错误");i.app_id=i.appid,delete i.appid}if("FAIL"===i.result_code)throw new Error(`${i.err_code} ${i.err_code_des}`);return this._normalizeResult((0,s.snake2camelJson)(i),t)}_parseBill(e,t){const r={};if(n.default.isXML(e)){const t=n.default.parseXML(e);if("FAIL"===t.return_code)throw new Error(""+t.return_msg);if("FAIL"===t.result_code)throw new Error(`${t.err_code} ${t.err_code_des}`)}else r.returnCode="SUCCESS",r.content=e;return this._normalizeResult(r,t)}_getPublicParams(){const{appId:e,mchId:t,subAppId:r,subMchId:i}=this.options;return r?{appid:e,mchId:t,nonceStr:n.default.getNonceStr(),subAppid:r,subMchId:i}:{appid:e,mchId:t,nonceStr:n.default.getNonceStr()}}async _requestWxpay(e,t,r=!1){if(r&&!this.options.pfx)throw new Error("此接口需要微信支付证书(请传入pfx字段)");"getSandboxKey"!==t&&await this._initSandbox();const i=e.signType||this.options.signType;(e=(0,s.camel2snakeJson)(e)).sign=this._getSign(e,i);const a={method:"POST",dataType:"text",data:n.default.buildXML(e),timeout:this.options.timeout};r&&(a.pfx=this.options.pfx,a.passphrase=this.options.mchId);const{status:o,data:u}=await uniCloud.httpclient.request(this.options.sandbox?`${this.baseUrl}/sandboxnew${this.paths[t]}`:`${this.baseUrl}${this.paths[t]}`,a);if(200!==o)throw new Error("request fail");return-1!==["downloadBill","downloadFundflow"].indexOf(t)?this._parseBill(u,t):this._parse(u,t,i)}async getSandboxKey(){const e={mchId:this.options.mchId,nonceStr:n.default.getNonceStr()};return await this._requestWxpay(e,"getSandboxKey")}async _initSandbox(){this.options.sandbox&&!this.options.sandboxKey&&(this.options.key=this.options.sandboxKey=await this.getSandboxKey().sandbox_signkey)}async unifiedOrder(e){let t;if(e.tradeType)t=e.tradeType;else switch(this.options.clientType){case"app-plus":t="APP";break;case"mp-weixin":default:t="JSAPI"}const r=this._getPublicParams();r.subAppid&&(e.sub_openid=e.openid),("JSAPI"!==t||r.subAppid)&&delete e.openid;const n={...e,...r,spbillCreateIp:e.spbillCreateIp||"127.0.0.1",tradeType:t};return await this._requestWxpay(n,"unifiedOrder")}_getPayParamsByPrepayId(e,t){let r;switch(this.options.clientType){case"app-plus":r={appid:this.options.subAppId?this.options.subAppId:this.options.appId,noncestr:n.default.getNonceStr(),package:"Sign=WXPay",partnerid:this.options.mchId,prepayid:e,timestamp:""+(Date.now()/1e3|0)},r.sign=this._getSign(r,t);break;case"mp-weixin":default:{const i=""+(Date.now()/1e3|0);r={appId:this.options.subAppId?this.options.subAppId:this.options.appId,nonceStr:n.default.getNonceStr(),package:"prepay_id="+e,timeStamp:i},r.signType=t,r.paySign=this._getSign(r,t),r.timestamp=i;break}}return r}async getOrderInfo(e){let t;if(e.tradeType)t=e.tradeType;else switch(this.options.clientType){case"app-plus":t="APP";break;case"mp-weixin":default:t="JSAPI"}"JSAPI"!==t&&delete e.openid,e.tradeType=t;const r=await this.unifiedOrder(e);if("NATIVE"===t||"MWEB"===t)return r;if(!r.prepayId)throw new Error(r.errMsg||"获取prepayId失败");return this._getPayParamsByPrepayId(r.prepayId,e.signType||this.options.signType)}async orderQuery(e){const t={...e,...this._getPublicParams()};return await this._requestWxpay(t,"orderQuery")}async closeOrder(e){const t={...e,...this._getPublicParams()};return await this._requestWxpay(t,"closeOrder")}async refund(e){const t={...e,...this._getPublicParams()};return await this._requestWxpay(t,"refund",!0)}async refundQuery(e){const t={...e,...this._getPublicParams()};return await this._requestWxpay(t,"refundQuery")}async downloadBill(e){const t={...e,...this._getPublicParams(),billType:e.billType||"ALL"};return await this._requestWxpay(t,"downloadBill")}async downloadFundflow(e){const t={...e,...this._getPublicParams(),signType:e.signType||"HMAC-SHA256",accountType:e.accountType||"Basic"};return await this._requestWxpay(t,"downloadFundflow",!0)}_getNotifyData(e){let t=e.body;return e.isBase64Encoded&&(t=Buffer.from(t,"base64").toString("utf-8")),n.default.parseXML(t)}_verifyNotify(e,t){const r=this._getNotifyData(e);if("FAIL"===r.return_code)throw new Error(`${r.return_code} ${r.return_msg}`);if(r.appid!==this.options.appId)throw new Error("appId不匹配");if(r.mch_id!==this.options.mchId)throw new Error("mchId不匹配");if(t&&r.sign!==this._getSign(r,this.options.signType))throw new Error("通知验签未通过");const n=(0,s.snake2camelJson)(r);return n.appId=n.appid,delete n.appid,n}verifyPaymentNotify(e){return"payment"===this.checkNotifyType(e)&&this._verifyNotify(e,!0)}verifyRefundNotify(e){if("refund"!==this.checkNotifyType(e))return!1;const t=this._verifyNotify(e,!1),r=(0,s.snake2camelJson)(n.default.parseXML(n.default.decryptData(t.reqInfo,n.default.md5(this.options.key))));return Object.assign(t,r),delete t.reqInfo,t}checkNotifyType(e){const t=this._getNotifyData(e);return"total_fee"in t?"payment":"req_info"in t?"refund":"payment"}},e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,i=(n=r(0))&&n.__esModule?n:{default:n},s=r(1);var a={decryptData:function(e,t,r=""){const n=i.default.createDecipheriv("aes-256-ecb",t,r);n.setAutoPadding(!0);let s=n.update(e,"base64","utf8");return s+=n.final("utf8"),s},md5:function(e,t="utf8"){return i.default.createHash("md5").update(e,t).digest("hex")},sha256:function(e,t,r="utf8"){return i.default.createHmac("sha256",t).update(e,r).digest("hex")},getSignStr:function(e){return Object.keys(e).filter(t=>"sign"!==t&&void 0!==e[t]&&""!==e[t]).sort().map(t=>t+"="+((0,s.isPlainObject)(e[t])?JSON.stringify(e[t]):e[t])).join("&")},getNonceStr:function(e=16){let t="";for(;t.length${Object.keys(e).map(t=>(0,s.isPlainObject)(e[t])?`<${t}>`:`<${t}>`).join("")}`},parseXML:function(e){const t=/<(?:xml|root).*?>([\s|\S]*)<\/(?:xml|root)>/.exec(e)[1],r={},n=/<(.*?)>(?:){0,1}<\/.*?>/g;let i=null;for(;i=n.exec(t);)r[i[1]]=i[2];return r},isXML:function(e){return/^(<\?xml.*\?>)?(\r?\n)*(.|\r?\n)*<\/xml>$/i.test(e.trim())}};t.default=a,e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=class{constructor(){this._boundary="------FormDataBaseBoundary"+Math.random().toString(36).substring(2),this.dataList=[]}_addData(e){const t=this.dataList[this.dataList.length-1];"string"==typeof e&&"string"==typeof t?this.dataList[this.dataList.length-1]=t+"\r\n"+e:this.dataList.push(e)}append(e,t,r){this._addData("--"+this._boundary);let n=`Content-Disposition: form-data; name="${e}"`;switch(Buffer.isBuffer(t)){case!0:if(!r.filename||!r.contentType)throw new Error("filename and contentType required");n+=`; filename="${r.filename}"`,this._addData(n),this._addData("Content-Type: "+r.contentType),this._addData(""),this._addData(t);break;default:this._addData(""),this._addData(t)}}getHeaders(e){const t={"Content-Type":"multipart/form-data; boundary="+this._boundary};return Object.assign(t,e)}getBuffer(){let e=Buffer.alloc(0);return this.dataList.forEach(t=>{e=Buffer.isBuffer(t)?Buffer.concat([e,t]):Buffer.concat([e,Buffer.from(""+t)]),e=Buffer.concat([e,Buffer.from("\r\n")])}),e=Buffer.concat([e,Buffer.from("--"+this._boundary+"--")]),e}},e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class n extends Error{constructor(e){super(e.message),this.errMsg=e.message||"",Object.defineProperties(this,{message:{get(){return`errCode: ${e.code||""} | errMsg: `+this.errMsg},set(e){this.errMsg=e}}})}}t.default=n,e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createApi=function(e,t){const r=new e(t);return new Proxy(r,{get:function(e,t){if("function"==typeof e[t]&&0!==t.indexOf("_")&&e._protocols&&e._protocols[t]){const r=e._protocols[t];return async function(n){n=i(n,r.args);let s=await e[t](n);return s=i(s,r.returnValue),s}}return e[t]}})};var n=r(2);function i(e={},t){if(!t||!e)return e;const r=["_pre","_purify","_post"];t._pre&&(e=t._pre(e));let i={shouldDelete:new Set([])};if(t._purify){const e=t._purify;for(const t in e)e[t]=new Set(e[t]);i=Object.assign(i,e)}if((0,n.isPlainObject)(t))for(const s in t){const a=t[s];(0,n.isFn)(a)&&-1===r.indexOf(s)?e[s]=a(e):"string"==typeof a&&-1===r.indexOf(s)&&(e[s]=e[a],i.shouldDelete.add(a))}else(0,n.isFn)(t)&&(e=t(e));if(i.shouldDelete)for(const t of i.shouldDelete)delete e[t];return t._post&&(e=t._post(e)),e}},function(e,t,r){"use strict";function n(e,t){t.forEach(t=>{void 0!==e[t]&&(e[t]=Number(e[t]))})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i={unifiedOrder:{args:{_purify:{shouldDelete:["subject"]}}},getOrderInfo:{args:{_purify:{shouldDelete:["subject"]}}},orderQuery:{returnValue:function(e){n(e,["cashFee","totalFee","couponCount"]),e.couponList=[];const t=e.couponCount||0;for(let r=0;r-1){const n=encodeURIComponent(t[e]);r=`${r}${r.includes("?")?"&":"?"}${e}=${n}`,delete t[e]}return{execParams:t,url:r}}async getOrderInfo(e){let t;if(e.tradeType)t=e.tradeType,delete e.tradeType;else switch(this.options.clientType){case"app-plus":t="APP";break;case"mp-alipay":default:t="JSAPI"}switch(t){case"APP":{delete e.buyerId;const t={};e.notifyUrl&&(t.notifyUrl=e.notifyUrl,delete e.notifyUrl),t.bizContent=e;const r=this._getSign("alipay.trade.app.pay",t),{url:n,execParams:i}=this.formatUrl("",r);return(n+"&biz_content="+encodeURIComponent(i.biz_content)).substr(1)}case"JSAPI":{const t=await this.unifiedOrder(e);if(!t.tradeNo)throw new Error("获取支付宝交易号失败,详细信息为:"+JSON.stringify(t));return t.tradeNo}case"NATIVE":return await this._request("alipay.trade.precreate",Object.assign({sellerId:this.options.mchId},e));default:throw new Error("不支持的支付类型,支付宝支付下单仅支持App、支付宝小程序、网站二维码支付")}}async orderQuery(e){return await this._request("alipay.trade.query",e)}async cancelOrder(e){return await this._request("alipay.trade.cancel",e)}async closeOrder(e){return await this._request("alipay.trade.close",e)}async refund(e){return await this._request("alipay.trade.refund",e)}async refundQuery(e){return await this._request("alipay.trade.fastpay.refund.query",e)}notifyRSACheck(e,t,r){const n=Object.keys(e).sort().filter(e=>e).map(t=>{let r=e[t];return"[object String]"!==Array.prototype.toString.call(r)&&(r=JSON.stringify(r)),`${t}=${r}`}).join("&");return i.default.createVerify(l[r]).update(n,"utf8").verify(this.config.alipayPublicKey,t,"base64")}_getNotifyData(e){if(!e.headers)throw new Error("通知格式不正确");let t;for(const r in e.headers)"content-type"===r.toLowerCase()&&(t=e.headers[r]);if(!1!==e.isBase64Encoded&&-1===t.indexOf("application/x-www-form-urlencoded"))throw new Error("通知格式不正确");return s.default.parse(e.body)}_verifyNotify(e){const t=this._getNotifyData(e);return!!this.checkNotifySign(t)&&(0,n.snake2camelJson)(t)}verifyPaymentNotify(e){return"payment"===this.checkNotifyType(e)&&this._verifyNotify(e)}verifyRefundNotify(e){return"refund"===this.checkNotifyType(e)&&this._verifyNotify(e)}checkNotifyType(e){return"refund_fee"in this._getNotifyData(e)?"refund":"payment"}}t.default=f,e.exports=t.default},function(e,t){e.exports=require("querystring")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5),i=r(22),s=r(0),a=r(23),o=r(24),u=r(25),c=r(27),l=r(28),f=r(7),h=r(8),p=r(36),d=r(44);t.default=class{constructor(e){if(!e.appId)throw Error("config.appId is required");if(!e.privateKey)throw Error("config.privateKey is required");const t="PKCS8"===e.keyType?"PRIVATE KEY":"RSA PRIVATE KEY";e.privateKey=this.formatKey(e.privateKey,t),e.appCertPath||e.appCertContent?(e.appCertSn=i.empty(e.appCertContent)?p.getSNFromPath(e.appCertPath,!1):p.getSN(e.appCertContent,!1),e.alipayCertSn=i.empty(e.alipayPublicCertContent)?p.getSNFromPath(e.alipayPublicCertPath,!1):p.getSN(e.alipayPublicCertContent,!1),e.alipayRootCertSn=i.empty(e.alipayRootCertContent)?p.getSNFromPath(e.alipayRootCertPath,!0):p.getSN(e.alipayRootCertContent,!0),e.alipayPublicKey=i.empty(e.alipayPublicCertContent)?p.loadPublicKeyFromPath(e.alipayPublicCertPath):p.loadPublicKey(e.alipayPublicCertContent),e.alipayPublicKey=this.formatKey(e.alipayPublicKey,"PUBLIC KEY")):e.alipayPublicKey&&(e.alipayPublicKey=this.formatKey(e.alipayPublicKey,"PUBLIC KEY")),this.config=Object.assign({urllib:a,gateway:"https://openapi.alipay.com/gateway.do",timeout:5e3,camelcase:!0,signType:"RSA2",charset:"utf-8",version:"1.0"},l(e,{deep:!0})),this.sdkVersion="alipay-sdk-nodejs-"+d.version}formatKey(e,t){const r=e.split("\n").map(e=>e.trim());return r[0].includes(t)&&r.shift(),r[r.length-1].includes(t)&&r.pop(),`-----BEGIN ${t}-----\n${r.join("")}\n-----END ${t}-----`}formatUrl(e,t){let r=e;const n=["app_id","method","format","charset","sign_type","sign","timestamp","version","notify_url","return_url","auth_token","app_auth_token","appCertSn","alipayRootCertSn"];for(const e in t)if(n.indexOf(e)>-1){const n=encodeURIComponent(t[e]);r=`${r}${r.includes("?")?"&":"?"}${e}=${n}`,delete t[e]}return{execParams:t,url:r}}multipartExec(e,t={}){const r=this.config;let s={},a={};const p=t.log&&i.fn(t.log.info)?t.log.info:null,d=t.log&&i.fn(t.log.error)?t.log.error:null;t.formData.getFields().forEach(e=>{s[e.name]=e.value,a[e.name]=e.value}),s=l(s,{deep:!0}),a=f(a),t.formData.getFiles().forEach(e=>{const t=c(e.fieldName);a[t]=u.isValid(e.path)?o(e.path):n.createReadStream(e.path)});const y=h.sign(e,s,r),{url:g}=this.formatUrl(r.gateway,y);return p&&p("[AlipaySdk]start exec url: %s, method: %s, params: %s",g,e,JSON.stringify(s)),new Promise((n,i)=>{o.post({url:g,formData:a,json:!1,timeout:r.timeout,headers:{"user-agent":this.sdkVersion}},(s,{},a)=>{s&&(s.message="[AlipaySdk]exec error",d&&d(s),i(s)),p&&p("[AlipaySdk]exec response: %s",a);const o=JSON.parse(a),u=e.replace(/\./g,"_")+"_response",c=o[u];if(c){!t.validateSign||this.checkResponseSign(a,u)?n(r.camelcase?l(c,{deep:!0}):c):i({serverResult:a,errorMessage:"[AlipaySdk]验签失败"})}i({serverResult:a,errorMessage:"[AlipaySdk]HTTP 请求错误"})})})}pageExec(e,t={}){let r={alipaySdk:this.sdkVersion};const n=this.config,s=t.log&&i.fn(t.log.info)?t.log.info:null;t.formData.getFields().forEach(e=>{r[e.name]=e.value}),r=l(r,{deep:!0});const a=h.sign(e,r,n),{url:o,execParams:u}=this.formatUrl(n.gateway,a);return s&&s("[AlipaySdk]start exec url: %s, method: %s, params: %s",o,e,JSON.stringify(r)),"get"===t.formData.getMethod()?new Promise(e=>{const t=Object.keys(u).map(e=>`${e}=${encodeURIComponent(u[e])}`);e(`${o}&${t.join("&")}`)}):new Promise(e=>{const t="alipaySDKSubmit"+Date.now();e(`\n
\n ${Object.keys(u).map(e=>``).join("")}\n
\n