PayPal REST API 通过 PHP SDK 返回“传入的 JSON 请求未映射到 API 请求" [英] PayPal REST API through PHP SDK return "Incoming JSON request does not map to API request"
本文介绍了PayPal REST API 通过 PHP SDK 返回“传入的 JSON 请求未映射到 API 请求"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试通过 PHP SDK(沙盒环境)使用 PayPal REST API 创建和执行付款,如下所示.付款创建 ($payment->create
) 工作正常,但付款执行 ($payment->execute
) 返回 "传入的 JSON 请求未映射到 API 请求"
.JSON 请求是由 SDK 创建的,那么会出现什么问题呢?提前致谢.
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
) work fine but the payment execution ($payment->execute
) return "Incoming JSON request does not map to API request"
.
The JSON request is created by the SDK, then what can be the problem?
Thanks in advance.
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$item = new Item();
$item->setName('Any name')
->setCurrency('EUR')
->setQuantity(1)
->setPrice(0.99);
$itemList = new ItemList();
$itemList->setItems(array($item));
$details = new Details();
$details->setTax(0)
->setSubtotal(0.99);
$amount = new Amount();
$amount->setCurrency('EUR')
->setTotal(0.99)
->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($itemList)
->setDescription('Any description')
->setInvoiceNumber(uniqid());
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl(BASE_URL.'/payment/?success=true')
->setCancelUrl(BASE_URL.'/payment/?success=false');
$payment = new Payment();
$payment->setIntent('sale')
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions(array($transaction));
try {
$payment->create($apiContext);
$execution = new PaymentExecution();
$result = $payment->execute($execution, $apiContext);
} catch (Exception $ex) {
//Function for extract the error message,
//the error message can be showing with
//a simple var_dump($ex)
$exception = self::getException($ex);
}
推荐答案
放够了
$payment->setIntent('authorize')
代替
$payment->setIntent('sale')
并消除执行
$execution = new PaymentExecution(); $result = $payment->execute($execution, $apiContext);
然后,之后
$payment->create
我使用了来自
$payment->links
进行重定向.一切都很顺利.谢谢大家.
to do the redirect. Everything went perfectly. Thank you all.
这篇关于PayPal REST API 通过 PHP SDK 返回“传入的 JSON 请求未映射到 API 请求"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文