PayPal REST API through PHP SDK return “Incoming JSON request does not map to API request”

前端 未结 2 1375
暖寄归人
暖寄归人 2021-01-28 10:10

I\'m trying to create and execute a payment with PayPal REST API through PHP SDK (sandbox environment) like showing below. The payment creation ($payment->create

相关标签:
2条回答
  • 2021-01-28 10:51

    Am not a PHP dev (.Net), so based on reading the above, check into this section in your code:

    $execution = new PaymentExecution();
    $result = $payment->execute($execution, $apiContext);
    

    You are sending a new PaymentExecution without the payer_id and the Payment.Id which you would obtain after the user approves your paypal Payment request that you created.

    That said, I don't see that part (though as above, not a PHP dev) so I could be wrong. The steps are:

    1. Create the Payment

    2. Go into the Approval Flow -> user is redirected to Paypal and approves the Payment you created in #1 -> and is redirected back to your site (the returnUrl)

      a. the PayerID will be in the querystring in this process

      b. the paymentId will also be in the querystring in this process

    3. After the user is redirected back to your site from PayPal (your returnUrl) - Execute a new Payment, set it's id to the one you obtained (#2b), sending the PaymentExecution with its PayerID set to the what you you obtained (#2a)

    In c# (you'll need to convert this to PHP):

        var _payment = new Payment { id = the_payment_id_you_obtained };
        var _payExec = new PaymentExecution { payer_id = the_payer_id_you_obtained };
    
        var _response = _payment.Execute(context, _payExec);
    

    Hth...

    0 讨论(0)
  • 2021-01-28 11:04

    It was enough put

    $payment->setIntent('authorize')
    

    instead of

    $payment->setIntent('sale')
    

    and eliminate the execution

    $execution = new PaymentExecution(); $result = $payment->execute($execution, $apiContext);
    

    Then, after

    $payment->create
    

    I used the "href" from

    $payment->links
    

    to do the redirect. Everything went perfectly. Thank you all.

    0 讨论(0)
提交回复
热议问题