我正在使用延迟链式付款实施自适应付款。 为此,我只需执行以下步骤:
1)从服务器端我使用https://svcs.sandbox.paypal.com/AdaptivePayments/Preapproval获取预先批准密钥
2)从客户端我使用mpl for Android让用户批准密钥
3)从服务器端,我使用预先批准密钥创建付款,由用户批准
问题是我想在Sandbox环境中使用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,则应用程序已正确初始化,但我需要在Sandbox环境中对其进行测试,否则预批准密钥未设置为"已批准"而且我无法完成付款流程。
我正确创建了三个沙盒帐户,并且我从服务器调用的所有API调用都完美无缺。
所以问题是: 我如何使用MPL处理沙盒环境???
对于那些建议使用嵌入式流程的人,我已经尝试过,但可用性很糟糕。
感谢您的帮助!
答案 0 :(得分:0)
最后我发现了问题。 MPL需要权限READ_PHONE_STATE,这成为了一个危险的权限"来自Android 6。 要使MPL再次运行,只需要求用户在使用库之前授予该权限。