Skip to content
This repository has been archived by the owner on Jul 22, 2022. It is now read-only.

feilong pay cancle

feilong edited this page Jan 12, 2019 · 7 revisions

feilong 支付取消

可插拔式支付模组

本文来阐释,如何集成 feilong netpay 来实现关闭 支付网关交易的功能, 本文是 使用篇说明

1. maven 依赖:

1.1 wormhole 定时任务取消

如果是后台 wormhole 系统定时任务取消 , 直接依赖 netpay 即可

比如

<properties>
	...
		<version.feilong-netpay>1.21.0-SNAPSHOT</version.feilong-netpay>
	...
<properties>

<dependencies>
	...
	<dependency>
		<groupId>com.feilong.netpay</groupId>
		<artifactId>feilong-netpay-all-adidas-reebok-HK</artifactId>
		<version>${version.feilong-netpay}</version>
	</dependency>
	...
</dependencies>

1.2 frontend 个人取消

如果是前台 frontend 个人取消 , 可以依赖 psi (Payment Standard Interface 支付标准接口,提供标准的 controller 功能)

比如

<properties>
	...
		<version.feilong-netpay>1.21.0-SNAPSHOT</version.feilong-netpay>
	...
<properties>

<dependencies>
	...
	<dependency>
		<groupId>com.feilong.netpay</groupId>
 		<artifactId>feilong-psi-all-adidas-reebok-HK</artifactId>
		<version>${version.feilong-netpay}</version>
	</dependency>
	...
</dependencies>

1.3 使用 all 包的好处

  1. 只需要下载1个 jar ,节省时间
  2. 方便扩展, 假设以后需要新增1个支付方式, 只需要该 pom 里面依赖的版本即可

怎么做到的? 参见 【飞天奔月出品】使用Maven打all-in-one的包(带tests 和 sources)(多方案实现对比)

2. 新增 spring-pay-advanceProvider .xml

路径示意图:

advanceProvider

示例:

...
<!--单独xml式配置 ,避免其他项目引用 可能带来的错误 -->
<bean id="payAdvanceProviderFactory" class="com.feilong.netpay.factory.SimplePayAdvanceProviderFactory">
	<property name="providerMap">
		<map>
			<!-- 支付宝国际 -->
			<entry key="131" value-ref="unexAdvanceProvider"></entry>
			<!-- 微信国际 -->
			<entry key="141" value-ref="unexAdvanceProvider"></entry>
			<!-- 银联国际 -->
			<entry key="151" value-ref="unexAdvanceProvider"></entry>
			<!-- worldpay -->
			<entry key="415" value-ref="unexAdvanceProvider"></entry>
		</map>
	</property>
</bean>

<!--********************* 有新的支付方式 ,请在下面扩展配置**************** -->
<import resource="classpath*:spring/payment/**/advanceProvider-**.xml" />
...

如果放在 spring-store 目录, 系统启动的时候 会自动加载

3. 引用 PayAdvanceProviderFactory

	@Autowired
	private PayAdvanceProviderFactory payAdvanceProviderFactory;

4 调用 接口

Integer payType = payInfoLog.getThirdPayType();
String payCode = payInfoLog.getSubOrdinate();

PayAdvanceProvider payAdvanceProvider = payAdvanceProviderFactory.create("" + payType);

CloseRequest closeRequest = new DefaultCloseRequest(payCode);

CloseResult closeResult = payAdvanceProvider.close(closeRequest);

5.关于 com.feilong.netpay.handler.close.CloseResult

advanceProvider

isCloseSuccess 可以得到 关闭是否成功

🌀 feilong 即时交流

QQ 群 243306798

🐼 About

如果您对本项目有任何建议和批评,可以使用下面的联系方式: