• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序与webview交互实现支付

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

实现原理:点击h5网页的支付按钮——(跳转)——>嵌套改h5的小程序的支付页面——(处理支付)——>跳转至支付完成后的页面

demo地址:https://gitee.com/v-Xie/wxpay.git

注意:(1)网页h5中,引入微信的jssdk

<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>

(2)小程序嵌套h5页面后,需要在微信公众平台配置h5网页的业务逻辑名,否则无法访问(且配置业务逻辑名的小程序只能是企业小程序,个人小程序暂时无法实现)。

操作:登录微信公众平台————开发——————开发设置

<!--网页h5中-->
      <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
	
      <a class="btn" @click="jumpPay">点击支付</a>
	 
      jumpPay:function(){
        const ordercode=this.$route.query.ordercode;
        console.log(1111111);
        const url=`/pages/wxPay/index?ordercode=${ordercode}`;
        alert(\'url:\' + url);
        //跳转到小程序支付界面wxPay
        wx.miniProgram.navigateTo({
          url: url
        });
      },

 小程序目录 

<!--webview中(小程序page)-->
//pages/lnyc2019/index.wxml
 <web-view class=\'page_web\' src="{{url}}"></web-view>

//pages/lnyc2019/index.js
Page({ 
  data: { 
    url:\'https://xxxxxxxx/wxmini/index.html\'//h5地址 
  } 
})

  

  

<!--wxPay中(小程序page)-->
// pages/wxPay/index.js
Page({
  data: {
    payTempcode:\'\',
    ordercode:\'\',
    payParam:{}
  },
  onLoad: function (options) {
    console.log(\'支付开始\');
    console.log(options);
    this.setData({
      ordercode: options.ordercode
    });
    this.getTempcode();
  },
  // 换取支付临时code
  getTempcode:function(){
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        this.setData({
          payTempcode:res.code
        });
        console.log(\'支付code:\', this.data.payTempcode);

        this.getPayinfo();
      }
    })
  },
  // 换取支付参数
  getPayinfo:function(){
    var self=this;
    wx.request({
      url: \'https://xxxxxx/pay/xcxpay\',//后台接口地址
      data: {
        \'wxcode\': self.data.payTempcode,
        \'ordercode\': self.data.ordercode,
        \'gid\': x,
      },
      method: \'POST\',
      success: function (res) {
        console.log(res.data.data.payinfo);
        self.setData({
          payParam: res.data.data.payinfo
        });
        console.log(\'支付的订单====\',self.data.ordercode);
        // 调起支付
        wx.requestPayment({
          \'timeStamp\': self.data.payParam.time,//为字符串,否则报错
          \'nonceStr\': self.data.payParam.nonce_str,
          \'package\': `prepay_id=${self.data.payParam.prepay_id}`,
          \'signType\': \'MD5\',
          \'paySign\': self.data.payParam.paysign,
          \'success\': function (res) {
            console.log(res)
            console.log(\'=======支付成功==========\');
            wx.navigateTo({
              url: `/pages/lnyc2019/detail?ordercode=${self.data.ordercode}`
            })
          },
          \'fail\': function (res) {
            console.log(res)
            console.log(\'=======支付失败==========\')
            wx.navigateBack({
              delta: 1//返回1个页面
            })
          }
        })
      }
    })
  }


})  

  附:  老是有人问为何支付不起?不过我没遇到过也不懂后端,遇到过的可以看看下面这位童鞋的文章。
https://www.jianshu.com/p/aa29852ab695


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序支付 - 代码音乐发布时间:2022-07-18
下一篇:
asp写的微信小程序支付demo-服务器端是asp+mdb的发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap