2016-09-23 7 views
1

私のiOSアプリの支払いチェックアウト機能を開発しています。PayPal SDK(Java)で承認済み支払いを実行する際にpayerIdを取得する場所

サーバのバックエンドはjavaで書かれています。私はintentauthorizeであるとPayPalPaymentViewControllerでユーザー承認のお支払い後に取得

データは、私が支払いを実行するためのサーバ用idPAY-8J37....)を送信し、その後

{ 
    client =  { 
     environment = sandbox; 
     "paypal_sdk_version" = "2.14.2"; 
     platform = iOS; 
     "product_name" = "PayPal iOS SDK"; 
    }; 
    response =  { 
     "authorization_id" = 6238627648439564E; 
     "create_time" = "2016-09-23T08:54:18Z"; 
     id = "PAY-8J788131PV1025742K7SO3MQ"; 
     intent = authorize; 
     state = approved; 
    }; 
    "response_type" = payment; 
} 

です。ここ

Serverコード:

Payment payment = new Payment(); 
payment.setId(paymentId); 
APIContext apiContext = new APIContext(PAYPAL_CLIENT_ID_SANDBOX, PAYPAL_CLIENT_SECRET_SANDBOX, "sandbox"); 
PaymentExecution paymentExecution = new PaymentExecution(); 
paymentExecution.setPayerId("");//<--- payerId is required 
try { 
    payment.execute(apiContext, paymentExecution); 
} catch (PayPalRESTException e) { 
    //print error 
} 

その後PayPalRESTExceptionがキャッチされます。 エラーの詳細は次のとおりです。field payer_id must not be blank

この問題は、数時間にわたりグーグルで起こっています。

また、authorization_idはiOS SDKの応答の意味は何ですか?役に立たないですか?

私を助けてください。 ありがとうございます。

答えて

0

数時間のグーグルで、私は答えを見つけました。

私は支払いの流れを誤解していました。

私のモバイル決済の流れは

  • [ユーザー]を支払い、payment_idauthorization_idが返されることを許可する必要があります。ユーザーのアカウントは入金されます。 authorization_idを[サーバー]に転送
  • [サーバー]はauthorization_idを使用して支払いを取得します。一度お支払いの場合はis_final_capturetrueに設定することを忘れないでください。キャプチャ後、商人のアカウントが資金提供されます。 [サーバー]はユーザーの残高を増加させます。

ありがとうございました

関連する問題