Android 贝宝集成

Posted

技术标签:

【中文标题】Android 贝宝集成【英文标题】:Android paypal integration 【发布时间】:2012-06-08 20:43:50 【问题描述】:

我已在我的 android 应用程序中集成了 paypal。 我有一个主要活动——关于活动,我在其中显示了贝宝按钮。关于从主 Activity 访问的 Activity。 Paypal 对象在线程中初始化,由 Application 对象的 OnCreate 创建。

我现在面临两个问题: 1. Paypal 按钮仅在我第一次点击时有效。第二次不起作用。我必须返回主菜单,然后返回 about Activity,然后它又可以工作了。 这里是:

将paypal按钮添加到布局的代码:

mDonateButton = AppObj.Instance().GetPayPalObj().getCheckoutButton( mCaller, 
                                                                            PayPal.BUTTON_152x33, 
                                                                            CheckoutButton.TEXT_PAY );
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(   LayoutParams.WRAP_CONTENT, 
                                                                    LayoutParams.WRAP_CONTENT );
mDonateButton.setLayoutParams(params);
mDonateButton.setGravity( Gravity.CENTER_HORIZONTAL );
mDonateButton.setOnClickListener( this );

LinearLayout container = (LinearLayout) findViewById( R.id.donateLayout );
container.addView(mDonateButton);

OnClick相关代码:

                PayPalPayment newPayment = new PayPalPayment();
                newPayment.setSubtotal(new BigDecimal(Integer.parseInt(info)));
                newPayment.setCurrencyType("USD");
                newPayment.setRecipient("xxx@xxx.com");
                newPayment.setPaymentType(PayPal.PAYMENT_TYPE_NONE);
                newPayment.setMerchantName("xxx");
                Intent paypalIntent = PayPal.getInstance().checkout(newPayment, mCaller);
                (mCaller).startActivityForResult(paypalIntent, 1);
    我遇到的第二个问题......因为我在 BG 中初始化了 paypal obj,如果我在 paypal 完成初始化之前访问 About 活动(其中创建了 paypal 按钮),我会崩溃...... 有什么想法吗?

谢谢 约夫

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

如果你还在寻找答案,我有一个

如果您查看getCheckoutButton 方法,它将Context 作为参数,因此当Activity 用于例如说当您启动另一个 Activity 时发生的 Paused,CheckoutButton 的实例会以某种方式丢失。

我修复的是在 Activity 的 onResume 中使用updateButton 方法

    @Override
    protected void onResume() 
        /**
         * The CheckoutButton has to be updated each time the Activity is
         * resumed, otherwise the onClickListener of CheckoutButton will not work
         **/
        if (mCheckOutBtn != null && (mCheckOutBtn instanceof CheckoutButton))
            mCheckOutBtn.updateButton();
        super.onResume();
    

考虑到您在onCreate 中的Activity 中初始化了PayPal 库和CheckoutButton,这很有效。

【讨论】:

以上是关于Android 贝宝集成的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 与 Android 应用程序的集成 - 接收方

PayPal SDK 和 Android 集成问题

适用于 Android 的 PostFinance 支付网关集成

适用于 Android 的 Billdesk 支付网关集成

android paypal库需要的账户信息

ANDROID-向用户汇款?贝宝