|
121 | 121 | $request = $payment_requests_api->get('pcqghkrpztq1'); |
122 | 122 | expect(isset($request['id']))->toBeTrue(); |
123 | 123 | expect($request['id'])->toBe('pcqghkrpztq1'); |
| 124 | + |
| 125 | + $request_data = [ |
| 126 | + 'action' => 'sale', |
| 127 | + 'additional_edit' => false, |
| 128 | + 'allow_credit' => true, |
| 129 | + 'amount' => 100, |
| 130 | + 'currency' => 'BGN', |
| 131 | + 'max_scan_age' => 600, |
| 132 | + 'pos_id' => '7DROG', |
| 133 | + 'pos_tid' => date('YmdHis'), |
| 134 | + ]; |
| 135 | + $request = $merchant_api->payment_requests->create($request_data); |
| 136 | + |
| 137 | + $outcome = $merchant_api->payment_requests->outcome($request['id']); |
| 138 | + expect($outcome['status'])->toBe('pending'); |
| 139 | + expect($outcome['amount'])->toBe($request_data['amount']); |
| 140 | + |
| 141 | + try { |
| 142 | + $merchant_api->payment_requests->capture($request['id'], $request_data['currency'], $request_data['amount']); |
| 143 | + expect(true)->toBeFalse(); // make sure we don't hit this line |
| 144 | + } catch (SettleApiException $e) { |
| 145 | + expect($e->getCode())->toBe(409); |
| 146 | + expect($e->getMessage())->toContain("Tried to capture payment before customer authorized payment or after authorization has expired"); |
| 147 | + } |
| 148 | + |
| 149 | + try { |
| 150 | + $merchant_api->payment_requests->refund($request['id'], $request_data['currency'], $request_data['amount']); |
| 151 | + expect(true)->toBeFalse(); // make sure we don't hit this line |
| 152 | + } catch (SettleApiException $e) { |
| 153 | + expect($e->getCode())->toBe(400); |
| 154 | + expect($e->getMessage())->toContain("The requested amount for refund is larger than the captured amount"); |
| 155 | + } |
| 156 | + |
| 157 | + $merchant_api->payment_requests->update($request['id'], ['action' => 'abort']); |
| 158 | + $outcome = $merchant_api->payment_requests->outcome($request['id']); |
| 159 | + expect($outcome['status'])->toBe('fail'); |
124 | 160 | }); |
125 | 161 |
|
126 | 162 | test('API [not working]: Settlements', function() { |
|
0 commit comments