报错:error: 100020 msg : code is reused error
常见场景为测试环境:
首先查看 回调接口请求是否重复请求
谷歌浏览器升级之后2.23版本之上 之前的版本不知道 没有测试过
浏览器环境存在 跨域 | 绑定内网ip | 使用DNS时 浏览器会自行发送预检请求 OPTIONS 支付时会使用 CODE 支付场景 code只可以用一次 第二次就会提示 error: 100020 msg : code is reused error;
MAC处理方法:
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/xxx/MyChromeDevUserData
xxx为您自己mac的名称。
使用之后会弹出一个浏览器 这就关闭了预检功能 用这个访问就正常了
程序端处理方法:
在支付的控制器中屏蔽 带有OPTIONS 的请求 或者对OPTIONS的请求不做处理 即可:
public function actionQq(){
if( Yii::$app->request->getIsOptions()){
echo "";
exit;
}
//支付代码
.....
}
public function getIsOptions()
{
return $this->getMethod() === 'OPTIONS';
}