我正在尝试为PayPal交易提取Sale Id
。我正在使用PayPalAndroidSDK
和PayPal_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
答案 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
此外,我不确定你为什么要将它从一个对象转换为一个字符串然后再转换回一个对象。如果没有必要,我会重构该代码。