当前位置: 首页 > 知识库问答 >
问题:

PayPal:创建和捕获订单

马渊
2023-03-14

我遵循以下示例(https://developer.PayPal.com/docs/checkout/reference/server-integration/set-up-transaction/#on-the-server),以使PayPal在服务器上工作。

var request = new OrdersCreateRequest();
request.Prefer("return=representation");
request.RequestBody(BuildRequestBody());

var response = await PayPalClient.client().Execute(request);  //this will only create the order. How to capture it at the same time?
//continue from above
var result = response.Result<Order>();

var requestCapture = new OrdersCaptureRequest(result.Id);
requestCapture.Prefer("return=representation");
requestCapture.RequestBody(new OrderActionRequest());

response = await PayPalClient.Client().Execute(requestCapture);
"name":"UNPROCESSABLE_ENTITY",
"details":  [{
                "issue":"ORDER_NOT_APPROVED",
                "description":"Payer has not yet approved the Order for payment. Please redirect the payer to the 'rel':'approve' url returned as part of the HATEOAS links within the Create Order call or provide a valid payment_source in the request."
            }],
"message": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"links":    [{
                "href": "https://developer.paypal.com/docs/api/orders/v2/#error-ORDER_NOT_APPROVED",
                "rel": "information_link",
                "method": "GET"
            }]

我的问题是,有可能同时创建秩序、授权和捕获吗?

谢谢

共有1个答案

关昊天
2023-03-14

在使用OrdersCaptureRequest之前,必须从OrdersCreateRequest的响应重定向到[rel]=>approve链接:

    $client = PayPalClient::client();
    $response = $client->execute($request);
    $res_links = $response->result->links;
    $approve_index = array_search('approve',array_column($res_links,'rel'));
    redirect($res_links[$approve_index]->href,'location',302);`

然后使用OrdersCaptureRequest

 类似资料:
  • 是否有可能自动捕获一个订单,而不需要任何额外的捕获请求?因为当我使用贝宝按钮,它自动工作,我想有相同的结果使用REST API。

  • 我试图捕获一个贝宝交易,已经授权使用贝宝按钮。我正在尝试使用CyberSource Simple Order API来做这件事。我只有3条信息似乎是从PayPal按钮返回的:、和。我尝试了几种方法来将其传递给简单的Order API,但总是得到一个102代码,在响应中包含消息。CyberSource的日志系统指出这是因为。 我是否需要通过CyberSource进行整个交易-授权和捕获?或者是什么方

  • Im试图用支付属性payment._id保存订单,但无法在创建路由中获取捕获id。是否有一种方法通过贝宝传递一些id然后在捕获中获取该id?并且这是一个好主意,以节省订单和支付在捕获路线? 支付模型存储paypal捕获

  • 我使用Laravel 8框架的PHP和我试图集成贝宝到我的本地网络。然而,我被困在create_order_error,即使我严格遵循贝宝提供的一些样本片段,我仍然遇到这个亲 参考文献: https://developer.paypal.com/demo/checkout/#/pattern/server 错误:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

  • 当使用NodeJS SDK与PayPal的V2订单API集成时,什么时候是完成订单的正确时间(例如,向客户运送产品)。

  • 我试图通过PSP在一个使用django-paypal应用程序的网站上集成支付。