Android統合PayPal

6496 ワード

一、PayPalとは何ですか.
PayPalはeBay傘下の会社で、個人や企業が電子メールを通じて、安全で簡単で、便利にオンライン支払いと入金を実現することに力を入れています.PayPalアカウントは、PayPal社が発表した最も安全なネットワーク電子アカウントであり、これを使用すると、ネットワーク詐欺の発生を効果的に低減することができます.PayPalアカウントに統合された高度な管理機能により、取引の詳細を簡単に把握できます.現在、多国籍取引では90%以上の売り手と85%以上のバイヤーがPayPal電子決済業務を認め、使用している.
PayPalの優位性:世界のユーザーが広く、ブランド効果が強く、資金の回転が速く、安全保障が高く、使用コストが低い.
PayPalを使うメリットは何ですか?
1.海外市場を簡単に開拓し、より多くのユーザーのサポートを得る.
2.関連コストを下げ、利益率を高め、資金の回転を加速する.
3.ブランド効果を利用して、バイヤーの忠誠度を高め、ショッピングの障害を徹底的に解消する.
二、PayPalをAndroid端末のアプリに統合するにはどうすればいいですか?
1,会社からの開発アカウントを使ってpaypalの開発者サイトにログインしますhttps://developer.paypal.com.
2、https://developer.paypal.com/developer/applications/ページで「Create APP」ボタンをクリックし、ポップアップされた画面にapp name(自分のAPPに統合する必要があるname)を記入すればいいので、Sandbox(テスト環境)とLive(公式環境)に対応したClient IDとSecretを生産します.
3でhttps://developer.paypal.com/developer/accounts/ページで「Create Account」ボタンをクリックして、砂箱テストアカウントを作成します.ポップアップの作成ページには勝手に記入できます.アカウントのパスワードを覚えていればいいです.忘れたら修正して、さもないと削除して再建します.
4、準備が完了し、コードの一環を開始します.
(1)SDKをダウンロードしてプロジェクトに参加するか,依存を直接追加する.
(2)AndroidManifest.xmlにおいて,SDKにおけるActivity,serviceおよび関連権限を明示する.
(3)PayPal sdkは現在、デフォルトの最低minSDKVersion 16にアップグレードされているので、minSDKVersionを16以上に変更する必要があります.
(4)支払を開始する必要があるページで支払環境を構成する(または、ベースクラスで対応する支払環境を構成する).
(5)クラスのonCreateメソッドで支払いサービスを呼び出す.
(6)支払エンティティを作成し、支払を呼び出す必要がある場所で支払を呼び出す.
(7)クラスのonActivity Resultでコールバック結果の処理を行う.
(8)クラスのonDestroyでサービスをログアウトする.
三、PayPalのインスタンス操作とコードを統合する
1,会社の私にあげる開発のアカウントを使ってpaypalの開発者のウェブサイトにログインしますhttps://developer.paypal.com.
2、アプリケーションを作成します.
上の図の作成ボタンをクリックすると、下の図のような画面が表示され、APP Nameに記入する必要があります.
上図の作成ボタンをクリックすると、下図のような画面がポップアップされ、Sandbox(テスト環境)およびLive(本番環境)で対応するClient IDとSecretが生成されます.
3、支払いテストアカウントを作成します.
上の図のアカウント作成ボタンをクリックすると、下の図のような画面が表示されます.主に記入したアカウントとパスワードを覚えています.その他の情報は勝手に記入することができます.
作成後、登録したアカウントを下に見ることができます.
4、NameがSmartHomeのプロジェクトを作成します.
(1)app/build.gradleに依存を追加する.
compile 'com.paypal.sdk:paypal-android-sdk:2.15.3'

(2)AndroidManifest.xmlではSDKにおけるActivity,serviceおよび関連権限を明示する.


















(3)を確認し、minSDKVersionが16以上であることを確認します.そうしないとASはエラーを報告します.
Error:Execution failed for task ':app:processDebugManifest'.

(4)支払を開始する必要があるページで支払環境を構成する(またはベースクラスで対応する支払環境を構成する).
//        ,    ,  
private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_SANDBOX;
private static final String DEFAULT_CURRENCY = "USD";
//     APP Id
private static final String CONFIG_CLIENT_ID = "     CLient Id";   
private static final int REQUEST_CODE_PAYMENT = 1;
private static final int REQUEST_CODE_FUTURE_PAYMENT = 2;
private static final int REQUEST_CODE_PROFILE_SHARING = 3;
private static PayPalConfiguration paypalConfig = new PayPalConfiguration().environment(CONFIG_ENVIRONMENT)
.clientId(CONFIG_CLIENT_ID);
//               
//.merchantName("Example Merchant")
// .merchantPrivacyPolicyUri(Uri.parse("https://www.example.com/privacy"))
//.merchantUserAgreementUri(Uri.parse("https://www.example.com/legal"));

(5)クラスのonCreateメソッドで支払いサービスを呼び出す.
Intent intent = new Intent(this, PayPalService.class);
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, paypalConfig);
startService(intent);

(6)支払エンティティを作成し、支払を呼び出す必要がある場所で支払を呼び出す.
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
       PayPalPayment payment = new PayPalPayment(new BigDecimal("1.75"), "USD", "hipster jeans",
                    PayPalPayment.PAYMENT_INTENT_SALE);
       Intent intent = new Intent(MainActivity.this, PaymentActivity.class);
       intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment);
       startActivityForResult(intent, REQUEST_CODE_PAYMENT);
        }
  });

(7)クラスのonActivity Resultでコールバック結果の処理を行う.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (data == null) {
        return;
    }

    PaymentConfirmation confirm = data
            .getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);

    String paymentId;
    try {
        paymentId = confirm.toJSONObject().getJSONObject("response")
                .getString("id");

        String payment_client = confirm.getPayment().toJSONObject()
                .toString();

        Log.e(TAG, "paymentId: " + paymentId + ", payment_json: "+ payment_client);
        // TODO : paymentId payment_json                        
        // TODO :          ,                   
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

(8)、クラスのonDestroyでサービスをログアウトします.
@Override
public void onDestroy() {
    stopService(new Intent(this, PayPalService.class));
    super.onDestroy();
}

四、PayPalのチャージと現金引き出し
PayPalのチャージと現金化のチュートリアルを添付します.http://waihuizhan.com/paypal-funds-and-withdrawals/