2017-06-30 16 views
1

私は作品が見つかりイオン3アプリのすべてをrazorpayを実装します、私はpayment_idでsuccesscallbackましたが、他のページや経路やその他の活動にhappenigリダイレクトのようなものは何も後または関数を呼び出すなどRazorpayイオン3コールバック問題

私はあなたがuのはず、ここでは次のリンク、

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 
    }); 
};