PHP: Can anyone help me how to create a payment request using wysow repository?
我找到了此链接,但没有任何解决方案。我正在使用Concrete5的社区商店,并试图创建PostFinance付款程序包/附加程序。我在/packages/community_store_postfinance/src/CommunityStore/Payment/Methods/CommunityStorePostfinance/CommunityStorePostfinancePaymentMethod.php文件(这是GitHub中示例的副本)中具有以下代码:
$passphrase = new Passphrase($shaInSecret);
$shaComposer = new AllParametersShaComposer($passphrase);
$ecommercePaymentRequest = new EcommercePaymentRequest($shaComposer);
// Set various params:
$ecommercePaymentRequest->setPspid($postfinancePsid);
$ecommercePaymentRequest->setOrderid($custmerOrder->getOrderId());
$ecommercePaymentRequest->setPostFinanceUri(EcommercePaymentRequest::TEST);
$ecommercePaymentRequest->setAmount((Int)$amount);
$ecommercePaymentRequest->setCurrency('CHF');
$ecommercePaymentRequest->setCustomername($customerName);
$ecommercePaymentRequest->setOwnerAddress($address);
$ecommercePaymentRequest->validate();
$formGenerator = new SimpleFormGenerator;
$paymentForm = $formGenerator->render($ecommercePaymentRequest);
// I then pass this to my redirect view
$this->set('paymentForm', $paymentForm);
我已调试并按照PostFinance的要求创建了表格,并且看起来正确无误,并且我重定向到了PostFinance付款确认页面,但没有任何详细信息传递给PostFinance。我只是想知道我是否错过了某些内容,还是应该在请求中自动添加其他内容?任何见解将不胜感激。谢谢。
答案 0 :(得分:1)
重定向时,$this->set()
设置的值将丢失。您需要将其设置为会话。或者,您可以在要重定向到的方法中进行表单生成(可以在此方法中从上面调用代码,但是除了重定向之外,您还需要返回生成的表单)。
但是我认为还有其他问题:$this->set()
通常是来自控制器(页面控制器,块控制器等)的方法。但是您正在src
文件夹的类中使用它。
另一个问题似乎是路径:packages/community_store/postfinance/src/CommunityStore/Payment/Methods
。应该不是packages/postfinance/src/CommunityStore/Payment/Methods
,因为软件包名称是postfinance
而不是community_store
?
答案 1 :(得分:0)
以防万一其他人想知道我的解决方案,这对我来说是一个愚蠢的错误,因为我要做的只是func testLoadData() {
let expectation = expectation(description: "wait for isViewLoaded set to true")
let sut = Controller()
let mockView = View()
mockView.setController(controller: sut)
controller.loadData {
expectation.fulfill()
}
waitForExpectation(timeout: 5, handler: nil)
XCTAssertTrue(mockView.isViewLoaded, "isViewLoaded equals to true")
}
或return
,这解决了我的问题并将表格成功发送给后金融。
尽管现在我有一个问题,无法获得PostFinance后端生成的签名来匹配PostFinance Signature not matching