Android paypal支付 集成 Manifest merger failed with multiple errors, see logs

paypal 第一次接触,听说很强大,在这里我门先不深究它的来历,上代码

首先你要下在个SDK,呵呵.....

1官网链接:https://developer.paypal.com/docs/classic/lifecycle/sdks/

示例如下:


2点击PayPal Mobile SDKs 

示例如下:

3 点击PayPal Android SDK 进入GITHUB

如下图示;

一般集成 PayPal就够了...PS:Braintree不知道干啥的,PayPal就可以实现支付可能更强大,记得告诉我大笑





4下翻  下翻

compile 'com.paypal.sdk:paypal-android-sdk:2.15.0'

导包---

5 正题来了 有时候依赖库多了会出现 这个问题

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

莫慌莫慌

不是有度娘和gg么

http://blog.csdn.net/qq_33785670/article/details/52455241

这篇文章是正解!!!

但是如果在报错....嘿嘿文章说的是对,但是我是builde.gradle的 没有办法更改minSdkVersion和targetSdkVersion

哈哈,GitHub上是有解决办法的


貌似是说PayPal  不能在API低于16的版本运行 ,那么来吧小宝贝儿~~

把它说的

xmlns:tools="http://schemas.android.com/tools"
<uses-sdk android:minSdkVersion="INSERT_YOUR_DESIRED_minSdkVersion_HERE" tools:overrideLibrary="com.paypal.android.sdk.payments"/>

加进AndroidManifest中

6.PayPal支付用到的界面和service的配置。 

<!-- PayPal支付 -->
<activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
<activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
<activity android:name="com.paypal.android.sdk.payments.PayPalFuturePaymentActivity" />
<activity android:name="com.paypal.android.sdk.payments.FuturePaymentConsentActivity" />
<activity android:name="com.paypal.android.sdk.payments.FuturePaymentInfoActivity" />
<activity android:name="com.paypal.android.sdk.payments.PayPalProfileSharingActivity" />
<activity android:name="com.paypal.android.sdk.payments.ProfileSharingConsentActivity" />

<service
    android:name="com.paypal.android.sdk.payments.PayPalService"
    android:exported="false" />
<!-- PayPal支付 -->

7.调用PayPal
public class BBActivity extends BaseActivity implements View.OnClickListener {
    private static final String TAG = BBActivity.class.getSimpleName();
    private static final int REQUEST_CODE_PAYMENT = 1;

    // PayPal configuration
    private static PayPalConfiguration paypalConfig = new PayPalConfiguration()
            .environment(Config.PAYPAL_ENVIRONMENT).clientId(
                    Config.PAYPAL_CLIENT_ID);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.a_activity);

        Intent intent = new Intent(this, PayPalService.class);
        intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, paypalConfig);
        startService(intent);
        findview();
    }

    @Override
    protected void onDestroy() {
        stopService(new Intent(this, PayPalService.class));
        super.onDestroy();
    }
    private void findview() {
        findViewById(R.id.back).setOnClickListener(this);
        findViewById(R.id.cz_1w).setOnClickListener(this);

    }

    /***
     * 点击事件
     */
    private String czmon="0";
    @Override
    public void onClick(View v) {
        productsInCart.clear();
        czmon="0";
        switch (v.getId()) {
            case R.id.cz_1w: {//充值10000元
                czmon="10000";
                PayPalItem item = new PayPalItem("充值", 1,
                        new BigDecimal("10000"), Config.DEFAULT_CURRENCY, "9999");
                productsInCart.add(item);
                launchPayPalPayment();
            }
            break;
            case R.id.back: {
                finish();
            }
            break;
        }
    }

    private List<PayPalItem> productsInCart = new ArrayList<PayPalItem>();

    /**
     * 添加商品信息
     * Preparing final cart amount that needs to be sent to PayPal for payment
     */
    private PayPalPayment prepareFinalCart() {
        PayPalItem[] items = new PayPalItem[productsInCart.size()];
        items = productsInCart.toArray(items);

        // Total amount
        BigDecimal subtotal = PayPalItem.getItemTotal(items);
        // If you have shipping cost, add it here
        BigDecimal shipping = new BigDecimal("0");
        // If you have tax, add it here赋税
        BigDecimal tax = new BigDecimal("0");
        PayPalPaymentDetails paymentDetails = new PayPalPaymentDetails(
                shipping, subtotal, tax);

        BigDecimal amount = subtotal.add(shipping).add(tax);

        PayPalPayment payment = new PayPalPayment(
                amount,
                Config.DEFAULT_CURRENCY,
                "Description about transaction. This will be displayed to the user.",
                Config.PAYMENT_INTENT);

        payment.items(items).paymentDetails(paymentDetails);

        // Custom field like invoice_number etc.,
        payment.custom("This is text that will be associated with the payment that the app can use.");

        return payment;
    }

    /**
     * 启动支付界面
     * Launching PalPay payment activity to complete the payment
     */
    private void launchPayPalPayment() {

        PayPalPayment thingsToBuy = prepareFinalCart();

        Intent intent = new Intent(BBActivity.this, PaymentActivity.class);

        intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, paypalConfig);

        intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingsToBuy);

        startActivityForResult(intent, REQUEST_CODE_PAYMENT);
    }

    /**
     * Receiving the PalPay payment response
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE_PAYMENT) {
            if (resultCode == Activity.RESULT_OK) {
                PaymentConfirmation confirm = data
                        .getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
                if (confirm != null) {
                    try {
                        Log.e(TAG, confirm.toJSONObject().toString(4));
                        Log.e(TAG, confirm.getPayment().toJSONObject()
                                .toString(4));

                        String paymentId = confirm.toJSONObject()
                                .getJSONObject("response").getString("id");

                        String payment_client = confirm.getPayment()
                                .toJSONObject().toString();
                        Log.e(TAG, "paymentId: " + paymentId
                                + ", payment_json: " + payment_client);

                        // <span style="font-size: 12pt; font-family: Arial, Helvetica, sans-serif;">请求后台,</span>在服务器端验证付款
                        paypal(paymentId,czmon);

                    } catch (JSONException e) {
                        Log.e(TAG, "an extremely unlikely failure occurred: ",
                                e);
                    }
                }
            } else if (resultCode == Activity.RESULT_CANCELED) {
                Log.e(TAG, "The user canceled.");
            } else if (resultCode == PaymentActivity.RESULT_EXTRAS_INVALID) {
                Log.e(TAG,
                        "An invalid Payment or PayPalConfiguration was submitted.");
            }
        }
    }

    /***
     * 核实付款
     */
    private void paypal(String orders, String money) {
        showloading();
        xhttp = new Xhttp(URLManager.paypal);
        xhttp.add("orders", orders);
        xhttp.add("uid", MyData.USERID);
        xhttp.add("money", money);
        xhttp.post(new XhttpCallBack() {
            @Override
            public void onSuccess(String result) {
                try {
                    JSONObject obj = new JSONObject(result);
                    String status = obj.getString("status");
                    String mess = obj.getString("meg");
                    showMessage(mess);
                    if (status.equals("1")) {

                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                dismissloading();
            }

            @Override
            public void onError() {
                dismissloading();
            }
        });
    }

}

感谢.....
cc..
av..
http://www.androidhive.info/2015/02/android-integrating-paypal-using-php-mysql-part-2/#download_paypal_android_sdk


忘了 还有一段代码
import com.paypal.android.sdk.payments.PayPalConfiguration;
import com.paypal.android.sdk.payments.PayPalPayment;

/**
 * Created by Kkan on 2016/10/24.
 */

public class Config {
    // PayPal app configuration
    public static final String PAYPAL_CLIENT_ID = "你的clientid";
    public static final String PAYPAL_CLIENT_SECRET = "secret 前端用不到";

    public static final String PAYPAL_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_SANDBOX;
    public static final String PAYMENT_INTENT = PayPalPayment.PAYMENT_INTENT_SALE;
    public static final String DEFAULT_CURRENCY = "USD";//美元

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值