贝宝服务器 API。没有转账
Posted
技术标签:
【中文标题】贝宝服务器 API。没有转账【英文标题】:Paypal Server API. No money transfered 【发布时间】:2021-06-14 02:46:53 【问题描述】:我正在将 paypal 集成到我们的购物系统中。
我正在使用 Java API。
目前的形式如下:
用户选择paypal作为支付方式,点击“Pay Order”
服务器发送一个带有捕获意图的 createOrder 请求。
服务器收到带有链接的响应。
用户被重定向到“批准”链接。
完成后,paypal 将用户重定向到带有“感谢您的订单消息”的商店页面。
所有这些都按预期工作。
但是没有付款/没有转账。
我在这里做错了什么?
提前致谢!
请求/响应参考:
Request: ,
"application_context" :
"user_action" : "PAY_NOW",
"landing_page" : "BILLING",
"return_url" : "https://www.foobar.de.localhost:8443/payment/paypal?result=ok&order_id=MGS063464&secret=2E1C1B304178...",
"brand_name" : "<removed>",
"cancel_url" : "https://www.foobar.de.localhost:8443/payment/paypal?result=cancel&order_id=MGS063464",
"shipping_preference" : "SET_PROVIDED_ADDRESS"
,
"purchase_units" : [
"amount" :
"breakdown" :
"shipping" :
"value" : "3",
"currency_code" : "EUR"
,
"item_total" :
"value" : "2.45",
"currency_code" : "EUR"
,
"value" : "5.45",
"currency_code" : "EUR"
,
"reference_id" : "MGS063464",
"shipping" :
"address" :
"country_code" : "DE",
"address_line_1" : "<removed>",
"admin_area_2" : "<removed>",
"postal_code" : "<removed>"
,
"name" :
"full_name" : "<removed>"
,
"description" : "<removed>,
"items" : [
"quantity" : "1",
"name" : "<removed>",
"unit_amount" :
"value" : "2.45",
"currency_code" : "EUR"
,
"sku" : "OCI08"
]
],
"intent" : "CAPTURE"
Response: ,
"create_time" : "2021-03-14T10:52:46Z",
"purchase_units" : [
"payee" :
"email_address" : "<removed>",
"merchant_id" : "L4EC8HB5DTVSC"
,
"amount" :
"breakdown" :
"shipping" :
"value" : "3.00",
"currency_code" : "EUR"
,
"item_total" :
"value" : "2.45",
"currency_code" : "EUR"
,
"value" : "5.45",
"currency_code" : "EUR"
,
"reference_id" : "MGS063464",
"shipping" :
"address" :
"country_code" : "DE",
"address_line_1" : "<removed>",
"admin_area_2" : "<removed>",
"postal_code" : "<removed>"
,
"name" :
"full_name" : "<removed>"
,
"description" : "<removed>",
"items" : [
"quantity" : "1",
"name" : "<removed>",
"unit_amount" :
"value" : "2.45",
"currency_code" : "EUR"
,
"sku" : "OCI08"
]
],
"links" : [
"method" : "GET",
"rel" : "self",
"href" : "https://api.sandbox.paypal.com/v2/checkout/orders/5MY66978KX626104P"
,
"method" : "GET",
"rel" : "approve",
"href" : "https://www.sandbox.paypal.com/checkoutnow?token=5MY66978KX626104P"
,
"method" : "PATCH",
"rel" : "update",
"href" : "https://api.sandbox.paypal.com/v2/checkout/orders/5MY66978KX626104P"
,
"method" : "POST",
"rel" : "capture",
"href" : "https://api.sandbox.paypal.com/v2/checkout/orders/5MY66978KX626104P/capture"
],
"id" : "5MY66978KX626104P",
"intent" : "CAPTURE",
"status" : "CREATED"
【问题讨论】:
【参考方案1】:您缺少 API 调用,第 5 步应改为:服务器发送捕获订单请求。
您最后的第 6 步应该是仅在捕获成功的情况下感谢买家
请参阅the documentation 中的“捕获订单”。
重定向到“批准”链接是旧网站的旧集成方法。为了获得现代用户体验,您应该通过将“创建订单”和“捕获订单”更改为仅返回 JSON 数据(没有其他 html 或文本)的两个服务器路由来保持页面加载(而不是重定向)
将这些路由与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server
【讨论】:
非常感谢。我希望在这个 *** 文档中有一些订单流/请求图。以上是关于贝宝服务器 API。没有转账的主要内容,如果未能解决你的问题,请参考以下文章