Browse Source

对接H5支付

master
梁欣 1 year ago
parent
commit
53d2c82764
  1. 2
      core/payment/alipay.js
  2. 23
      pages/checkout/cashier/index.vue
  3. 12
      pages/goods/list.vue
  4. 4
      pages/index/index.vue
  5. 5
      pages/order/index.vue

2
core/payment/alipay.js

@ -6,7 +6,7 @@ import { PayMethodEnum } from '@/common/enum/payment'
* 发起支付请求 (用于H5) * 发起支付请求 (用于H5)
* @param {Object} option 参数 * @param {Object} option 参数
*/ */
const paymentAsH5 = option => {
export const paymentAsH5 = option => {
const options = { formHtml: '', ...option } const options = { formHtml: '', ...option }
// 跳转到支付宝支付页 // 跳转到支付宝支付页
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

23
pages/checkout/cashier/index.vue

@ -44,11 +44,15 @@
<!-- 支付确认弹窗 --> <!-- 支付确认弹窗 -->
<!-- #ifdef H5 --> <!-- #ifdef H5 -->
<u-modal v-if="tempUnifyData" v-model="showConfirmModal" title="支付确认" show-cancel-button confirm-text="已完成支付"
<u-modal v-if="tempUnifyData" v-model="showConfirmModal" title="支付确认" show-cancel-button
confirm-text="已完成支付"
:confirm-color="appTheme.mainBg" negative-top="100" :asyncClose="true" :confirm-color="appTheme.mainBg" negative-top="100" :asyncClose="true"
@confirm="onTradeQuery(tempUnifyData.outTradeNo, tempUnifyData.method)"> @confirm="onTradeQuery(tempUnifyData.outTradeNo, tempUnifyData.method)">
<view class="modal-content"> <view class="modal-content">
<text>请在{{ PayMethodClientNameEnum[tempUnifyData.method] }}内完成支付如果您已经支付成功请点击已完成支付按钮</text>
<text>请在{{
PayMethodClientNameEnum[tempUnifyData.method]
}}内完成支付如果您已经支付成功请点击已完成支付按钮
</text>
</view> </view>
</u-modal> </u-modal>
<!-- #endif --> <!-- #endif -->
@ -74,6 +78,7 @@
PayStatusEnum PayStatusEnum
} from '@/common/enum/order' } from '@/common/enum/order'
import * as CashierApi from '@/api/cashier' import * as CashierApi from '@/api/cashier'
import {paymentAsH5} from "../../../core/payment/alipay";
// //
const PayMethodIconEnum = { const PayMethodIconEnum = {
@ -228,7 +233,8 @@
CashierApi.orderPay(app.orderId, { CashierApi.orderPay(app.orderId, {
method: app.curPaymentItem.method, method: app.curPaymentItem.method,
client: app.platform, client: app.platform,
extra: app.getExtraAsUnify(app.curPaymentItem.method)
extra: app.getExtraAsUnify(app.curPaymentItem.method),
token: uni.getStorageSync('t_token')
}) })
.then(result => app.onSubmitCallback(result)) .then(result => app.onSubmitCallback(result))
.finally(err => { .finally(err => {
@ -259,7 +265,10 @@
// //
if (method === PayMethodEnum.ALIPAY.value) { if (method === PayMethodEnum.ALIPAY.value) {
console.log('paymentData', JSON.stringify(paymentData)) console.log('paymentData', JSON.stringify(paymentData))
Alipay.payment(paymentData)
// Alipay.payment(paymentData)
// .then(res => app.onPaySuccess(res))
// .catch(err => app.onPayFail(err))
Alipay.paymentAsH5({formHtml: result.data.data})
.then(res => app.onPaySuccess(res)) .then(res => app.onPaySuccess(res))
.catch(err => app.onPayFail(err)) .catch(err => app.onPayFail(err))
} }
@ -276,7 +285,6 @@
}) })
} else { } else {
console.log(res, 'res') console.log(res, 'res')
app.$toast('非微信环境逻辑') app.$toast('非微信环境逻辑')
@ -311,11 +319,6 @@
}, 500) }, 500)
// Wechat.payment({ orderKey: app.orderId, ...paymentData }) // Wechat.payment({ orderKey: app.orderId, ...paymentData })
// .then(res => app.onPaySuccess(res)) // .then(res => app.onPaySuccess(res))
// .catch(err => app.onPayFail(err)) // .catch(err => app.onPayFail(err))

12
pages/goods/list.vue

@ -16,6 +16,9 @@
<view class="sort-item" :class="{ active: sortType === 'all' }" @click="handleSortType('all')"> <view class="sort-item" :class="{ active: sortType === 'all' }" @click="handleSortType('all')">
<text>综合</text> <text>综合</text>
</view> </view>
<view class="sort-item" :class="{ active: sortType === 'category' }" @click="changeCategory">
<text>{{ categoryText }}</text>
</view>
<view class="sort-item" :class="{ active: sortType === 'sales' }" @click="handleSortType('sales')"> <view class="sort-item" :class="{ active: sortType === 'sales' }" @click="handleSortType('sales')">
<text>销量</text> <text>销量</text>
</view> </view>
@ -180,7 +183,10 @@
}, },
// 4 // 4
noMoreSize: 4, noMoreSize: 4,
}
},
mainCategoryId: 0, // id
categoryText: '全部分类',
childCategoryList: []
} }
}, },
@ -286,6 +292,10 @@
app.mescroll.resetUpScroll() app.mescroll.resetUpScroll()
}, },
changeCategory(category){
},
// //
handleShowView() { handleShowView() {
const app = this const app = this

4
pages/index/index.vue

@ -399,8 +399,8 @@
console.log('logut') console.log('logut')
}) })
uni.getStorageSync('t_id', options.id)
uni.getStorageSync('t_token', options.token)
uni.setStorageSync('t_id', options.id)
uni.setStorageSync('t_token', options.token)
_this.getUserInfo(options.id, options.token) _this.getUserInfo(options.id, options.token)
} }

5
pages/order/index.vue

@ -401,7 +401,10 @@
content: '确认要取消该订单吗?', content: '确认要取消该订单吗?',
success(o) { success(o) {
if (o.confirm) { if (o.confirm) {
OrderApi.cancel(orderId)
OrderApi.cancel(orderId, {
token: uni.getStorageSync('t_token'),
userId: uni.getStorageSync('t_id'),
})
.then(result => { .then(result => {
// //
app.$toast(result.message) app.$toast(result.message)

Loading…
Cancel
Save