小程序商城订单支付界面(小程序)

wxml在此:

<!--pages/cart/cart.wxml-->
<!-- 当数据为空时 -->
<view class='noData' wx:if="{{dataList.length == 0}}">
  <view class='noDataImg'>
      <image src='/images/cart-nodata.png'></image>
  </view>
  <view class='noDataText'>您的购物车空空如也,去挑选喜欢的产品吧</view>
  <view class='gotype' catchtap='gotype'>
    去逛逛
  </view>
</view>
<!-- 当数据不为空时 -->
<view wx:else style='margin-bottom:130rpx;'>
    <!-- 商品列表 -->
    <view class='shopList' catchtap='checkThis' data-index='{{index}}' wx:for="{{dataList}}" wx:key="shopId">
      <view class="nocheck {{item.checked?'checkedBox':''}}">
        ✔
      </view>
      <view class='shopInfo'>
        <view class='shopImg'>
            <image src='{{item.imgUrl}}'></image>
        </view>
        <view class='shopCon'>
          <view class='title'>
            {{item.title}}
          </view>
          <view class='num'>
            数量{{item.num}}   {{item.color}}
          </view>
          <view>
            ¥{{item.price}}
          </view>
        </view>
      </view>
      <view class='payInfo'>
        <view>
            <view>
              共一件商品 应付 ¥{{item.money}}
            </view>
            <view class='payBtn' catchtap='signPay'>
              去支付
            </view>
        </view>

      </view>
    </view>
    <!-- 结算栏 -->
    <van-submit-bar
      loading="{{loading}}"
      price="{{ totalMoney }}"
      button-text="去结算"
      bind:submit="doPay"
      custom-class="payBox"
    >
      <van-tag type="primary" class="checkbox">
        <van-checkbox value="{{ allCheck }}" checked-color="#f44" bind:change="allCheck">全选</van-checkbox>
      </van-tag>
      <!-- <view slot="tip">
        您的收货地址不支持同城送, <text>修改地址</text>
      </view> -->
    </van-submit-bar>
</view>

wxss在此:

/* pages/cart/cart.wxss */
/* 数据为空 */
.noData{
  margin: 200rpx 40rpx 0 40rpx;
  text-align: center
}
.noDataImg{
  width: 100%;
  height: 300rpx;
}
.noDataText{
  font-size: 32rpx;
  margin: 20rpx 0;
  color: #ccc
}
.gotype{
  width: 60%;
  margin:60rpx auto;
  padding: 20rpx 0;
  background: #AE211A;
  color: #f1f1f1
}
/* 数据不为空 */
.nocheck{
  position: absolute;
  top: 80rpx;
  left: 0rpx;
  width: 30rpx;
  height: 30rpx;
  border-radius: 50%;
  text-align: center;
  border: 1px solid #e3e3e3;
  color:#e3e3e3;
  line-height: 30rpx;
  font-size: 20rpx;  
}
.checkedBox{
  background: #f44;
  color: #fff;
}
.shopList{
  margin:0 20rpx;
  position: relative;
  border-top: 1px solid #e3e3e3;
  border-bottom: 1px solid #e3e3e3;
}
.shopInfo{
  padding:20rpx 0 20rpx 60rpx;
  display: flex
}
.shopImg{
  width: 160rpx;
  height: 160rpx;
}
.shopCon{
  margin-left: 40rpx;
  font-size: 30rpx;
}
.num{
  padding: 24rpx 0;
  color: #ccc
}
.payInfo{
  padding:20rpx 40rpx;
  border-top: 1px solid #e3e3e3;
  display: flex;
  justify-content: flex-end;
}
.payBtn{  
  width: 100rpx;
  margin-top: 20rpx;
  margin-left: 140rpx;
  text-align: center;
  padding: 10rpx 20rpx;
  color:#f44;
  border: 1px solid #f44
}
.payBox{
  box-shadow: 0 0 10rpx #e3e3e3
}
.checkbox{
  margin-left: 40rpx;
}

js在此:


Page({
  /**
   * 页面的初始数据
   */
  data: {
    allCheck:false,
    loading:false,
    totalMoney:0,
    dataList:[
      { imgUrl:"/images/show.jpg",title:"长袖衬衫春秋新款",num:"1",color:"白色",price:"139.00",money:"500",checked:false},
      { imgUrl: "/images/show.jpg", title: "长袖衬衫春秋新款", num: "1", color: "白色", price: "139.00", money: "500", checked: false },
      { imgUrl: "/images/show.jpg", title: "长袖衬衫春秋新款", num: "1", color: "白色", price: "139.00", money: "500", checked: false },
    ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.isAll()
  },
  gotype(){
    wx.navigateTo({
      url: '/pages/type/type',
    })
  },
  checkThis(e){
    let index = e.currentTarget.dataset.index
    console.log(e)
    let checkIndex = "dataList["+index+"].checked"    
    this.setData({
      [checkIndex]:!this.data.dataList[index].checked
    })
    this.isAll()
  },
  allCheck(e){
    for(let k in this.data.dataList){
      this.data.dataList[k].checked = e.detail
    }
    this.setData({
      allCheck:e.detail,
      dataList:this.data.dataList
    })
    this.isAll()
  },
  // 判断是否全选
  isAll(){
    let checkedNum = 0
    let money = 0
    this.data.dataList.forEach((all) => {
      if (all.checked) {
        checkedNum++
        money += Number(all.money)*100
      }
    })
    if(checkedNum == this.data.dataList.length){
      this.setData({
        allCheck: true,
        totalMoney: money
      })
    }else{
      this.setData({
        allCheck: false,
        totalMoney:money
      })
    }
  },
  signPay(e){
    console.log('支付')
  },
  doPay(e){
    console.log(e)
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

 

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以使用微信支付来实现小程序商城支付功能。这是一种在线支付方式,可以让用户在小程序中直接进行支付。 为了使用微信支付,您需要在微信开放平台注册并申请微信支付功能。注册后,您可以获得一些必要的信息,如商户号和密钥,用于接入微信支付。 接下来,您需要在小程序中实现支付功能。您可以使用微信小程序支付 API 进行支付支付 API 支持多种支付场景,包括扫码支付、JSAPI 支付(即公众号支付)、小程序支付等。 在实现支付功能时,您需要注意以下几点: 1. 在调用支付 API 前,您需要预先设置好商户号和密钥。 2. 在调用支付 API 时,您需要传入订单信息和支付金额。 3. 在支付过程中,用户需要在微信内输入支付密码进行验证。 4. 支付完成后,微信会向您的服务器发送支付结果通知。您的服务器需要对支付结果进行验证,确保支付是 ### 回答2: 微信小程序商城支付主要通过调用微信支付接口来完成,具体步骤如下: 1. 开通微信支付功能:商家首先需要在微信支付平台注册并开通支付功能,获取商户号和支付密钥。 2. 创建订单:用户在小程序商城选择商品后,点击支付按钮,前端将商品信息(如商品名称、价格、数量)传给后台服务器。 3. 生成预支付订单:后台服务器收到订单信息后,通过调用微信支付接口生成预支付订单,生成的预支付订单包含一个prepay_id。 4. 返回prepay_id:后台服务器将prepay_id返回给前端,前端将该prepay_id传给小程序支付接口。 5. 调起支付接口:前端通过调用小程序支付接口,传入prepay_id,触发小程序客户端调起微信支付页面。 6. 用户支付确认:用户在微信支付页面确认支付金额,选择支付方式(如微信支付余额、银行卡支付等)并输入支付密码完成支付。 7. 支付结果通知:支付成功后,微信服务器会向商家服务器发送支付结果通知,商家需要在后台服务器接口中处理支付结果,可更新订单状态、发货等操作。 8. 响应支付结果:商家服务器接收到支付结果通知后,返回处理结果给微信服务器。 9. 返回支付结果给前端:微信服务器将支付结果返回给小程序客户端,前端会根据支付结果进行相应的提示或跳转页面,如支付成功页面或支付失败页面。 以上是微信小程序商城支付的基本流程,具体实现过程可能会涉及到小程序和后台服务器的具体开发技术,需要根据具体情况进行调整和实现。 ### 回答3: 微信小程序商城支付的实现主要分为以下几步: 1. 开通微信支付功能:在微信公众平台申请开通微信支付功能,并完成相关的资质审核和绑定银行卡等操作。 2. 在小程序代码中引入支付组件:在需要支付的页面中引入微信支付组件,可以使用官方提供的wx.requestPayment()方法实现支付功能。 3. 创建订单:在用户确认购买后,服务器端需要相应的逻辑来生成订单信息,包括订单号、总金额、商品信息等。 4. 调用统一下单接口:通过调用微信支付的统一下单接口,向微信服务器发送支付请求,传递相关参数,如小程序ID、商户号、订单号、商品描述、总金额等。 5. 获取支付参数:微信服务器返回预支付交易会话标识(prepay_id)等支付参数。将这些参数传递给小程序前端,用于调起微信支付组件。 6. 调起支付组件:将获取到的支付参数传递给wx.requestPayment()方法,调起微信支付组件。用户在弹出的支付界面中完成支付,包括输入密码、指纹验证等。 7. 支付结果回调:支付完成后,微信服务器会将支付结果通知到服务器端,服务器端需要对支付结果进行校验,防止支付回调数据被伪造。 8. 更新订单状态:根据支付结果,更新订单状态,如支付成功则修改订单状态为已支付,并进行相关的业务逻辑处理。 以上是微信小程序商城支付的基本流程。在实际开发中,还需要考虑支付安全、异常处理、用户体验等方面的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值