/* * @Author: ch * @Date: 2022-04-29 14:26:10 * @LastEditors: ch * @LastEditTime: 2022-05-05 19:16:29 * @Description: file content */ import { ApiPostWxH5Pay, ApiPostWxJsApiPay } from '@/common/api/wx'; export const Wxpay = async ({orderId,openId})=>{ // 有openId则表示在微信浏览器内 if(openId) { // 微信JSAPI const {error, result} = await ApiPostWxJsApiPay({orderId,openId}); if(error){ uni.$u.toast(error.message); return false; } /* * 公众号id appId 是 String(16) wx8888888888888888 时间戳 timeStamp 是 String(32) 1414561699 当前的时间 随机字符串 nonceStr 是 String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串,不长于32位。推荐随机数生成算法 订单详情扩展字符串 package 是 String(128) prepay_id=123456789 统一下单接口返回的prepay_id参数值,提交格式如:prepay_id=*** 签名方式 signType 是 String(32) MD5 签名类型,默认为MD5,支持HMAC-SHA256和MD5。注意此处需与统一下单的签名类型一致 签名 paySign 是 String(64) C380BEC2BFD727A4B6845133519F3AD6 签名 */ const par = result.dataInfo; WeixinJSBridge.invoke('getBrandWCPayRequest', { appId : par.appId, timeStamp : par.timeStamp, nonceStr : par.nonceStr, package : par.packageValue, signType : par.signType, paySign : par.paySign }, res => { if(res.err_msg !== 'get_brand_wcpay_request:cancel'){ uni.navigateTo({ url : `/payResult?orderId=${orderId}&payType=wxjsapi` }); } }) }else{ // h5支付 const {error, result} = await ApiPostWxH5Pay({orderId}); if(error){ uni.$u.toast(error.message); return false; } const redirect_url = decodeURIComponent(`https://you-app.mashibing.com/payResult?orderId=${orderId}&payType=wxh5`); window.location.href = `${result.dataInfo.payUrl}&redirect_url=${redirect_url}`; } }