FUPayParamModel对应的支付参数说明
字段 | 类型 | 长度 | 说明 | 是否必填 | 样例 |
---|---|---|---|---|---|
mchntCd | String | MAX(15) | 商户在富友入网时生成的商户号 | 必填 | 0001000F0040992 |
orderDate | String | MAX(8) | 订单日期 | 必填 | YYYYMMDD |
orderAmt | long | MAX(12) | 客户支付订单的金额,一笔订单一个,以分为单位(不能有小数点)。不可以为零,必需符合金额标准。 | 必填 | 100如:支付1元就传100 |
orderId | String | MAX(30) | 商户的订单号码,需要商户生成,确保唯一性 | 必填 | 16110211240374534607 |
pageNotifyUrl | String | MAX(200) | 商户页面接受支付结果的地址 | 非必填 | http://www.xxx.com/test/page.do(如果是手机浏览器H5页面支付,当银行页面支付成功后会跳转到这个页面.如果是app支付,则这个地址没有用。\) |
backNotifyUrl | String | MAX(200) | 商户后台接受支付结果的地址 | 必填 | http://www.xxx.com/test/back.do |
goodsName | String | MAX(60) | 商品名称 | 必填 | 可以传空字符串,也可以传名称如耐克 |
goodsDetail | String | MAX(200) | 商品详情 | 必填 | |
orderTmStart | String | MAX(14) | 订单起始时间 yyyyMMddHHmmss | 必填 | 20091225091010 |
orderTmEnd | String | MAX(14) | 订单失效结束时间 yyyyMMddHHmmss(最长与起始时间间隔2小时) | 必填 | 20091225091010 |
order_token | String | MAX(50) | 订单号token 一个订单号。获取一次token | 必填 | |
userId | String | MAX(14) | 用户ID,唯一,主要用户绑卡操作,涉及支付方式:快捷,分期 | 必填 | |
appScheme | String | MAX | 商户appscheme | 支付类型为招行时必填,scheme格式 fuioupay://商户号/序列号/ 需要与manifests的招商银行data数据保持一致,否则无法回调 | fuioupay://0002900F0279917/01 |
rem1 | String | MAX(60) | 备注1 | 非必填 | 默认传空字符串 |
rem2 | String | MAX(60) | 备注2 | 非必填 | 默认传空字符串 |
rem3 | String | MAX(60) | 备注3 | 非必填 | 默认传空字符串 |
发起支付请求
FUPaySDK.startPayType(final Activity context, FUPayType payType,final FUPayParamModel payModel, final FUPayCallBack pcb);
context:上下文
payType:当前支付方式
payModel:存放支付信息的类
pcb: 支付结果的回调
调起sdk支付样例
具体以demo为准
样例代码:
FUPayParamModel payModel = new FUPayParamModel();
payModel.mchntCd = mchntEt.getText().toString().trim();
payModel.orderDate = orderDateEt.getText().toString().trim();
payModel.orderAmt = Long.parseLong(TextUtils.isEmpty(amtEt.getText().toString()) ? "0" : amtEt.getText().toString());
payModel.orderId = orderIdEt.getText().toString().trim();
payModel.pageNotifyUrl = forwardUrlEt.getText().toString().trim();
payModel.backNotifyUrl = backUrlEt.getText().toString().trim();
payModel.goodsName = nameEt.getText().toString().trim();
payModel.goodsDetail = detailEt.getText().toString().trim();
payModel.orderTmStart = orderTmStartEt.getText().toString().trim();
payModel.orderTmEnd = orderTmEndEt.getText().toString().trim();
//scheme格式 fuioupay://商户号/序列号 需要与manifests的招商银行data数据保持一致,否则无法回调
payModel.appScheme = "fuioupay://" + mchntEt.getText().toString().toLowerCase() + "/01";
//设置当前支付环境
FUPaySDK.setPayEnvType(curEnv);
//微信支付和微信小程序支付使用
FUPaySDK.initWXApi(wxAppIdEt.getText().toString().trim());
//设置回调监听
final FUPayCallBack payCallBack = new FUPayCallBack() {
@Override
public void payResultCallBack(boolean isSuc, String msg, String code) {
/**
* 对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。*/
String resultMsg = "isSuc=" + isSuc + "\ncode=" + code + "\nmsg=" + msg;
Toast.makeText(MainActivity.this, resultMsg + "", Toast.LENGTH_LONG).show();
FyLogUtils.d(resultMsg);
}
};
//配置支付结果界面展示
FUPaySDK.setShowFUResultView(isShowResultRb.isChecked());
/**
* TODO ****** 此处模拟商户获取token ******
* 为了传输安全,商户对接时,需要将此步骤放在服务端,
* 客户端拿到token后,调用sdk开启支付步骤。
* 注:一个订单号,获取一次token。
*/
FyDataManager.getInstance().doAllToken(payModel, new FyOnDataListener<FyTokenRes>() {
@Override
public void callBack(FyHttpStatus<FyTokenRes> status) {
if (status.success){
String token= "";
try {
token = status.obj.order_token;
} catch (Exception e) {
e.printStackTrace();
}
//设置token
payModel.order_token=token;
//根据选择的支付类型进行处理
FUPaySDK.startPayType(MainActivity.this, curFuPayType, payModel, payCallBack);
}
}
});
回调代理返回
public interface FUPayCallBack {
void payResultCallBack(boolean isSuc,String msg,String code);
}
isSuc:是否支付成功
msg:支付的中文描述
Code: 支付的响应码,详情见回调应答说明表。