123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- import {
- requestEncode,
- responseDecode
- } from "./protoMap"
- //import util from '../common/util'
- const URL = 'https://test.ohplay.radio1964.net/Ohplay/Web/HttpToTcp';
- function post(request) {
- let requestBuffer = requestEncode(request)
- return uni.request({
- url: URL,
- header: {
- "X-Requested-With": "XMLHttpRequest",
- "Content-Type": "application/x-protobuf",
- 'Token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyaWQiOjY1MDYzMywibmFtZSI6IjE4MTI2NDQ3MDE1IiwiZXhwIjoxNjIyODg0NTA1fQ.f7jIm0856-VnynA99MBoA2Dl1pePxI0HT_ECsUp5QHA'
- },
- method: 'POST',
- timeout: 15000,
- dataType: 'protobuf',
- responseType: 'text',
- data: requestBuffer
- }).then((res) => {
- for (let response of res) {
- if (response !== null && response !== undefined && response.statusCode === 200) {
- try {
- console.log(response);
- let resJson = JSON.parse(response.data) //转化成json对象
- console.log(resJson);
- if (resJson.code === 0) {
- let base64Str = resJson.data;
- //let base64Str = 'DQMAAAAVAQAAAB0CAAAAJeoDAABKlgEKBBICb2sSjQFleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKVmMyVnlhV1FpT2pZNE5EQXhNQ3dpYm1GdFpTSTZJalFpTENKbGVIQWlPakUyTWpNME9EWTRNamg5LlNzRlgzdWJ5UFp4NWRCLXJzZHNDd3NGcjlpLUpJczFXeWJBS2pBS3pwdzQ='
- let buffer = Buffer.from(base64Str, 'base64')
- let data = responseDecode(buffer)
- console.log(data);
- let code = 0
- let msg = "success"
- if (typeof data.errInfo !== 'undefined') {
- code = data.errInfo.errorCode
- if (typeof data.errInfo.errorMessage === 'string') {
- msg = data.errInfo.errorMessage
- } else {
- msg = Buffer.from(data.errInfo.errorMessage).toString()
- }
- }
- return {
- code: code,
- msg: msg,
- data: data
- }
- } else {
- return {
- code: resJson.code,
- msg: resJson.info
- }
- }
- } catch (e) {
- return {
- code: -1,
- msg: e.toString()
- }
- }
- }
- }
- })
- }
- const policy =
- '{"expiration": "2120-01-01T12:00:00.000Z","conditions": [["content-length-range", 0, 104857600]]}';
- const OSSAccessKeyId = "LTAICUWe9r9tRcPB";
- const accessKeySecret = "gCZSuqdztp6X1n2xMaCqzhnBSWVJv6";
- //这个是policy编码成base64,使用base64编码的方法需要引入require("crypto-js"); 一下子多了300多kb,所以这里直接写死
- const policyBase64 = "eyJleHBpcmF0aW9uIjogIjIxMjAtMDEtMDFUMTI6MDA6MDAuMDAwWiIsImNvbmRpdGlvbnMiOiBbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDEwNDg1NzYwMF1dfQ=="
- //这个是policyBase64经过accessKeySecret的HmacSHA1 加密,然后再base64,需要引入require("crypto-js"); 一下子多了300多kb,所以这里直接写死
- const signature = "h2Kwvb9pXKgtWUuw99iHrHQV9fk="
- const OSS_URL = 'https://airsmart-photo1.oss-cn-shanghai.aliyuncs.com'
- /**
- * 这个是加密的方法
- * 参考用的
- */
- function HmacSHA1test() {
- //const HmacSHA1 = require("crypto-js/hmac-sha1");
- let policyBase64 = util.encodeBase64(policy)
- console.log(policyBase64);
- // let str = util.decodeBase64(policyBase64);
- // console.log(str);
- //获取加密参数
- const sha1 = HmacSHA1(policyBase64, accessKeySecret);
- console.log(`sha1 = ${sha1}`);
- const sign = base64.stringify(sha1);
- console.log(`sign = ${sign}`);
- }
- function uploadFile(filePath, contentType) {
- let arr = filePath.split('.')
- let suffix = arr[arr.length - 1]
- let date = new Date();
- let dateStr = `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()}`
- let ossPath = `wx/${dateStr}/${date.getTime()}.${suffix}`
- return uni.uploadFile({
- url: OSS_URL,
- filePath: filePath,
- name: 'file',
- formData: {
- 'key': ossPath,
- 'success_action_status': 200,///如果该域的值设置为200或者204,OSS返回一个空文档和相应的状态码。
- 'OSSAccessKeyId': OSSAccessKeyId,
- 'policy': policyBase64,
- 'Signature': signature,
- 'Content-Type': contentType,
- }
- }).then((res) => {
- console.log(res);
- if (res[1].statusCode === 200) {
- return `${OSS_URL}/${ossPath}`
- } else {
- throw new Error(`uoload failed statusCode :${res[1].statusCode}`)
- }
- });
- //'image/jpeg'
- }
- module.exports = {
- post: post,
- uploadFile: uploadFile,
- }
|