• android基于PayPal实现移动在线付款


    在开发有关于购物的app时经常需要涉及到有关付费的方式,这里我只实现了利用paypal实现用户在线付款,使用的是第三方包

    使用的流程是:

    1、导入paypal所需要的包,通过paypal提供的类库,创建Pay with  PayPal显示在页面上。

    2、点击PayPal按钮后,将进行PayPal的支付流程

    3、当付款成功后回到应用程序中

    好吧,不多说了,直接说下流程,导包之后,首先创建paypal按钮,页面上会出现如下图所示

    1     //ENVIRONMENT_NO_NETWORK;测试平台
    2     private static final String CONFIG_ENVIRONMENT = PaymentActivity.ENVIRONMENT_PRODUCTION;    //正式付款平台-------注意,测试的时候用测试平台就行了
    3     //配置客户机id(app应用程序ID)
    4     //private static final String CONFIG_CLIENT_ID = "APP-80W284485P519543T";//测试ID
    5     private static final String CONFIG_CLIENT_ID = "AWA00hBR8almg0HGK-MZ9QP3VoWhilm1Vvs93bVcERdKZFr0jjlsrq4quQRc";
    6     //收款人的邮箱
    7     private static final String CONFIG_RECEIVER_EMAIL = "XXX@163.com"; 

    要使用paypal就必须要先加载PayPal

    1    //加载Paypal    
    2    public void loadpaypal(){
    3             Intent intent = new Intent(this, PayPalService.class);     
    4             intent.putExtra(PaymentActivity.EXTRA_PAYPAL_ENVIRONMENT, CONFIG_ENVIRONMENT);//测试平台
    5             intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, CONFIG_CLIENT_ID);//客户端id
    6             intent.putExtra(PaymentActivity.EXTRA_RECEIVER_EMAIL, CONFIG_RECEIVER_EMAIL);//邮箱
    7             startService(intent);
    8     }

    点击按钮后创建PayPal页面

     1     //点击事件(点击付费按钮)
     2     @Override
     3     public void onClick(View v) {
     4             //BigDecimal第一个参数是表示当前订单的总金额,第二个参数表示:当前付款的币种,第三个参数是订单的描述
     5             PayPalPayment paypalment = new PayPalPayment(new BigDecimal(payProductMoney), "HKD", "總額:");
     6             Intent intent = new Intent(this, PaymentActivity.class);
     7             intent.putExtra(PaymentActivity.EXTRA_PAYPAL_ENVIRONMENT, CONFIG_ENVIRONMENT);
     8             intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, CONFIG_CLIENT_ID);
     9             intent.putExtra(PaymentActivity.EXTRA_RECEIVER_EMAIL, CONFIG_RECEIVER_EMAIL);
    10             //app应用程序ID
    11             intent.putExtra(PaymentActivity.EXTRA_CLIENT_ID, CONFIG_CLIENT_ID);
    12             //客户端ID
    13             intent.putExtra(PaymentActivity.EXTRA_PAYER_ID, "AQO6LxC7oVspFUW24bXk57W0ZOjcSDOr4lCnwL4WVQhZm_yZBlhQcLv31iNs");
    14             intent.putExtra(PaymentActivity.EXTRA_PAYMENT, paypalment);
    15             startActivityForResult(intent, 0);
    16     }

    如下图所示:

    有PayPal账户的直接选择付款方式,然后来到此处

    只要输入你的电子邮件和密码就能实现付款了,申明一下,这里的电子邮件是PayPal账户的电子邮件,大家如果在PayPal官网注册用过就知道了,这里我不多讲了。

    付款成功后,自动回到程序,此时可以上网查看自己的paypal账户是否产生了一条交易记录

    这里我贴上付款成功的代码,以供参考

     1     @Override
     2     protected void onActivityResult (int requestCode, int resultCode, Intent data) {
     3         if (resultCode == Activity.RESULT_OK) {
     4             PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
     5             if (confirm != null) {
     6                 try {
     7                     //付款成功之后,才开始下订单
     8                     insertOrder();//下单                   
     9                     
    10                     Toast.makeText(ConfirmOrderActivity.this, "付款成功", Toast.LENGTH_LONG).show();
    11                     getName.paymoneyFlag=null;
    12                     Intent in=new Intent(ConfirmOrderActivity.this,UserOrderListActivity.class);
    13                     startActivity(in);
    14                     finish();       
    15                     Log.i("paymentExample", confirm.toJSONObject().toString(4));
    16                 } catch (JSONException e) {
    17                    System.out.println("==========支付失败=============");
    18                 }
    19             }
    20         }
    21         else if (resultCode == Activity.RESULT_CANCELED) {
    22                  getName.paymoneyFlag=null;
    23                  System.out.println("===========取消订单===============");
    24                  getName.paymoneyFlag=null;
    25 //                 int ooid=getName.ooid;
    26 //                 if(ooid>0){
    27 //                     //改變訂單狀態
    28 //                     new updateorderstatus(ooid).execute();
    29 //                 }else{
    30 //                     System.out.println("您還沒有下單哦!");
    31 //                 }
    32         }
    33         else if (resultCode == PaymentActivity.RESULT_PAYMENT_INVALID) {           
    34                  System.out.println("=============无效的支付============");
    35         }
    36     }

    当以上步骤都实现了之后别忘记了在AndroidMainifest.xml中配置相关代码,如:

     1         <!-- PayPal付款 -->
     2         <service android:name="com.paypal.android.sdk.payments.PayPalService"
     3            android:exported="false" />
     4         <activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
     5         <activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
     6         <activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
     7         <activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
     8         <activity android:name="com.paypal.android.sdk.payments.PaymentCompletedActivity" />
     9      
    10         <activity android:name="io.card.payment.CardIOActivity"
    11                   android:configChanges="keyboardHidden|orientation" />
    12         <activity android:name="io.card.payment.DataEntryActivity" />

    好了以上便是我在项目中用到的整个付款流程....

                  

    经验的积累在于平时的点滴、
  • 相关阅读:
    HTML 相关面试题
    h5简写时钟效果
    软件工程结对作业二
    软件工程结对作业一
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    软件工程第四次作业
    软件工程第三次作业
    2019软件工程第二次作业(VS2017中对C++的单元测试)
  • 原文地址:https://www.cnblogs.com/yrhua/p/3474526.html
Copyright © 2020-2023  润新知