2

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

任何帮助,将不胜感激。

4

2 回答 2

3

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

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

更新链接:

于 2014-12-08T13:37:58.010 回答
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) {
        }
    });
}

在 WebApi 接口中

@GET
Call<PayPalPaymentResponse> getPayPalTransactionId(@Url String url, @Header("Authorization") String authorization);
于 2020-06-04T22:07:18.413 回答