Paypal解析Java.Lang.以Xamarin中的PaymentConfirmation为对象
本文关键字:中的 PaymentConfirmation 对象 Xamarin 解析 Java Lang Paypal | 更新日期: 2023-09-27 18:15:29
我正在用Xamarin为android构建一个移动应用程序,我想使用贝宝让用户向我们付款。付款后,我想将确认发送到我们的服务器,以检查付款是否良好和完整,并对购买的进行了修改。
我使用Android SDK创建了一个Java绑定库。我在以下位置使用了教程:https://github.com/paypal/PayPal-Android-SDK/blob/master/docs/single_payment.md
PaymentConfirmation confirm =
data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
我把它变成了C#:
PaymentConfirmation confirm =
data.GetParcelableExtra(PaymentActivity.ExtraResultConfirmation);
这给了我一个例外,说存在显式演员阵容,所以我添加了它:
PaymentConfirmation confirm =
(PaymentConfirmation)data.GetParcelableExtra(PaymentActivity.ExtraResultConfirmation)
这导致以下异常:System.InvaliCastException: Cannot cast from source type to destination type.
我已经尽力了,所以我正在寻求帮助。
功能部分项目可在此处找到:https://github.com/PhilSim22/PartialProject/tree/master
我有一份保密协议,所以与这个问题无关的一切都被删除了。很抱歉给您带来不便。
var confirmObj = data.GetParcelableExtra (PaymentActivity.ExtraResultConfirmation);
PaymentConfirmation confirm = Android.Runtime.Extensions.JavaCast<PaymentConfirmation> (confirmObj);
im如果您找不到解决方案,也许组件parse.com可以帮助您:https://parse.com/tutorials/integrating-with-third-party-services
对于任何无效的强制转换异常,我首先会尝试将要强制转换的结果存储到一个临时变量中,并在调试模式或通过日志记录查看其类型。
因此,我会这样做:
object temp = data.GetParcelableExtra(PaymentActivity.ExtraResultConfirmation);
Console.WriteLine(temp.GetType().FullName);
Console.WriteLine("Can Assign: {0}", typeof(PaymentConfirmation).IsAssignableFrom(temp.GetType()));
通过这种方式,您可以查看返回的类型是否与铸造的类型PaymentConfirmation匹配。
你能分享源类和目标类的完整类名吗?