我正在使用PayPal Mobile Payment Library让用户通过我的Android应用程序支付旅程费用。
当用户点击使用Paypal按钮付款时,登录屏幕显示,当用户登录时,他能够成功付款。这一切都适用于我的应用程序。我需要的是在用户完成/取消onActivityResult代码中的付款后获取用户详细信息。
请看下面我的代码,遗憾的是它没有从paypal帐户中获取详细信息,所以我想知道是否有另一种方法可以在登录后从paypal获取用户详细信息。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch (requestCode)
{
case PAYPAL_REQUESTCODE:
{
Log.w("tag","jemail#"+ PayPal.getInstance().getAccountEmail());
Log.w("tag","jname#"+ PayPal.getInstance().getAccountName());
Log.w("tag","jphone#"+ PayPal.getInstance().getAccountPhone());
Log.w("tag","jdialcode#"+ PayPal.getInstance().getAccountCountryDialingCode());
switch(resultCode)
{
case Activity.RESULT_OK:
{
String payKey = data.getStringExtra(PayPalActivity.EXTRA_PAY_KEY);
Log.d("tag", "PayPal payment succeeded");
Log.d("tag", "PayPal payKey: " + payKey);
我所做的是登录,然后取消交易 这是我得到的日志
04-30 12:30:19.672: W/tag(24697): jemail#
04-30 12:30:19.672: W/tag(24697): jname#
04-30 12:30:19.672: W/tag(24697): jphone#+44
04-30 12:30:19.672: W/tag(24697): jdialcode#44
然后我点击我的应用程序,然后点击下一步再次转到付款页面,再次点击pay with paypal按钮,这次我已经登录,然后我取消交易
04-30 12:30:43.878: W/tag(24697): jemail#
04-30 12:30:43.878: W/tag(24697): jname#H.O.P.E
04-30 12:30:43.878: W/tag(24697): jphone#+44
04-30 12:30:43.878: W/tag(24697): jdialcode#44
答案 0 :(得分:3)
此时您无法获得付款人信息,如电子邮件,姓名和电话等。您可能还注意到有相应的设置方法,如payPal.setAccountEmail(“payer@xyz.com”)。如果您已经拥有这些信息,它们的目的是预先填写PayPal对话框和付款人信息。
但是,您可以使用PayPal IPN(即时付款通知)在付款处理后从PayPal系统接听回电。从IPN消息中,您可以提取付款人信息。使用Pay Key从IPN消息中识别付款人。此外,您必须在调用PayPal活动时传递PayPalAdvancedPayment对象。请查看此文档PayPal Mobile implementation guide
调用程序如下:
PayPalAdvancedPayment payment = new PayPalAdvancedPayment();
payment.setIpnUrl("http://server/test");
payment.setReceivers... // Receiver objects
PayPal.getInstance().checkout(payment, this.getBaseContext());
答案 1 :(得分:3)
检查此项(OAuth): https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/#getStart
并且:https://developer.paypal.com/webapps/developer/docs/integration/direct/log-in-with-paypal/detailed/
使用HttpClient
和WebView
进行身份验证并继续进行 - 此应用的WebFrame可能有点复杂,但这是我能立即想到的 - 除非您使用其他OAuth提供商的应用程序库< / p>
另见 - http://developer.android.com/reference/android/webkit/WebView.html