如何在paypal mobile SDK中获取交易ID或其他信息

时间:2014-12-03 11:19:36

标签: android paypal paypal-sandbox paypal-mobile-sdk

我最近使用以下教程实现了paypal移动支付教程: http://androiddevelopmentanddiscussion.blogspot.com/2014/05/paypal-integration-in-android.html

作为回应,我得到以下信息:

{
    "response": {
        "state": "approved",
        "id": "PAY-1GM934738N157023RKR7OWYI",
        "create_time": "2014-12-03T10:52:17Z",
        "intent": "sale"
    },
    "client": {
        "platform": "Android",
        "paypal_sdk_version": "2.1.0",
        "product_name": "PayPal-Android-SDK",
        "environment": "sandbox"
    },
    "response_type": "payment"
}




{
    "short_description": "Painting 1",
    "amount": "8",
    "intent": "sale",
    "currency_code": "USD"
}

任何人都指导我如何在移动sdk中获取交易ID和其他信息?因为我看到来自paypal mobile sdk id的付款与实际的交易ID不同。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

您可以使用SDK返回的付款ID检索付款资源:https://developer.paypal.com/webapps/developer/docs/api/#look-up-a-payment-resource

通常,这可以从您的服务器完成,而不是从移动设备完成。 GET操作将需要使用client_id和client_secret生成的访问令牌。

更新了链接:

答案 1 :(得分:0)

您可以先在一个单独的调用中首先获取令牌,然后在另一个调用中使用该令牌以获取交易ID,或者可以将两个步骤合并为一个步骤,如下所示:

public void getPayPalTransactionId(String payPalPaymentId) {
    String PAYPAL_PAYMENT = "https://api.sandbox.paypal.com/v1/payments/payment/%s";
    String url = String.format(PAYPAL_PAYMENT, payPalPaymentId);
    Call<PayPalPaymentResponse> callPayment = webApiInterface.getPayPalTransactionId(url, Credentials.basic(PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET));
    callPayment.enqueue(new Callback<PayPalPaymentResponse>() {
        @Override
        public void onResponse(@NonNull Call<PayPalPaymentResponse> call, @NonNull Response<PayPalPaymentResponse> response) {
            if (response.isSuccessful() && response.body() != null)
                String payPalOrderId = response.body().getTransactions().get(0).getRelatedResources().get(0).getSale().getId();
        }

        @Override
        public void onFailure(@NonNull Call<PayPalPaymentResponse> call, @NonNull Throwable t) {
        }
    });
}

在WebApiInterface中

@GET
Call<PayPalPaymentResponse> getPayPalTransactionId(@Url String url, @Header("Authorization") String authorization);