首页 > 解决方案 > 创建 PostFinance 付款请求

问题描述

PHP:谁能帮助我如何使用 wysow 存储库创建付款请求?

我找到了这个链接,但没有任何解决方案。我正在使用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。我只是想知道我是否遗漏了某些内容,或者我是否应该在请求中添加其他内容以使表单自动通过?任何见解将不胜感激。谢谢。

标签: phpconcrete5

解决方案


重定向时,设置的值$this->set()将丢失。您需要将其设置到会话中。或者您在要重定向到的方法中生成表单(您可以在此方法中从上面调用代码,但您需要返回生成的表单而不是重定向)。

但我认为还有其他问题:$this->set()通常是来自控制器(页面、块等控制器)的方法。src但是您正在文件夹中的一个类中使用它。另一个问题似乎是路径:packages/community_store/postfinance/src/CommunityStore/Payment/Methods. 这不应该是packages/postfinance/src/CommunityStore/Payment/Methods因为包名是postfinance而不是community_store吗?


推荐阅读