我尝试使用multiform模块和Stripe付款构建表单作为最后一步。问题是,我仍然希望用户在最终的Stripe付款步骤中可以返回上一步。但是如果我在最后一步启用can_go_back,那么在点击提交时,表单将直接转到上一步而不向Stripe发送付款。当我禁用can_go_back(设置值为false)时,提交和付款工作正常。
我的猜测是Stripe的工作方式(提交表单=>创建令牌=>添加隐藏输入,令牌值=>再次提交),这两个提交令人困惑的Multiform模块。但是,即使我禁用了can_go_back(因此只有一个提交按钮),并手动添加上一步的链接,它仍然会进入上一步而不会在提交时发送付款。
以下是我用于获取上一步链接的内容:
public function PrevLink(){
$prevStepClass = $this->getCurrentStep()->getPreviousStep();
$prevStep = DataObject::get_one($prevStepClass, "\"SessionID\" = {$this->session->ID}");
$this->setCurrentStep($prevStep);
return $prevlink = $prevStep->Link();
}
任何人都有任何想法?谢谢!