1

monodroid アプリケーションで PayPal を使用しています。このトピックで共有されている libraray を使用しました: http://forums.xamarin.com/discussion/comment/15331/#Comment_15331

しかし、メソッドでPaymentConfirmationオブジェクトを取得する際に問題があります。OnActivityResultこれは私のコードです:

protected override void OnActivityResult (int requestCode, Result resultCode, Intent data)
    {
        if (resultCode == Result.Ok ) {
            var confirm =  data.GetParcelableExtra ("com.paypal.android.sdk.paymentConfirmation") ;

            PaymentConfirmation pc = (PaymentConfirmation)confirm;
        if (confirm != null) {
            try {
                //Log.Info ("paymentExample", confirm.ToJSONObject ().ToString (4));
                // TODO: send 'confirm' to your server for verification.
                // see https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/
                // for more details.\
            } catch (JSONException e) {
                Log.Error ("paymentExample", "an extremely unlikely failure occurred: ", e);
            }
        }
    }else if (resultCode == Result.Canceled ) {
        Log.Info ("paymentExample", "The user canceled.");
    }else {
        Log.Info ("paymentExample", "An invalid payment was submitted. Please see the docs.");
    }
}

メソッドの 3 行目。コンパイラは確認を にキャストできませんPaymentConfirmation。データを使用するために、他のクラスまたはコードが必要ですか。GetParcelableExtra?

4

1 に答える 1

1

この場合、コメントに書かれているJavaCastように使用する必要があります。GetTypeこれは、型に対して生成されたバインディングにメソッドが含まれていない場合に発生すると思います。したがって、.NET はそれを何にキャストするかを知りません。

だからあなたの行:

PaymentConfirmation pc = (PaymentConfirmation)confirm;

次のようにする必要があります。

PaymentConfirmation pc = confirm.JavaCast<PaymentConfirmation>();
于 2013-10-13T11:46:23.540 に答える