| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- import Request from '@/common/request.js';
- let request = new Request().http
- const api = {
- // 支付
- zfbPayment: '/app/live/liveOrder/aliPayment', // 支付宝付款
- weChatPayment: '/app/live/liveOrder/weChatPayment', // 微信付款
- // updateConfirm: (orderId, type) => `/app/live/liveOrder/updateConfirm/${orderId}/${type} `, // 取消/支付订单确认
- }
- // 支付
- // 支付宝付款
- export function zfbPayment(data) {
- return request(api.zfbPayment, data, 'POST', 'application/json;charset=UTF-8')
- }
- // 微信付款
- // export function weChatPayment(data) {
- // return request(api.weChatPayment, data, 'POST', 'application/json;charset=UTF-8')
- // }
- /**
- * 微信支付(全平台适配简化版)
- * @param {String} orderId 订单ID
- * @param {Number} amount 金额(单位:分)
- * @returns {Promise}
- */
- // export function weChatPayment(orderId, amount) {
- export function weChatPayment(data) {
- return new Promise((resolve, reject) => {
- let res = {
- "code": 200,
- "msg": "success",
- "payType": 1,
- "result": {"timeStamp":"1757906581","package":"prepay_id=wx151123017811185ff21654a23ca0660000","paySign":"XZOdWmeUE4vtrsTiBcgc830dI5cTxDMOld4nEodSImjtnxNP7g4ehBCYBT9lSXQviX2CAqYfYS3Nazt81jCz3U8rjcxvf0IP1rKzesYHozTwkTh9PfOMu5kwBIf48pF1pG8P4w02cBMvfmEvN8c9ISc1Lx528IqV/pC12cxGTNBktH8UFFU5hdEmbpu9sI+4VfDpgroHs5y8xx2DK072LulF8g9xQvP2Hif/PFuEphBRmdxAN7Cp+gX6kHYmIijPe10eI0dTG/L0nR/r3UPUt9vubUnLW0cnYnimQ0FW5A1ANXN4LdCO+R3jFONsu99qpw/7uqrpJ1vUVpEvLu8fTg==","appId":"wx503cf8ab31f83dd4","signType":"RSA","nonceStr":"RKjdY0O5yroLPnEjXmTMtAEFIq2AhD63"}
- }
- invokePayment(res.data)
- .then(resolve)
- .catch(err => {
- handlePaymentError(err);
- reject(err);
- });
- // 1. 获取支付参数
- // totalFee: amount, // platform: getPlatform() // 自动识别平台
- // request(api.weChatPayment, data, 'POST', 'application/json;charset=UTF-8')
- // .then(res => {
- // // 2. 调用平台支付
- // invokePayment(res.data)
- // .then(resolve)
- // .catch(err => {
- // handlePaymentError(err);
- // reject(err);
- // });
- // })
- // .catch(err => {
- // handlePaymentError(err);
- // reject(err);
- // });
- });
- }
- // ==================== 内部方法 ====================
- function getPlatform() {
- // #ifdef MP-WEIXIN
- return 'miniprogram';
- // #endif
- // #ifdef APP-PLUS
- return 'app';
- // #endif
- // #ifdef H5
- return 'h5';
- // #endif
- }
- function invokePayment(payData) {
- return new Promise((resolve, reject) => {
- // #ifdef MP-WEIXIN
- uni.requestPayment({
- provider: 'wxpay',
- ...payData, // 直接展开小程序所需参数
- success: (res) => {
- uni.showToast({
- title: '支付成功'
- });
- resolve(res);
- },
- fail: (err) => {
- reject(new Error(formatError(err)));
- }
- });
- // #endif
- // #ifdef APP-PLUS
- uni.requestPayment({
- provider: 'wxpay',
- orderInfo: payData.orderInfo,
- success: resolve,
- fail: (err) => {
- reject(new Error(formatError(err)));
- }
- });
- // #endif
- // #ifdef H5
- if (typeof WeixinJSBridge === 'undefined') {
- return reject(new Error('请在微信浏览器中打开'));
- }
- WeixinJSBridge.invoke(
- 'getBrandWCPayRequest',
- payData,
- (res) => {
- if (res.err_msg === 'get_brand_wcpay_request:ok') {
- resolve(res);
- } else {
- reject(new Error(res.err_msg || '支付失败'));
- }
- }
- );
- // #endif
- });
- }
- function formatError(err) {
- if (err.errMsg) {
- if (err.errMsg.includes('cancel')) return '支付已取消';
- if (err.errMsg.includes('fail')) return '支付失败';
- }
- return err.message || '支付异常';
- }
- function handlePaymentError(err) {
- console.error('[支付错误]', err);
- uni.showToast({
- title: err.message,
- icon: 'none',
- duration: 3000
- });
- }
- // 微信
- // export function userAddr(userId, data={}) {
- // return request(api.userAddr(userId), data, 'GET', 'application/json;charset=UTF-8')
- // }
|