我最近使用以下教程实现了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不同。
任何帮助将不胜感激。
答案 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);