【问题标题】:How to obtain transaction id or other information in paypal mobile SDK如何在 paypal 移动 SDK 中获取交易 ID 或其他信息
【发布时间】:2015-01-31 22:31:59
【问题描述】:

我最近使用以下教程实施了贝宝移动支付教程: 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 不同。

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

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

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

    更新链接:

    【讨论】:

    • 根据您的指示进行一些研究后,我发现首先我需要通过调用另一个 api 从 paypal 获取令牌,然后我可以在您提到的 api 中传递该令牌以从其他资源 json 中获取最终交易想法属性:)
    • 请告诉任何人如何从 sdk 传递访问令牌。是否有任何函数可以在 sdk 中传递访问令牌。
    • @AmanGupta - 用如何进行 REST 身份验证的链接更新了答案(访问令牌不是来自 SDK)。
    • 感谢@MattJacunski 的更新。
    • 显示付款详情 --> /v1/payments/payment/payment_id 我尝试使用此 REST Api,但它始终没有返回完整响应。我需要一笔交易费,但它只会返回几次。而且我看到它在不同的事务状态下返回不同的响应,如待处理/已批准等。任何人都有任何解决方案来获取事务 ID?
    【解决方案2】:

    您可以先在单独的调用中获取令牌,然后在另一个调用中使用它来获取事务 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);
    

    【讨论】:

      猜你喜欢
      • 2020-10-14
      • 2014-11-09
      • 1970-01-01
      • 2020-06-16
      • 2014-05-11
      • 2011-01-26
      • 2013-06-05
      • 2011-06-16
      • 2012-06-25
      相关资源
      最近更新 更多