【问题标题】:PayPal mpl Android, initialization issue with ENV_SANDBOXPayPal mpl Android,ENV_SANDBOX 的初始化问题
【发布时间】:2016-08-31 07:52:24
【问题描述】:

我正在使用延迟链式付款实施自适应付款。 为此,我只需运行以下步骤:

1) 从服务器端我使用https://svcs.sandbox.paypal.com/AdaptivePayments/Preapproval 获取预批准密钥

2) 从客户端我使用 mpl for Android 让用户批准密钥

3) 从服务器端,我使用用户批准的预批准密钥创建付款

问题是我想在沙盒环境中使用 mpl 来测试所有内容,但是当我初始化 PayPal 库(在 Android 中)时,我在 onActivityResult 中收到以下错误:

“应用程序未授权”,错误代码:-1

这是代码:

PayPal pp = PayPal.getInstance();
if (pp == null) {
         pp = PayPal.initWithAppID(this, "APP-80W284485P519543T", PayPal.ENV_SANDBOX);
         pp.setLanguage("en_US");
         pp.setFeesPayer(PayPal.FEEPAYER_SECONDARYONLY);
         pp.setShippingEnabled(true);
         pp.setDynamicAmountCalculationEnabled(false);
         boolean isAppInit = pp.isLibraryInitialized();
}
pp.setPreapprovalKey("PA-64N62546XG272001B");

Intent preapproveIntent = pp.preapprove(preapproval, Taskhunters.getContext());
startActivityForResult(preapproveIntent, REQUEST_CODE);

如果我使用环境 PayPal.ENV_NONE,应用程序已正确初始化,但我需要在沙盒环境中对其进行测试,否则预批准密钥未设置为“已批准”,我无法完成付款流程。

我已经正确创建了三个沙盒帐户,并且我从服务器进行的所有 API 调用都运行良好。

所以问题是: 如何让 MPL 在沙盒环境下工作???

对于那些建议使用嵌入式流程的人,我已经尝试过,但可用性很差。

感谢您的帮助!

【问题讨论】:

    标签: android paypal paypal-sandbox paypal-adaptive-payments


    【解决方案1】:

    我终于找到了问题所在。 MPL 需要权限 READ_PHONE_STATE,这从 Android 6 变成了“危险权限”。 要使 MPL 再次工作,只需在使用库之前请求用户授予该权限即可。

    【讨论】:

    • 你在 6.0 上测试吗?
    • 现在在 6.0 上工作正常吗?我面临 5.1 的问题
    • 是的,我遇到的问题与缺少权限有关。现在我要求它,一切正常。
    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2020-12-25
    • 2012-02-03
    相关资源
    最近更新 更多