Square REST API:发出退款时出错

时间:2017-02-22 20:05:08

标签: square square-connect

每当我尝试退款时,我都会在下面粘贴JSON。这发生在我授权一张卡,然后捕获费用,然后想要发出部分退款。对于“tender_id”,我已经尝试了交易ID和授权期间我交给的ID。当然,对于捕获,没有tender_id或id,因为成功捕获只返回“{}”。

我也在使用沙箱凭据。使用沙箱凭证生成的随机数也完成了这项收费。

怎么了?

...谢谢

POST到:

 https://connect.squareup.com/v2/locations/CBASEHHNorL75TjuSOAvKQLnuNYgAQ/transactions/a2905f34-c8e8-5534-7676-82e8c580e9bf/refund

使用此JSON:

 {  
    "idempotency_key":"6464dc19-1703-47c0-81f9-4f0f1361eada",
    "tender_id":"291d56b3-1e73-5bff-6e8e-719fd134b83f",
    "reason":”Partial refund",
    "amount_money":{  
       "amount":4500,
       "currency":"USD"
   }
 }

给出了这个回复:

 {
   "errors": [
     {
       "category": "INVALID_REQUEST_ERROR",
       "code": "NOT_FOUND",
       "detail": "Location `CBASEHHNorL75TjuSOAvKQLnuNYgAQ` does not have a transaction tender with ID `291d56b3-1e73-5bff-6e8e-719fd134b83f`."
     }
   ]
 }

更新:请求的GET调用的结果(在答案的评论中)是:

 {  
    "transaction":{  
  "id":"a2905f34-c8e8-5534-7676-82e8c580e9bf",
  "location_id":"CBASEHHNorL75TjuSOAvKQLnuNYgAQ",
  "created_at":"2017-02-21T22:08:10Z",
  "tenders":[  
     {  
        "id":"a18b98c7-5ac7-51c1-618c-3b95ee124c1b",
        "location_id":"CBASEHHNorL75TjuSOAvKQLnuNYgAQ",
        "transaction_id":"a2905f34-c8e8-5534-7676-82e8c580e9bf",
        "created_at":"2017-02-21T22:08:10Z",
        "note":"Online Transaction",
        "amount_money":{  
           "amount":12500,
           "currency":"USD"
        },
        "processing_fee_money":{  
           "amount":372,
           "currency":"USD"
        },
        "type":"CARD",
        "card_details":{  
           "status":"CAPTURED",
           "card":{  
              "card_brand":"VISA",
              "last_4":"5858"
           },
           "entry_method":"KEYED"
        }
     }
  ],
  "reference_id":"63614ae8-539a-4339-b5c7-554bae64fbed",
  "product":"EXTERNAL_API"
    }
 }

1 个答案:

答案 0 :(得分:0)

捕获后,您是否尝试过列出/检索交易以获取完整的详细信息,包括招标ID?如果不起作用,您可以发布public class TestActivity extends AppCompatActivity { LinearLayout layout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); layout = (LinearLayout)findViewById(R.id.layout); layout.setBackgroundColor(Color.RED); } public void onChangeColor(View view) { // start your timer on button click new CountDownTimer(3000, 1000) { public void onTick(long millisUntilFinished) { changeBackground(3-millisUntilFinished/1000); } }.start(); } private void changeBackground(int colorIndex){ int color; if(colorIndex==1) { color = Color.GREEN; }else if(colorIndex==2) { color = Color.BLUE; }else { color = Color.RED; } layout.setBackgroundColor(color); } } 的回复吗?