2017-06-22 5 views
0

私はPayPalネイティブアンドロイドモバイルSDKを使用して支払いを行っています。以下は、成功応答はINVALID_RESOURCE_ID in paypal

{"response":{"state":"approved","id":"PAY-someID","create_time":"2017-06-21T18:01:33Z","intent":"sale"},"client":{"platform":"Android","paypal_sdk_version":"2.15.3","product_name":"PayPal-Android-SDK","environment":"sandbox"},"response_type":"payment"} 

ですが、バックエンドが支払いのidすなわちPAY-someIDで検証したい場合には、下記のたびに、以下の

[debug] application - verifyPayment mitemreqCppverifpmtrequest(PAY-someID) 
[debug] application - verifpmtrequest case mendpointt https://api.sandbox.paypal.com/v1/payments/payment/PAY-someID 
[debug] application - tx.get.body{"name":"INVALID_RESOURCE_ID","message":"Requested resource ID was not found.","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID","debug_id":"someID"} 

のようなエラーJSONを投げているアンドロイドのコードです

private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_SANDBOX; 

    private static PayPalConfiguration config = new PayPalConfiguration() 
       .environment(CONFIG_ENVIRONMENT) 
       .clientId(CONFIG_CLIENT_ID) 
       // The following are only used in PayPalFuturePaymentActivity. 
       .merchantName("Example Merchant") 
       .merchantPrivacyPolicyUri(Uri.parse("https://www.example.com/privacy")) 
       .merchantUserAgreementUri(Uri.parse("https://www.example.com/legal")); 
    PayPalPayment thingToBuy = getThingToBuy(PayPalPayment.PAYMENT_INTENT_SALE); 
     Intent intent = new Intent(SampleActivity.this, PaymentActivity.class); 
     intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); 

     intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy); 

     startActivityForResult(intent, REQUEST_CODE_PAYMENT); 

     return new PayPalPayment(new BigDecimal("0.01"), "USD", "sample item", 
       paymentIntent); 


@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == REQUEST_CODE_PAYMENT) { 
      if (resultCode == Activity.RESULT_OK) { 
       PaymentConfirmation confirm = 
         data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION); 
       if (confirm != null) { 
        try { 
         Log.i(TAG, confirm.toJSONObject().toString(4)); 
} 
} 
} 

問題が

以下同様です

これを解決する方法はありません。

+0

お使いのペイパルバージョンは? –

+0

最新の 'com.paypal.sdk:paypal-android-sdk:2.15.3' – Soham

+0

Okey。 startService()のコードはどこですか? –

答えて

0

これは私のGoogle PlayStoreアプリケーションの動作コードです。

PayPalConfiguration config = new PayPalConfiguration().environment(PayPalConfiguration.ENVIRONMENT_SANDBOX).clientId("Your id"); 

Intent intent = new Intent(context, PayPalService.class); 
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); 
startService(intent); 

PayPalPayment payment = new PayPalPayment(new BigDecimal(charge), "USD", eventName, PayPalPayment.PAYMENT_INTENT_SALE); 
Intent intent = new Intent(activity, PaymentActivity.class); 
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); 
intent.putExtra(PaymentActivity.EXTRA_PAYMENT, payment); 
startActivityForResult(intent, 1089); 

OnDestroy()でサービスを停止しないでください。

@Override 
protected void onDestroy() { 
    stopService(new Intent(this, PayPalService.class)); 
    super.onDestroy(); 
} 

また、OnActivityResult内のサービスを停止してください。すべてのタスクを実行してください。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == Activity.RESULT_OK && requestCode == 1089) { 
     PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION); 
     if (confirm != null) 
     { 
      try 
      { 
       // Your code after successful response.      
      } catch (JSONException e) { 
       Log.error(getClass().getName(), e); 
      } 
     } 
     stopService(new Intent(this, PayPalService.class)); 
    } else if (resultCode == Activity.RESULT_CANCELED) { 
     // 
    } else if (resultCode == PaymentActivity.RESULT_EXTRAS_INVALID) { 
     // 
    } 
} 
+0

私は試していますが、私が得意ではないのは、私がサンプルPayPal GitHubからコードを選んだことです。それがうまくいくはずです。コードをチェックして元に戻りますが。 – Soham

+0

申し訳ありません、サーバーからの応答が同じです。 – Soham

+0

Paypal Sandboxアカウントを確認してください。適切に設定されているかどうか。 –