我试图通过PHP SDK(沙箱环境)创建并执行一个与PayPal REST API的支付,如下所示。支付创建($payment->create
)工作良好,但支付执行($payment->execute
)返回“Incoming JSON request do not map to API request”
。JSON请求是由SDK创建的,那么会有什么问题呢?提前道谢。
$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);
}
我不是一个PHP开发人员(.NET),所以在阅读上面的内容的基础上,请查看代码中的这一节:
$execution = new PaymentExecution();
$result = $payment->execute($execution, $apiContext);
您正在发送一个新的paymentexecution
,而不包含payer_id
和Payment.id
,在用户批准您创建的Paypal
支付请求后,您将获得这些文件。
这就是说,我没有看到那部分(尽管如上所述,不是PHP开发人员),所以我可能是错的。这些步骤是:
b.paymentId
也将在此过程中的querystring中
在用户从PayPal重定向回您的站点(您的ReturnURL
)-Execute
一个新的Payment
之后,将其ID
设置为您获得的一个(#2B),发送PaymentExecution
及其PayerID
设置为您获得的一个(#2a)
在C#中(您需要将其转换为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);
他...
带有消息“访问https://api.sandbox.paypal.com/v1/payments/payments/payment时获得Http响应代码400”的异常“PayPal\exception\PaypalConnectionException”。“在/var/www/html/vendor/paypal/rest-api-sdk-php/lib/paypal/core/paypalht
我用的是PHP Paypal SDK:https://github.com/paypal/PayPal-PHP-SDK 通过PHP SDK引用PayPal REST API返回“传入JSON请求未映射到API请求” 继续https://stackoverflow.com/questions/39827032/paypal-how-to-get-payment-id-on-basis-of-tran
这是我的控制器,它将请求映射到以下url
我正在使用Spring实现一个RESTful web服务。其中一个endpoint接收JSON字符串作为请求体,我希望将其映射到POJO。然而,现在看来传入的JSON字符串并没有映射到POJO的属性。 这里是@RestController界面 数据模型 最后是我的发帖请求: 与内容类型指定为应用程序/json 但是,当我打印出对象值时,打印出的是默认值(“first”和“last”),而不是我传入
Web 容器需要本章描述的映射技术去映射客户端请求到 Servlet(该规范2.5以前的版本,使用这些映射技术是作为一个建议而不是要求,允许servlet 容器各有其不同的策略用于映射客户端请求到 servlet)。
我能够使用Json输出运行Jersey,并且能够在没有任何问题的情况下使用Json映射获得“get”请求。 我也有一些JSON方法,它们是“post”方法,它们映射到Java类,如下面的方法- 供您参考,我在这里或这里遵循指南 在给出一个有效的post请求时,它们都开始抛出下面的错误-