临时停车.md 3.6 KB

【项目】

https://kerryprops.atlassian.net/browse/KIP-5945 https://kerryprops.atlassian.net/browse/KIP-5946

crm小程序端,

逻辑部分:获取用户的一些信息 groupId、kipUserId、mallId、(小程序端生成uuid)

在getZindexForHomePage接口中,设置 临时停车的h5地址并且修改 linkType(管理端配置)

微信支付

接收h5端拼接的微信支付信息,发起微信支付,将结果通过websocket返回给h5端

websocket通信协议

说明:2端中间的通信数据,必须为 Object对象。通信时会统一加密通信数据,解密之后的数据格式如下;

数据类型说明:

{
	type: string   事件类型
	options: any{}  通信时携带的数据,为 Object 类型
}

1、h5端打开微信小程序页面

type:'openWxPage'
options: {
  url: string 必须是完整地址
  data: any{} 传输的数据
}

2、微信小程序打开h5端页面

type:'openHtmlPage'
options: {
  url: string 必须是完整地址
  data: any{} 传输的数据
}

3、h5端发起微信支付

type:'openWxPay'
options: {
  //... 发起支付时所需的数据
}

4、微信支付操作结束通知h5端(包含未支付和支付成功)

type:'wxPayDone'
options: {
  //...支付结束之后的回调数据
}

加解密

import CryptoJS from 'crypto-js'  
const key = CryptoJS.enc.Utf8.parse("2B3C13E421D12ACF");  //十六位十六进制数作为密钥  
const iv = CryptoJS.enc.Utf8.parse('ACE23C13D4B21F12');   //十六位十六进制数作为密钥偏移量  
  
//加密方法  
export function Encrypt(word) {  
  let srcs = CryptoJS.enc.Utf8.parse(word);  
  let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });  
  return encrypted.ciphertext.toString().toUpperCase();  
}  
  
//解密方法  
export function Decrypt(word) {  
  let encryptedHexStr = CryptoJS.enc.Hex.parse(word);  
  let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);  
  let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });  
  let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);  
  return decryptedStr.toString();  
}

uni socket协议

https://uniapp.dcloud.net.cn/api/request/websocket.html#connectsocket

html socket协议

node socket协议实现原理

http://zhenhua-lee.github.io/node/socket.html

webview 页面能力

https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

WebSocket-微信小程序

地址

流程图(废弃)

![[临时停车H5流程图.svg]]

说明: 1、用户(进|出)停车场扫码 2、小程序端判断为临时停车,向后端发起请求,获取临时停车的(h5地址+token|token) 3、进入小程序端的webview 4、用户离开停车场时,在H5端发起微信支付。通过websocket通知小程序端吊起微信支付,获取在h5端发起微信支付。支付完成之后,用户离开停车场。