2017-06-30 38 views
1

我将实现与离子3个应用程序一切正常razorpay发现,我与payment_id successcallback了,但之后没有happenig喜欢重定向到其他网页或路由或任何其它活动或打电话等多种功能Razorpay离子3回调问题

我是指下面的链接,

https://github.com/razorpay/razorpay-cordova-sample-app/tree/master/rzp-ionic2-example

这里是我的代码,

var options = { 
     description: 'Credits towards consultation', 
     image: 'https://i.imgur.com/3g7nmJC.png', 
     currency: 'INR', 
     key: 'rzp_test_1DP5mmOlF5G5ag', 
     amount: '5000', 
     name: 'foo', 
     prefill: { 
     email: '[email protected]', 
     contact: '8879524924', 
     name: 'Pranav Gupta' 
     }, 
     theme: { 
     color: '#F37254' 
     }, 
     modal: { 
     ondismiss: function() { 
      alert('dismissed') 
     } 
     } 
    }; 

    var successCallback = function(payment_id) { 
     alert('payment_id: ' + payment_id); 
     this.navCtrl.push("ThankyouPage",{ 
       status: this.status 
      }); 
    }; 

    var cancelCallback = function(error) { 
     alert(error.description + ' (Error ' + error.code + ')'); 
    }; 

    this.platform.ready().then(() => { 
     RazorpayCheckout.open(options, successCallback, cancelCallback); 
    }) 

回答

2

你应该ü SE arrow functions这样的:

var options = { 
    description: 'Credits towards consultation', 
    image: 'https://i.imgur.com/3g7nmJC.png', 
    currency: 'INR', 
    key: 'rzp_test_1DP5mmOlF5G5ag', 
    amount: '5000', 
    name: 'foo', 
    prefill: { 
    email: '[email protected]', 
    contact: '8879524924', 
    name: 'Pranav Gupta' 
    }, 
    theme: { 
    color: '#F37254' 
    }, 
    modal: { 
    ondismiss:() => { // <- Here! 
     alert('dismissed') 
    } 
    } 
}; 

var successCallback = (payment_id) => { // <- Here! 
    alert('payment_id: ' + payment_id); 
    this.navCtrl.push("ThankyouPage",{ 
      status: this.status 
     }); 
}; 

var cancelCallback = (error) => { // <- Here! 
    alert(error.description + ' (Error ' + error.code + ')'); 
}; 

this.platform.ready().then(() => { 
    RazorpayCheckout.open(options, successCallback, cancelCallback); 
}) 

当使用常规功能,this关键字引用本身的功能,但使用箭头功能时,this属性不被覆盖,仍引用组件实例(如你所定义的navCtrl属性)

1

这个问题的另一种解决方案可以分配此变量以某些其他变量和在回调使用它像 -

let me = this; 

var successCallback = function(payment_id) { 
    alert('payment_id: ' + payment_id); 
    me.navCtrl.push("ThankyouPage",{ 
     status: me.status 
    }); 
};