Browse Source

测试支付

test
Enzo 4 years ago
parent
commit
d32d550b29
  1. 2
      common/api.js
  2. 10
      common/styles/iconfont.css
  3. 6
      pages.json
  4. 44
      pages/goodsDetail/index.vue
  5. 2
      pages/login/index.vue
  6. 98
      pages/order/confirm_atonce.vue
  7. 74
      pages/order/confirm_order.vue

2
common/api.js

@ -71,3 +71,5 @@ export const API_DELCOLLECT = '/api/fav/delete'; //删除收藏
export const API_SEARCH_GOODS = '/api/agent_product/search'//搜索接口 export const API_SEARCH_GOODS = '/api/agent_product/search'//搜索接口
export const API_LF_PAY= '/api/share_pay'//领峰支付

10
common/styles/iconfont.css

@ -1,8 +1,8 @@
@font-face { @font-face {
font-family: "lf-iconfont"; /* Project id 2651793 */ font-family: "lf-iconfont"; /* Project id 2651793 */
src: url('//at.alicdn.com/t/font_2651793_eou9l1nql5f.woff2?t=1631006175744') format('woff2'),
url('//at.alicdn.com/t/font_2651793_eou9l1nql5f.woff?t=1631006175744') format('woff'),
url('//at.alicdn.com/t/font_2651793_eou9l1nql5f.ttf?t=1631006175744') format('truetype');
src: url('//at.alicdn.com/t/font_2651793_2rvexfo9ayn.woff2?t=1631096351657') format('woff2'),
url('//at.alicdn.com/t/font_2651793_2rvexfo9ayn.woff?t=1631096351657') format('woff'),
url('//at.alicdn.com/t/font_2651793_2rvexfo9ayn.ttf?t=1631096351657') format('truetype');
} }
.lf-iconfont { .lf-iconfont {
@ -13,6 +13,10 @@
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
.lf-icon-dizhi:before {
content: "\e814";
}
.lf-icon-zhankaishangxia:before { .lf-icon-zhankaishangxia:before {
content: "\e7b1"; content: "\e7b1";
} }

6
pages.json

@ -58,6 +58,12 @@
"enablePullDownRefresh": true "enablePullDownRefresh": true
} }
}, },
{
"path": "pages/order/confirm_atonce",
"style": {
"navigationBarTitleText": "立即支付"
}
},
{ {
"path": "pages/order/confirm_order", "path": "pages/order/confirm_order",
"style": { "style": {

44
pages/goodsDetail/index.vue

@ -46,6 +46,13 @@
</u-table> </u-table>
</view> </view>
</view> </view>
<view class="goods-detail" @click="openMap(goods_detail.product.extends.field_2.address,goods_detail.product.extends.field_2.latitude,goods_detail.product.extends.field_2.longitude)">
<view class="lf-font-32 lf-font-bold lf-m-b-20">{{goods_detail.product.extends.field_2.name}}</view>
<view class="lf-row-between">
<view class="lf-line-2 lf-font-28 lf-color-333">{{goods_detail.product.extends.field_2.address}}</view>
<view class="lf-iconfont lf-icon-dizhi lf-color-blue"></view>
</view>
</view>
<view class="goods-detail"> <view class="goods-detail">
<view class="lf-font-32 lf-font-bold lf-m-b-20">包含项目</view> <view class="lf-font-32 lf-font-bold lf-m-b-20">包含项目</view>
<view class="lf-flex-column"> <view class="lf-flex-column">
@ -77,6 +84,13 @@
</u-table> </u-table>
</view> </view>
</view> </view>
<view class="goods-detail" @click="openMap(goods_detail.product.extends.field_3.address,goods_detail.product.extends.field_3.latitude,goods_detail.product.extends.field_3.longitude)">
<view class="lf-font-32 lf-font-bold lf-m-b-20">{{goods_detail.product.extends.field_3.name}}</view>
<view class="lf-row-between">
<view class="lf-line-2 lf-font-28 lf-color-333">{{goods_detail.product.extends.field_3.address}}</view>
<view class="lf-iconfont lf-icon-dizhi lf-color-blue"></view>
</view>
</view>
<view class="goods-detail"> <view class="goods-detail">
<view class="lf-font-32 lf-font-bold lf-m-b-20">包含套餐</view> <view class="lf-font-32 lf-font-bold lf-m-b-20">包含套餐</view>
<view class="lf-flex-column"> <view class="lf-flex-column">
@ -89,15 +103,24 @@
</view> </view>
<!-- 酒店类型 --> <!-- 酒店类型 -->
<view class="goods-detail" style="padding-bottom: 0;" v-if="goods_detail.product && goods_detail.product.extends && goods_detail.product.type == 1">
<view class="lf-font-32 lf-font-bold lf-m-b-20">酒店设施</view>
<view>
<view class="label-box1">
<view class="label-item" v-for="(item,index) in goods_detail.product.extends.field_1.tags" :key="index">
{{item.tag}}
<view v-if="goods_detail.product && goods_detail.product.extends && goods_detail.product.type == 1">
<view class="goods-detail" style="padding-bottom: 0;">
<view class="lf-font-32 lf-font-bold lf-m-b-20">酒店设施</view>
<view>
<view class="label-box1">
<view class="label-item" v-for="(item,index) in goods_detail.product.extends.field_1.tags" :key="index">
{{item.tag}}
</view>
</view> </view>
</view> </view>
</view> </view>
<view class="goods-detail" @click="openMap(goods_detail.product.extends.field_1.address,goods_detail.product.extends.field_1.latitude,goods_detail.product.extends.field_1.longitude)">
<view class="lf-font-32 lf-font-bold lf-m-b-20">{{goods_detail.product.extends.field_1.name}}</view>
<view class="lf-row-between">
<view class="lf-line-2 lf-font-28 lf-color-333">{{goods_detail.product.extends.field_1.address}}</view>
<view class="lf-iconfont lf-icon-dizhi lf-color-blue"></view>
</view>
</view>
</view> </view>
<!-- 旅游路线类型 --> <!-- 旅游路线类型 -->
<view v-if="goods_detail.product && goods_detail.product.type == 0 && goods_detail.product.extends"> <view v-if="goods_detail.product && goods_detail.product.type == 0 && goods_detail.product.extends">
@ -197,11 +220,12 @@
}, },
methods: { methods: {
// //
openMap(){
let { address, lat, lng } = this.goods_detail?.store || {};
openMap(address,lat,lng){
this.$msg('提示了')
// let { address, lat, lng } = this.goods_detail?.store || {};
uni.openLocation({ uni.openLocation({
longitude: Number(lat),
latitude: Number(lng),
longitude: Number(lng),
latitude: Number(lat),
scale: 20, scale: 20,
name: address name: address
}); });

2
pages/login/index.vue

@ -89,7 +89,7 @@
// //
getUserProfile(){ getUserProfile(){
uni.getUserProfile({ uni.getUserProfile({
desc: '您的信息将用于时空网显示',
desc: '您的信息将用于小程序显示',
lang: 'zh_CN', lang: 'zh_CN',
complete: result => { complete: result => {
console.log(result) console.log(result)

98
pages/order/confirm_atonce.vue

@ -0,0 +1,98 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
order_id: 0
}
},
onLoad(e) {
this.order_id = e.order_id
console.log(this.order_id)
if(this.order_id) {
this.getUserProfile()
}else {
this.order_id = '1111111';
this.getUserProfile();
console.log('oder_id',this.order_id)
}
},
methods: {
//
getUserProfile(){
uni.getUserProfile({
desc: '您的信息将用于小程序显示',
lang: 'zh_CN',
complete: result => {
console.log(result)
if(result.errMsg == 'getUserProfile:ok'){
let encryptedData = result.encryptedData;
let iv = result.iv;
let signature = result.signature;
// let userInfo = uni.getStorageSync('userinfo') || {};
this.$http(this.API.API_GETUSERINFO, {
encryptedData,
iv,
// token: userInfo.token //
}).then(res => {
console.log("更新用户信息", res);
this.$msg('更新成功', {icon: 'success'});
uni.setStorageSync('userinfo', res.data);
this.payOnce()
setTimeout(() => {
this.$toBack();
}, 1000);
})
}
}
});
},
payOnce() {
this.$http(this.API.API_LF_PAY,{id: this.order_id}).then(res => {
uni.requestPayment({
orderInfo: res.data.order_num,
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: res.data.signType,
paySign: res.data.paySign,
success: (res) => {
this.$url('/pages/payState/paystate?ifSuccess=1&order_id='+this.order_id,{type: 'redirect'})
},
fail: (err) => {
this.$url('/pages/payState/paystate?ifSuccess=2&order_id='+this.order_id,{type: 'redirect'})
},
})
}).catch(err => {})
}
}
}
</script>
<style>
.btn{
margin: 0;
padding: 0;
width: 212rpx;
height: 82rpx;
background-color: #1998FE;
color: #FFFFFF;
line-height: 80rpx;
font-size: 32rpx;
border-radius: 41rpx;
}
.bref-box {
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
</style>

74
pages/order/confirm_order.vue

@ -159,35 +159,55 @@
this.$msg('请输入联系电话!'); this.$msg('请输入联系电话!');
return; return;
} }
if(!this.ifPay) return;
this.ifPay = false;
this.$http(this.API.API_CREATEORDER,{id: this.goods_id,num: 1,pay_type: this.pay_type,name:this.contact,mobile:this.phone}).then(res => {
this.order_id = res.data.id
if(this.pay_type == 1) {
this.ifPay = true
this.$url('/pages/payState/paystate?ifSuccess=1&order_id='+this.order_id,{type: 'redirect'})
}else {
uni.requestPayment({
orderInfo: res.data.order_num,
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: res.data.signType,
paySign: res.data.paySign,
success: (res) => {
this.ifPay = true
this.$url('/pages/payState/paystate?ifSuccess=1&order_id='+this.order_id,{type: 'redirect'})
},
fail: (err) => {
this.ifPay = true
this.$url('/pages/payState/paystate?ifSuccess=2&order_id='+this.order_id,{type: 'redirect'})
},
})
}
}).catch(err => {
this.ifPay = true
if(this.goods_details.jump == true) {
let that = this;
var accountInfo = wx.getAccountInfoSync();
var autoappid = accountInfo.miniProgram.appId;
wx.navigateToMiniProgram({
appId: autoappid,
path: '/pages/order/confirm_atonce?order_id=' + this.order_id,
envVersion: 'release',
success(res) {
console.log('---res---')
console.log(res)
},
fail(err) {
console.log('---err---')
console.log(err)
}
}) })
}else {
if(!this.ifPay) return;
this.ifPay = false;
this.$http(this.API.API_CREATEORDER,{id: this.goods_id,num: 1,pay_type: this.pay_type,name:this.contact,mobile:this.phone}).then(res => {
this.order_id = res.data.id
if(this.pay_type == 1) {
this.ifPay = true
this.$url('/pages/payState/paystate?ifSuccess=1&order_id='+this.order_id,{type: 'redirect'})
}else {
uni.requestPayment({
orderInfo: res.data.order_num,
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: res.data.signType,
paySign: res.data.paySign,
success: (res) => {
this.ifPay = true
this.$url('/pages/payState/paystate?ifSuccess=1&order_id='+this.order_id,{type: 'redirect'})
},
fail: (err) => {
this.ifPay = true
this.$url('/pages/payState/paystate?ifSuccess=2&order_id='+this.order_id,{type: 'redirect'})
},
})
}
}).catch(err => {
this.ifPay = true
})
}
}, },
payOnce() { payOnce() {
this.$http(this.API.API_ORDERPAY,{id: this.order_id}).then(res => { this.$http(this.API.API_ORDERPAY,{id: this.order_id}).then(res => {

Loading…
Cancel
Save