2012-02-23 16 views
1

私は定期支払いをテストしています。 doExpressCheckoutPaymentアクションの後、私は自分のサンドボックスのペイパルアカウントにステータスPendingを受け取りました。なぜステータスが完了していないのですか?ステータスの完了までにどれくらいの時間が必要ですか?または、サンドボックス内のいくつかのパラメータを設定する必要があります。私はデフォルト設定を使用しています。お支払いのレビュー - 無効です。 ! おかげで) enter image description herepaypal API doExpressCheckoutPaymentステータス保留中

UPD 1:ここでは が私の要求コードです:

public function setPayment($plan){ 
     $params = array(
      'PAYMENTREQUEST_0_AMT' => '10.00', 
      'RETURNURL' => $this->base_url.'/paypal/response', 
      'CANCELURL' => $this->base_url.'/paypal/paypal', 
      'PAYMENTREQUEST_0_PAYMENTACTION' => 'Authorization', 
      'PAYMENTREQUEST_0_CURRENCYCODE' => 'GBP', 
      'PAYMENTREQUEST_0_DESC' => 'Testing PayPal recurring', 
      'PAYMENTREQUEST_0_NOTIFYURL' => 'http://barton.netai.net/ipn.php', 
      'L_BILLINGTYPE0' => 'RecurringPayments', 
      'L_BILLINGAGREEMENTDESCRIPTION0' => 'SamePayments' 
     ); 
    $this->_paypal->addFields($params); 
    $response = $this->_paypal->request('SetExpressCheckout'); 
    if (strtoupper($response['ACK'])=='SUCCESS'){ 
     $token=$response['TOKEN']; 
     header('Location: '.$this->_paypal->getPaypalUrl().'?cmd=_express-checkout&token='.$token); 
     return true; 
    } else { 
     return false; 
    } 
} 

public function responseAction(){ 
    if (isset($_GET['token']) && isset($_GET['PayerID'])){ 
     $this->_paypal->addFields(array('TOKEN'=>$_GET['token'])); 
     $response=$this->_paypal->request('GetExpressCheckoutDetails'); 
     if ($response['ACK']=='Success'){ 
      $response=array(); 
      $this->_paypal->addFields(array(
              'TOKEN' => $_GET['token'], 
              'PAYMENTREQUEST_0_PAYMENTACTION' => 'Authorization', 
              'PAYERID' => $_GET['PayerID'], 
              'L_BILLINGTYPE0' => 'RecurringPayments', 
              'L_BILLINGAGREEMENTDESCRIPTION0' => 'SamePayments', 
              'PAYMENTREQUEST_0_AMT' => '10.00', 
              'PAYMENTREQUEST_0_CURRENCYCODE' => 'GBP' 
            )); 
      $response=$this->_paypal->request('DoExpressCheckoutPayment'); 
      show($response); exit; 
     } 
    } 
} 

SetExpressCheckoutの応答:

Array 
(
    [TOKEN] => EC-01C99915Y11155245 
    [TIMESTAMP] => 2012-02-24T10:23:32Z 
    [CORRELATIONID] => 69e91a5abc347 
    [ACK] => Success 
    [VERSION] => 84 
    [BUILD] => 2571254 
) 

doExpressCheckoutPayment応答:

Array 
(
    [TOKEN] => EC-2FR88291S31672645 
    [SUCCESSPAGEREDIRECTREQUESTED] => false 
    [TIMESTAMP] => 2012-02-24T10:26:08Z 
    [CORRELATIONID] => a95c7a9bb64b3 
    [ACK] => Success 
    [VERSION] => 84 
    [BUILD] => 2571254 
    [INSURANCEOPTIONSELECTED] => false 
    [SHIPPINGOPTIONISDEFAULT] => false 
    [PAYMENTINFO_0_TRANSACTIONID] => 2RN165632T770592L 
    [PAYMENTINFO_0_TRANSACTIONTYPE] => expresscheckout 
    [PAYMENTINFO_0_PAYMENTTYPE] => instant 
    [PAYMENTINFO_0_ORDERTIME] => 2012-02-24T10:26:06Z 
    [PAYMENTINFO_0_AMT] => 10.00 
    [PAYMENTINFO_0_TAXAMT] => 0.00 
    [PAYMENTINFO_0_CURRENCYCODE] => GBP 
    [PAYMENTINFO_0_PAYMENTSTATUS] => Pending 
    [PAYMENTINFO_0_PENDINGREASON] => authorization 
    [PAYMENTINFO_0_REASONCODE] => None 
    [PAYMENTINFO_0_PROTECTIONELIGIBILITY] => Eligible 
    [PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE] => ItemNotReceivedEligible,UnauthorizedPaymentEligible 
    [PAYMENTINFO_0_SECUREMERCHANTACCOUNTID] => WLC8CZSP2C5L8 
    [PAYMENTINFO_0_ERRORCODE] => 0 
    [PAYMENTINFO_0_ACK] => Success 
) 

私の前のquestionでは、販売のためにPAYMENTREQUEST_0_PAYMENTACTIONをインストールするようにアドバイスしました。 これは私がこの問題を決めるのに役立つでしょうか?

+0

完全なSetExpressCheckoutおよびDoExpressCheckoutPayment APIリクエストとレスポンスを含めてください。また、取引を完了する際にどの資金源を選択しましたか? – Robert

+0

私はリクエストとレスポンスを追加しました。UPD1を参照ください –

+0

@YuriyNedostupあなたはそれを供給するとPAYMENTREQUEST_0_NOTIFYURLが動作しますか?私はそれがDoExpressCheckoutPaymentで提供され、SetExpressCheckoutで無視される(https://developer.paypal.com/docs/classic/api/merchant/SetExpressCheckout_API_Operation_NVP/#id1055FM0B05Z__N5060Fに従って)のみ動作する必要があることを意味します。 – jayarjo

答えて

2

他の質問で述べたように、あなたは「認証」にPAYMENTREQUEST_0_PAYMENTACTIONを設定

'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale', 
+0

PayPalのAPIには、ExpressCheckoutに間違った例が含まれているようです。 –

+0

Authorization&Captureを使用する場合は、認証は完全に有効な値です。 – Robert

+0

PayPalページ22のエクスプレスチェックアウトガイドは、「PAYMENTREQUEST_0_PAYMENTACTION」を「Sale」と同じにしてSetExpressCheckoutを行いますが、DoExpressCheckoutPaymentの承認に等しい「PAYMENTREQUEST_0_PAYMENTACTION」を使用します。 –

0

によって

'PAYMENTREQUEST_0_PAYMENTACTION' => 'Authorization', 

、あなたが場所に、資金が利用可能であり、彼らがしている場合かどうかを確認するためのPayPalを求めていることを意味しそれらを72時間保持する。承認を取得するまでに最大29日かかります。実行すると、資金は3日間だけ保留されます。 29日間の最初の72時間は「名誉期間」と呼ばれ、PayPalは資金が利用可能であることを保証します。

  • 3日間のホールドは、このような デビットカードとして、 カード発行銀行、またはACH取引の銀行自体に応じて、ほとんどの場合に発生します。場合によっては、3日の保留は放棄されますが、 の場合は、30日までのカードの保留または次の請求期間までの の保留があります。
  • 29日間の最後の3日以内に資金を回収する場合、これらの資金は、通常の3日間ではなく、29日目の末日まで、 に保留されます。
  • 元の承認額より少ない金額、つまり の金額、または元の認可額の115%または$ 75を超える金額を取得することができます。 のいずれか小さい方。

そして、あなたは「販売」にPAYMENTREQUEST_0_PAYMENTACTIONを設定すると、支払いが資金を保持せずに処理されます。ファンドは、買い手の資金調達元からすぐにPayPal口座残高に転送されます。

  • あなたは、このようなデジタルグッズや、すぐに注文を受ける として船の製品として、迅速 を届けているものは「販売」オプションを使用します。
  • ファンドはすぐに買い手の資金調達元から取得され、 はPayPalアカウントの残高に送られます。
関連する問題