乌克兰 Fondy 支付接入

本文详细记录了如何使用Java与乌克兰最大的第三方支付公司Fondy进行支付接口对接,包括网关支付和卡片授权支付两种方式,并介绍了退款流程,涉及到签名验证等关键步骤。
摘要由CSDN通过智能技术生成

Fondy 是乌克兰最大的第三方支付公司, 最近公司需要和他对接, 了解其运行原理后, 特在此记录.


一、网关支付有两种

1、客户端直接调用Fondy的支付网关,重定向到支付页面

2、客户端调用后台, 后台调用Fondy的支付网关,返回支付连接给客户端, 客户端用WEBVIEW打开


综合考虑后,最后决定采用第二种方式, 由后台来调用Fondy支付网关, 以下是相关代码


// 获取支付相关参数

FondyConfig config = getConfig(request.getConfigMark());

// 创建返回对象

DirectPayResponse response = new DirectPayResponse(config.getChannel(), config);

response.setSuccess(true);

response.setPaySuccessful(false);

// 支付相关参数

Map<String, String> param = new LinkedHashMap<String, String>();

BigDecimal multiply = request.getTotalFee().multiply(new BigDecimal("100"));

param.put("amount", String.valueOf(multiply.intValue()));

param.put("currency", request.getCurrency());

param.put("merchant_id", config.getMerchant_id());

param.put("order_desc", request.getSubject());

param.put("order_id", request.getOutTradeNo());

param.put("response_url", request.getNotifyUrl());

param.put("server_callback_url", request.getReturnUrl());

// 此参数有特殊意义

param.put("required_rectoken", "Y");

//排序

Map<String, String> orderMap = mapOrder(param);

 param.put("signature", getSignature(orderMap, config.getPrimaryKey()));

JSONObject object = new JSONObject();

object.put("request", param);

String doPost = HttpClientUtil.doPost(url, object.toString());

if (StringUtils.isBlank(doPost)) {

response.setSuccess(false);

response.setMsg("Connect Fondy timeout");

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值