4

PayPal を自分のアプリに統合したいと考えています。これを見るまで、私はそこにたどり着きそうになりました: https://developer.paypal.com/webapps/developer/support/faq#non-US-dev Paypal では、米国以外の開発者が REST API を使用することは許可されていません。したがって、私が残した選択肢はクラシック API です。ここで問題が発生します。使い方がわかりません。

NVP api を使用する予定です。どうすればいいのかわかりませんが、以下は私が計画している方法のフローチャートです。www.domain.com/setsessions.php に送信される checkout.java で商品番号、説明、価格などを設定する必要があります。

それがうまくいくかどうかはわかりません。しかし、できたとしても、新しい「意図」は、ユーザーが支払いを正常に行ったか、支払いを失敗したか、支払いをキャンセルしたかをどのように検出できるのでしょうか。

アプリペイパルの流れ

これについて助けが必要です。本当にイライラします..ほぼ2週間ペイパルを統合しようとしてきました. 非生産的な感じ..

これでも大丈夫ですか?または、より良い方法はありますか?私の要件は、請求書番号、商品番号、説明、価格、場所を設定することです。これらはすべてアプリから必要です。

4

1 に答える 1

5

MainActivity.java

public class PizzaMain extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        PayPal ppObj = PayPal.initWithAppID(this.getBaseContext(), "APP-80W284485P519543T", PayPal.ENV_NONE);

        CheckoutButton launchPayPalButton = ppObj.getCheckoutButton(this, PayPal.BUTTON_152x33, CheckoutButton.TEXT_PAY);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        params.addRule(RelativeLayout.CENTER_HORIZONTAL);

        launchPayPalButton.setLayoutParams(params);
        launchPayPalButton.setOnClickListener(this);

        ((RelativeLayout) findViewById(R.id.mRlayout1)).addView(launchPayPalButton);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        PayPalPayment newPayment = new PayPalPayment();
        char val[] = { '5', '0' };
        BigDecimal obj_0 = new BigDecimal(val);
        newPayment.setSubtotal(obj_0);
        newPayment.setCurrencyType("USD");
        newPayment.setRecipient("my@email.com");
        newPayment.setMerchantName("My Company");
        Intent paypalIntent = PayPal.getInstance().checkout(newPayment, this);
        this.startActivityForResult(paypalIntent, 1);
    }

    @SuppressWarnings("unused")
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (resultCode) {
            case Activity.RESULT_OK:
            // The payment succeeded
            String payKey = data.getStringExtra(PayPalActivity.EXTRA_PAY_KEY);
            // Tell the user their payment succeeded
            break;
            case Activity.RESULT_CANCELED:
            // The payment was canceled
            // Tell the user their payment was canceled
            break;
            case PayPalActivity.RESULT_FAILURE:
            // The payment failed -- we get the error from the EXTRA_ERROR_ID
            // and EXTRA_ERROR_MESSAGE
            String errorID = data.getStringExtra(PayPalActivity.EXTRA_ERROR_ID);
            String errorMessage = data.getStringExtra(PayPalActivity.EXTRA_ERROR_MESSAGE);
            // Tell the user their payment was failed.
            break;
        }
    }
}

AndroidManifest.xml ファイルに以下の権限を付与します。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

AndroidManifest.xml ファイルに Activity を追加します。

<activity
    android:name="com.paypal.android.MEP.PayPalActivity"
    android:configChanges="keyboardHidden|orientation"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

PayPal_MPL.jar Jar ファイルを参照ライブラリとしてアプリケーションに追加します。

于 2013-05-16T06:15:35.663 に答える