对方(java)来调用我的接口,验证器的一个正则验证就是不通过!
对方传给我一个297,这条正则就是不通过
/^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/
由于数据时加密后传输的,我把他的加密串拿过来自己发送也没问题,但是他传297就是提示错误,297.01也没问题!有人能想到是什么原因导致的吗?其他验证都没有问题!
//多余的代码我尽量都删除了
class OrderGenerateOrderRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'user_id' => ['required', 'string'],
'gas_id' => ['required', 'string'],
'original_amount' => [
'required',
'regex:/^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/'
],
'payment_amount' => [
'required',
//就是这个正则,他传给我297.01没有问题,但是传297他通不过,但是我这边测试没有任何问题(postman和apipost都测试过)
'regex:/^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/'
],
];
}
public function withValidator($validator)
{
if ($validator->fails()) {
$keys = $validator->errors()->keys();
switch ($keys[0]) {
case 'original_amount':
throw new ValidatorException('original_amount参数错误', 3004);
case 'payment_amount':
throw new ValidatorException('payment_amount参数错误', 3005);
case 'service_fee':
throw new ValidatorException('service_fee参数错误', 5000);
case 'litre':
throw new ValidatorException('litre参数错误', 5000);
}
}
}
推荐文章: