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

前端 未结 2 1402
暖寄归人
暖寄归人 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...

提交回复
热议问题