| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package io.renren.demo;
-
- import com.alibaba.fastjson.JSON;
-
- import io.renren.dto.temp.PaymentBankCardInfo;
- import io.renren.dto.temp.PaymentBankCardParams;
- import io.renren.dto.temp.PaymentBankCardPayMethods;
- import io.renren.dto.temp.PaymentBankCardResult;
- import io.renren.dto.temp.PaymentPayerInfo;
- import io.renren.dto.temp.TradeCreateResult;
- import io.renren.dto.temp.ValidationSmsParams;
- import io.renren.dto.temp.ValidationSmsResult;
- import io.renren.util.LLianPayClient;
- import io.renren.util.LLianPayDateUtils;
- import security.LLianPayAccpSignature;
-
- /**
- * 银行卡快捷支付 Demo
- */
- public class PaymentBankCardDemo {
- public static void main(String[] args) {
- // 调用统一支付创单接口进行创单
- TradeCreateResult tradeCreateResult = TradeCreateDemo.userTopup();
- // 使用银行卡快捷方式完成支付
- PaymentBankCardParams params = new PaymentBankCardParams();
- String timestamp = LLianPayDateUtils.getTimestamp();
- params.setTimestamp(timestamp);
- params.setOid_partner(tradeCreateResult.getOid_partner());
- params.setTxn_seqno(tradeCreateResult.getTxn_seqno());
- params.setTotal_amount(tradeCreateResult.getTotal_amount());
- params.setRisk_item("{\"frms_ware_category\":\"4007\",\"goods_name\":\"西瓜\",\"user_info_mercht_userno\":\"LLianPayTest-In-User-12345\",\"user_info_dt_register\":\"20220823101239\",\"user_info_bind_phone\":\"13208123456\",\"user_info_full_name\":\"连连测试\",\"user_info_id_no\":\"\",\"user_info_identify_state\":\"0\",\"user_info_identify_type\":\"4\",\"user_info_id_type\":\"0\",\"frms_client_chnl\":\" H5\",\"frms_ip_addr\":\"127.0.0.1\",\"user_auth_flag\":\"1\"}");
-
- // 设置付款方信息
- PaymentPayerInfo payerInfo = new PaymentPayerInfo();
- payerInfo.setUser_id(tradeCreateResult.getUser_id());
- // 用户:LLianPayTest-In-User-12345 密码:qwerty,本地测试环境测试,没接入密码控件,使用本地加密方法加密密码(仅限测试环境使用)
- payerInfo.setPassword(LLianPayAccpSignature.getInstance().localEncrypt("112233"));
- params.setPayerInfo(payerInfo);
-
- // 设置付款银行卡信息
- PaymentBankCardInfo bankCardInfo = new PaymentBankCardInfo();
- // 使用该用户的绑卡协议号
- bankCardInfo.setLinked_agrtno("2022101500415011");
- params.setBankCardInfo(bankCardInfo);
-
- // 设置付款方式信息,支持组合支付,传入数组
- PaymentBankCardPayMethods payMethod = new PaymentBankCardPayMethods();
- // 协议支付借记卡
- payMethod.setMethod("AGRT_DEBIT_CARD");
- payMethod.setAmount(tradeCreateResult.getTotal_amount());
- params.setPayMethods(new PaymentBankCardPayMethods[]{payMethod});
-
- // 测试环境URL
- String url = "https://accpapi-ste.lianlianpay-inc.com/v1/txn/payment-bankcard";
- LLianPayClient lLianPayClient = new LLianPayClient();
- String resultJsonStr = lLianPayClient.sendRequest(url, JSON.toJSONString(params));
- PaymentBankCardResult bankCardResult = JSON.parseObject(resultJsonStr, PaymentBankCardResult.class);
- System.out.println(bankCardResult);
-
- // 小额免验,不需要验证码,直接返回0000
- if ("0000".equals(bankCardResult.getRet_code())) {
- System.out.println("支付成功!!!");
- return;
- }
- // 需要输入短信验证码,调用交易二次短信验证接口
- // 用Debug模式,断点打到这里,Debug的时候把verifyCode设置成手机收到的真实验证码
- String verifyCode = "";
- if ("8888".equals(bankCardResult.getRet_code())) {
- ValidationSmsParams validationSmsParams = new ValidationSmsParams();
- validationSmsParams.setTimestamp(LLianPayDateUtils.getTimestamp());
- validationSmsParams.setOid_partner(bankCardResult.getOid_partner());
- validationSmsParams.setPayer_id(bankCardResult.getUser_id());
- validationSmsParams.setPayer_type("USER");
- validationSmsParams.setTxn_seqno(bankCardResult.getTxn_seqno());
- validationSmsParams.setTotal_amount(bankCardResult.getTotal_amount().toString());
- validationSmsParams.setToken(bankCardResult.getToken());
- validationSmsParams.setVerify_code(verifyCode);
-
- // 测试环境URL
- String validationSmsUrl = "https://accpapi-ste.lianlianpay-inc.com/v1/txn/validation-sms";
- String resultJsonStr2 = lLianPayClient.sendRequest(validationSmsUrl, JSON.toJSONString(validationSmsParams));
- ValidationSmsResult validationSmsResult = JSON.parseObject(resultJsonStr2, ValidationSmsResult.class);
- System.out.println(validationSmsResult);
- }
- }
- }
|