【Java实现 银联云闪付支付功能】

Java实现 银联云闪付支付功能


使用场景:项目中的订单支付,调用银联云闪付进行支付的场景。
前提条件:需要已经在银联注册过商户,注册后银联会提供给商户号(mid)、终端号(tid)、开发者ID(appid)、开发者秘钥(appKey)等参数。

ContentType:HTTP(S)
请求头
Authorization 认证内容

获取请求头(Token)方式

//实例化客户端
ConfigBean configBean = new ConfigBean();
OpenApiContext context = new OpenApiContext();
String request = "{\"msgId\":\""+msgId+"\",";//消息ID 其他参数省略
//其他参数省略
context.setStartTime(System.currentTimeMillis());
context.setRequestId(UUID.randomUUID().toString().replace("-", ""));
context.setOpenServUrl(URL.split("/v")[0].concat("/"));
context.setApiServiceUrl(URL);
context.setVersion(URL.split("/")[3]);
context.setAppId(APPID);
context.setAppKey(APPKEY);
context.setConfigBean(configBean);
context.setServiceCode(URL.split("/v")[1].substring(1));
OpenApiCache.getCurrentToken(context);
HttpTransport.getInstance().doPost(context, request);

这是官方提供的sdk,包含的token获取,也做了缓存

package com.demo.chinaums.sdk;

import com.demo.chinaums.sdk.internal.util.OpenTokenUtil;
import com.demo.chinaums.sdk.response.TokenResponse;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

import java.util.concurrent.TimeUnit;

public class OpenApiCache {

    public final static int MAX_PROCESS_TIMEOUT = 3600;

    public static Cache<String, Object> contextCache = CacheBuilder.newBuilder()
            .expireAfterWrite(MAX_PROCESS_TIMEOUT, TimeUnit.SECONDS).build();

    /**
     * 获取当前有效的token
     * @param context
     * @return
     */
    public static TokenResponse getCurrentToken(OpenApiContext context){
        String appId = context.getAppId();
        TokenResponse token = (TokenResponse)contextCache.getIfPresent(appId);
        if(token==null){
            token = OpenTokenUtil.getToken(context);
            contextCache.put(context.getAppId(), token);
        }
        context.setCurrentToken(token);
        return token;
    }
}

开发者中心提供了详细的demo和api说明,也提供了SDK

地址参考:

下单

C扫B支付(主扫)

C扫B支付(主扫)地址

银联商务小程序支付 云闪付下单

银联商务小程序支付 云闪付下单地址

退款

C扫B支付(主扫)

C扫B支付(主扫)地址

银联商务小程序支付

银联商务小程序支付地址

退款查询

C扫B支付(主扫)

退款接口返回,没有单独的查询退款结果或退款通知接口

银联商务小程序支付

银联商务小程序支付地址

支付结果通知

C扫B支付(主扫)

C扫B支付(主扫)地址

银联商务小程序支付

银联商务小程序支付地址

SDK下载

SDK下载地址

接口如果返回类似无权限之类的提示的话,需要找到商务申请权限。

"errMsg":"无此交易权限"
"errMsg":"无退款权限"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值