从JSON响应中提取PayPal销售ID

时间:2015-01-03 21:36:01

标签: android paypal

我正在尝试为PayPal交易提取Sale Id。我正在使用PayPalAndroidSDKPayPal_MPL

到目前为止,我可以检索付款资源,例如PAY-...使用此:

 PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
 if (confirm != null) {
     try {
         Log.i("paymentExample", confirm.toJSONObject().toString());

         JSONObject jsonObj = new JSONObject(confirm.toJSONObject().toString());

         paymentId = jsonObj.getJSONObject("response").getString("id");

返回:

{
    "client": {
        "environment": "live",
        "paypal_sdk_version": "2.8.4",
        "platform": "Android",
        "product_name": "PayPal-Android-SDK"
    },
    "response": {
        "create_time": "2015-01-03T19:51:53Z",
        "id": "PAY-...",
        "intent": "sale",
        "state": "approved"
    },
    "response_type": "payment"
}

我已尝试以下操作来返回销售ID(与上述id:PAY-不同的16位交易号...),但它会返回错误:

paymentId = jsonObj.getJSONObject("response").getString("sale");

PayPal REST API确实显示销售ID已在create a payment response https://developer.paypal.com/docs/api/#create-a-payment

中发回

1 个答案:

答案 0 :(得分:1)

这只是一个JSON,所以只需jsonObj["response"]["id"] jsonObj [“response”]为您提供{"create_time":"2015-01-03T19:51:53Z","id":"PAY-...","intent":"sale","state":"approved"} 并且jsonObj["response"]["id"]会为您提供id

的值

此外,我不确定你为什么要将它从一个对象转换为一个字符串然后再转换回一个对象。如果没有必要,我会重构该代码。