PayPal 在每笔交易中返回 PayerID。我需要获取客户的电子邮件地址和其他交易详细信息。
像这样返回 URL,并在其中附加 PayerID。这是示例:https://myreturnurl?PayerID=WA7G59W5XVSY
PayPal有没有API可以通过PayerID获取交易数据。
或者如果您有任何与此查询相关的建议。
提前谢谢您。
我不是 PHP 开发人员,但您可以从 PayPal 的 Order Details API 获取付款人信息,因为没有直接的 API 用于从 PayerId 获取付款详细信息,因为付款人正在进行多笔交易,每笔交易都可以由 payment_id 或 order_id
唯一标识这是我用Java实现的
public PayPalOrderResponseDTO getOrderDetails(String orderId) throws IOException, InterruptedException {
var accessTokenDTO = getAuthResponse();
var request = HttpRequest.newBuilder()
.uri(URI.create(createUrl(BASE_URL, ORDER_DETAILS, orderId)))
.header(HttpHeaders.AUTHORIZATION, "Bearer " + accessTokenDTO.accessToken())
.GET()
.build();
var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
var content = response.body();
return objectMapper.readValue(content, PayPalOrderResponseDTO.class);
}
其中 ORDER_DETAILS 是一个枚举
ORDER_DETAILS("/v2/checkout/orders/{id}"),
createUrl()方法
public static String createUrl(String baseUrl, PayPalEndpoints endpoints, String pathVariable){
String path = endpoints.path.replace("{id}", pathVariable);
return baseUrl + path;
}
PayPalResponseDTO 看起来像
public record PayPalOrderResponseDTO(
@JsonProperty("create_time")
String creationTime,
@JsonProperty("update_time")
String updateTime,
String id,
@JsonProperty("processing_instruction")
PayPalProcessingInstruction processingInstruction,
@JsonProperty("purchase_units")
List<PayPalPurchaseUnit> payPalPurchaseUnits,
List<PayPalLinks> links,
@JsonProperty("payment_source")
PayPalPaymentSource paymentSource,
PayPalOrderIntents intent,
@JsonProperty("payer")
PayPalPayer payPalPayer,
PayPalOrderStatus status
) {
}
在此回复中我们可以获取付款人信息
{
"email_address": "[email protected]",
"name": {
"given_name": "name",
"surname": "surname"
},
"phone": {
"phone_type": "HOME",
"phone_number": 354678768
},
"birth_data": "2023-03-01"
}
我在代码中所做的是使用 Java 记录类型映射整个 PayPal API 响应和请求数据,这可以使用 TypeScript 或任何其他语言完成。