| | |
| | | } |
| | | |
| | | if (!alreadySucceeded) { |
| | | // CANCEL_UNCONFIRMED 也在这里:订单取消后用户又把预支付单付了,钱必须落成已支付的事实, |
| | | // 再让下面的订单状态判断把它记成「取消后才收到钱」的问题记录。 |
| | | int paymentUpdated = jdbc.update(""" |
| | | update payment_transaction |
| | | set status = 'SUCCEEDED', provider_transaction_no = coalesce(nullif(?, ''), provider_transaction_no), |
| | | provider_response_code = ?, provider_response_message = ?, paid_at = coalesce(paid_at, now()) |
| | | where id = ? and status in ('CREATED', 'CREATE_FAILED', 'PREPAY_CREATED', 'CREATE_UNKNOWN') |
| | | where id = ? and status in ('CREATED', 'CREATE_FAILED', 'PREPAY_CREATED', 'CREATE_UNKNOWN', 'CANCEL_UNCONFIRMED') |
| | | """, fact.providerTransactionNo(), fact.responseCode(), fact.responseMessage(), paymentId); |
| | | if (paymentUpdated == 0) return SettlementOutcome.NOT_SETTLEABLE; |
| | | } |