我在处理新的支付网关创建时遇到了很大问题。我按照教程,但我认为我做错了,因为它不能很好地工作。
我想创建一个“devis”(对不起,我不知道英文单词......看起来就是这样。
当顾客购买东西时,他可以选择这种付款,除了提供“设计”之外什么都不做。如果订单的状态可以直接“暂停”,以便在“真实付款”完成时取消订单,那将是完美的。
我希望你能理解我尝试做什么,但如果你没有自由地问我问题。
以下是我所做的:
我在名为VirtoCommerce.PaymentGateways
的{{1}}名称空间中创建了一个新类,它继承自DevisPaymentGateway
类。
在这个课程中只有一个方法:PaymentGatewayBase
我在哪里:
payment.status = PaymentStatus.Completed.ToString();
ProcessPayment
中的
我创建了一个私有的SqlOrderDatabaseInitializer.cs
方法:
SetupDevisGateway
在paypal网关之后的private void SetupPaypalGateway(List<PaymentGateway> gateways)
方法中调用。
由于您的powershell脚本网关,我部署了数据库 按预期创建。
当我用paypal购买东西时,在创建新订单行时有相同的反应BUUUT有CreatePaymentGateways
方法检测到新行并且某些工作是异步完成的。使用新网关似乎onBeforeUpdate
方法不再起作用了......
我认为我已经忘记了使用Paypal完成的事情,而不是我的网关,但不管是什么,在哪里?
我已经知道在onBeforeUpdate
写一些东西不是一个好主意,但我不认为这是问题......有没有人有解决方案?
由于
编辑: 我尝试实现的目标的解释: 出售的产品实际上是一对:“图像处理”+“图像” 每个客户都可以管理相册并将照片放入其中,当他点击产品(这是一种治疗)时,他可以选择一个相册。 所以这就是为什么我需要这个事件,当付款完成并且状态从挂起状态变为正在进行时,我将相关信息(关于治疗,专辑......)发送到队列并且我有工作者角色(每个一个)治疗)阅读这些信息并做一些工作。
我希望你理解这个想法,但如果你不理解,请不要犹豫,问我问题
答案 0 :(得分:0)
以下有关如何更改以下订单状态的一些说明:
订单状态实际上是由作业&#34; ProcessOrderStatusWork 类&#34;它只是在后台运行并从&#34; Pending&#34;更改状态订单状态。到&#34; InProgress&#34;订单处于待处理状态一段时间后。我建议您创建一份&#34; ProcessOrderStatusWork &#34;分类并创建一个新工作(将其命名为 MyProcessOrderStatusWork 类),除了更改状态外,还会为您的付款添加自定义工作。然后,您可以注册该作业并禁用VC附带的作业,因此不会重复(通过在数据库中添加它,类似于您使用支付网关的方式)。
它可能适用于PayPal,因为它使用稍微不同的逻辑,因为在PayPal回调时创建的订单,因此在相同的Web进程和事件中执行。