我正在实施一个自适应支付使用延迟链式支付。为此,我只需运行以下步骤:
1)在服务器端,我使用https://svcs.sandbox.paypal.com/AdaptivePayments/Preapproval获取预批准密钥
2)在客户端,我使用Android的mpl让用户认可密钥
3)在服务器端,我使用用户批准的预批密钥创建付款
问题是,我想在沙盒环境中使用mpl来测试所有东西,但是,当我初始化PayPal库(在安卓中)时,我在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在沙箱环境中工作?
对于那些建议使用嵌入式流程的人,我已经尝试过了,但可用性太差了。
谢谢你的帮助!
发布于 2016-05-06 21:37:31
我终于找到了问题所在。MPL需要权限READ_PHONE_STATE,这是从Android6开始的“危险权限”。要让MPL再次工作,只需在使用库之前要求用户授予该权限即可。
https://stackoverflow.com/questions/37052066
复制相似问题