Dv_*_*_MH 9 android paypal paypal-sandbox android-intent
我正在使用PayPal 移动支付库让用户从我的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);
Run Code Online (Sandbox Code Playgroud)
我做的是我登录,然后取消交易这是我得到的日志
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
Run Code Online (Sandbox Code Playgroud)
然后我点击我的应用程序,然后点击下一步再次转到付款页面,再次单击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
Run Code Online (Sandbox Code Playgroud)
此时您无法获取付款人信息,例如电子邮件、姓名和电话等。您可能还注意到有相应的设置方法,例如 payPal.setAccountEmail("payer@xyz.com")。它们的设计目的是在您已经拥有付款人信息的情况下预先填充 PayPal 对话框。
但是,您可以使用 PayPal IPN(即时付款通知)在付款处理完毕后从 PayPal 系统获得回电。您可以从 IPN 消息中提取付款人信息。使用 Pay Key 从 IPN 消息中识别付款人。此外,调用 PayPal Activity 时必须传递 PayPalAdvancedPayment 对象。请查看此文档,PayPal Mobile 实施指南
调用流程如下:
PayPalAdvancedPayment payment = new PayPalAdvancedPayment();
payment.setIpnUrl("http://server/test");
payment.setReceivers... // Receiver objects
PayPal.getInstance().checkout(payment, this.getBaseContext());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2198 次 |
| 最近记录: |