123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- Component({
- /**
- * 组件的属性列表
- */
- properties: {
- params: {
- type: Object,
- value: null
- },
- envVersion: {
- type: String,
- value: "release"
- }
- },
- /**
- * 组件的初始数据
- */
- data: {
- appid:'wx13e5a2a68ae503c0',
- showPayModal:false,
- chickOnPay: false //标记是否支付中状态
- },
- /**
- * 组件的方法列表
- */
- methods: {
- //设置支付点击了打开云小程序
- setPaying(paystatus) {
- this.setData({
- chickOnPay: paystatus
- })
- this.triggerEvent('Change',{chickOnPay:paystatus})
- },
- //[跳转到【收银台】小程序失败-用户点击了支付组件外的地方(灰色地方)
- onTapCancel () {
- this.triggerEvent('Fail',{navigateSuccess:false})
- this.triggerEvent('Complete')
- },
- //跳转到【收银台】小程序成功
- navigateSuccess () {
- this.setPaying(true)
- },
- /**
- * 跳转失败
- * 如果下单成功但是用户取消支付则可在
- * 调用组件用 res.detail.event 查看原因
- */
- navigateFail (event) {
- this.triggerEvent('Fail',{navigateSuccess: false,event:event})
- this.triggerEvent('Complete')
- }
- },
- /**
- * 组件生命周期
- */
- lifetimes: {
- attached() {
- this.setPaying(false)
- if (!this.data.params) {
- console.error('跳转到【收银台】小程序失败 - 没有传递跳转参数')
- this.triggerEvent('Fail',{error: true,navigateSuccess: false})
- this.triggerEvent('Complete')
- }
- //监听app.onShow事件
- wx.onAppShow(appOptions => {
- if (!this.data.chickOnPay){
- return;
- }
- this.setPaying(false)
- if (appOptions.scene === 1038 && appOptions.referrerInfo.appId === 'wx13e5a2a68ae503c0') {
- console.log('确认来源于【收银台】回调返回')
- let extraData = appOptions.referrerInfo.extraData
- if (extraData.return_code =='SUCCESS') {
- this.triggerEvent('Success',extraData)
- this.triggerEvent('Complete')
- } else {
- this.triggerEvent('Fail',{navigateSuccess:true,event:extraData})
- this.triggerEvent('Complete')
- }
- }
- })
- var params = this.data.params;
- //尝试打开
- wx.navigateToMiniProgram({
- appId: this.data.appid,
- path: 'pages/dopay/index',
- extraData: params,
- envVersion: this.data.envVersion,
- success:yes => {
- console.log('跳转到【收银台】小程序成功')
- this.setPaying(true)
- },
- fail:no => {
- console.log('跳转到【收银台】小程序失败-弹窗提醒')
- this.setData({
- showPayModal: true,
- appid: this.data.appid
- })
- },
- })
- }
- }
- })
|