c# - Paypal 在 Xamarin 中将 Java.Lang.Object 解析为 PaymentConfirmation

标签 c# android paypal casting xamarin

我正在使用 Xamarin 构建 Android 移动应用程序,我想使用 PayPal 供用户向我们付款。付款后,我想向我们的服务器发送确认信息,以检查付款是否正确且完整,并进行与购买相关的修改。

我使用 Android SDK 创建了 Java 绑定(bind)库。我使用了该教程: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);

这给了我一个异常(exception),说存在显式强制转换,所以我添加它:

PaymentConfirmation confirm = 
   (PaymentConfirmation)data.GetParcelableExtra(PaymentActivity.ExtraResultConfirmation)

这会产生以下异常:System.InvaliCastException:无法从源类型转换为目标类型。

我已经尝试了所有我能想到的方法,所以我正在寻求帮助。

可以在这里找到功能部分项目: https://github.com/PhilSim22/PartialProject/tree/master

我签订了保密协议(protocol),因此与该问题无关的所有内容都已被删除。给您带来的不便敬请谅解。

最佳答案

我找到了答案。我必须使用 JAVA 类型转换而不是普通类型转换。这是我的解决方案:

            var confirmObj = data.GetParcelableExtra (PaymentActivity.ExtraResultConfirmation);
            PaymentConfirmation confirm = Android.Runtime.Extensions.JavaCast<PaymentConfirmation> (confirmObj);

关于c# - Paypal 在 Xamarin 中将 Java.Lang.Object 解析为 PaymentConfirmation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25000040/

相关文章:

c# - 将带有子查询的sql查询转换为linq语句

c# - 获取 ListView 的选定项目(MVVM、Caliburn.Micro)

android - Android Activity 的多个实例是否应该显示在内存分析器中?

android - 如何从网站流式传输数据和资源

android - 在 Android Studio 上导入 Apache 库

php - urldecode() 不解码 + 号

php - 如何使用 PHP 从 Paypal 立即购买按钮接收回调

curl - Paypal 沙盒 token

c# - "public class MvcApplication : System.Web.HttpApplication"行处出现编译错误 MVC4

c# - TreeView 节点可以有中间检查状态吗?