// #ifdef H5
import weixin from 'jweixin-module'
import {
	isAndroid
} from './tools'
import store from '../store'
import Cache from './cache'
import $http from './https'
const Wechath5 = {
	//获取微信配置url
	signLink() {
		if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') {
			window.entryUrl = location.href.split('#')[0]
		}
		return isAndroid() ? location.href.split('#')[0] : window.entryUrl
	},
	//微信sdk配置
	config() {
		return new Promise((resolve) => {
			// apiJsConfig().then((res) => {
			// weixin.config({
			//     debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
			//     appId: res.appId, // 必填，公众号的唯一标识
			//     timestamp: res.timestamp, // 必填，生成签名的时间戳
			//     nonceStr: res.nonceStr, // 必填，生成签名的随机串
			//     signature: res.signature, // 必填，签名
			//     jsApiList: res.jsApiList // 必填，需要使用的JS接口列表
			// })
			//     resolve()
			// })
		})
	},

	//获取微信登录url
	getWxUrl() {
		// apiCodeUrlGet().then((res) => {
		//     location.href = res.url
		// })
	},

	//微信授权
	authLogin(code, pubAccCode) {
		return new Promise((resolve, reject) => {
			const data = {
				params: [{
					code,
					pubAccCode
				}]
			}
			$http.post("urlS", this, {
				code: "01020001",
				data: data,
				namespace: "N",
				success: function(res) {
					console.log('01020001 res === ', res)
					let newUserData = {};
					let userData = Cache.get('userData');
					if (userData && userData.openid) delete userData.openid
					if (+res.errorCode === 0) {
						newUserData = {
							...userData,
							openID: res.result.openid,
							pubAccCode: res.result.minPrgCode || pubAccCode,
							session_key: res.result.session_key,
							...(delete res.result.open_id, res.result)
						};
						resolve()
					} else {
						newUserData = {
							...userData,
							openID: "",
							pubAccCode: "",
							session_key: ""
						};
						reject()
					}
					console.log("获取openID成功", newUserData)
					Cache.set('userData', {
						...newUserData
					});
				}
			});
		})
	},

	//微信分享
	share(option) {
		weixin.ready(() => {
			const {
				shareTitle,
				shareLink,
				shareImage,
				shareDesc
			} = option
			// 发送给好友（旧）
			weixin.onMenuShareAppMessage({
				title: shareTitle, // 分享标题
				link: shareLink, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
				imgUrl: shareImage, // 分享图标
				success: function(res) {
					// 设置成功
				}
			})
			// 分享到朋友圈（旧）
			weixin.onMenuShareTimeline({
				title: shareTitle, // 分享标题
				link: shareLink, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
				imgUrl: shareImage, // 分享图标
				success: function(res) {
					// 设置成功
				}
			})
			weixin.updateTimelineShareData({
				title: shareTitle, // 分享标题
				link: shareLink, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
				imgUrl: shareImage, // 分享图标
				success: function(res) {
					// 设置成功
				}
			})
			// 发送给好友
			weixin.updateAppMessageShareData({
				title: shareTitle, // 分享标题
				link: shareLink, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
				imgUrl: shareImage, // 分享图标
				desc: shareDesc,
				success: function(res) {
					// 设置成功
				}
			})
			// 发送到tx微博
			weixin.onMenuShareWeibo({
				title: shareTitle, // 分享标题
				link: shareLink, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
				imgUrl: shareImage, // 分享图标
				desc: shareDesc,
				success: function(res) {
					// 设置成功
				}
			})
		})
	},
	//微信公众号支付
	wxPay(data) {
		return new Promise((reslove, reject) => {
			console.log('jweixin ready')
			if (typeof window.WeixinJSBridge == "undefined") {
				uni.showToast({
					icon: "none",
					title: "请在微信浏览器中打开"
				})
				return
			} else {
				window.WeixinJSBridge.invoke('getBrandWCPayRequest', {
					"appId": data.appId,     //公众号ID，由商户传入     
					"timeStamp": data.timeStamp,     //时间戳，自1970年以来的秒数     
					"nonceStr": data.nonceStr,      //随机串     
					"package": data.package,
					"signType": data.signType,     //微信签名方式：     
					"paySign": data.paySign //微信签名 
				}, (res) => {
					if (res.err_msg == "get_brand_wcpay_request:ok") {
						// 使用以上方式判断前端返回,微信团队郑重提示：
						//res.err_msg将在用户支付成功后返回ok，但并不保证它绝对可靠，商户需进一步调用后端查单确认支付结果。
						reslove(res)
					} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
						reject(res)
					} else if (res.err_msg == "get_brand_wcpay_request:fail") {
						reject(res)
					}
				});
			}
		})
	},
	getWxAddress() {
		return new Promise((reslove, reject) => {
			weixin.ready(() => {
				weixin.openAddress({
					success: (res) => {
						reslove(res)
					}
				})
			})
		})
	},
	reviceTransfer(mchId, appId, packageInfo) {
		return new Promise((reslove, reject) => {
			weixin.ready(() => {
				weixin.checkJsApi({
					jsApiList: ['requestMerchantTransfer'],
					success: function(res) {
						if (res.checkResult['requestMerchantTransfer']) {
							WeixinJSBridge.invoke(
								'requestMerchantTransfer', {
									mchId,
									appId,
									package: packageInfo
								},
								function(res) {
									if (res.err_msg ===
										'requestMerchantTransfer:ok') {
										reslove(res.err_msg)
									} else {
										reject(res.err_msg)
									}
								}
							)
						} else {
							alert('你的微信版本过低，请更新至最新版本。')
						}
					}
				})
			})
		})
	},
}
export default Wechath5;
// #endif