package com.bocom.api.example.pmssMpng; import com.alibaba.fastjson.JSON; import com.bocom.api.DefaultBocomClient; import com.bocom.api.helper.DateHelper; import com.bocom.api.helper.MyConfig; import com.bocom.api.request.pmssMpng.MPNG210003RequestV1; import com.bocom.api.response.pmssMpng.MPNG210003ResponseV1; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; /** *
 * 单笔条码跳转支付接口@MPNG-CIPP(测试)
 * 
*

* *

*/ public class MPNG210003V1Test { // head交易状态 private static final String RESP_STATUS_P = "P"; // 处理中 private static final String RESP_STATUS_F = "F"; // 失败 private static final String RESP_STATUS_S = "S"; // 成功 // 订单处理状态 private static final String TRAN_STATE_PROCESS = "PROCESS"; // 处理中 private static final String TRAN_STATE_SUCCESS = "SUCCESS"; // 交易成功 private static final String TRAN_STATE_FAILURE = "FAILURE"; // 交易失败 // body交易状态 private static final String ORDER_STATUS_PAIED = "PAIED"; // 交易成功 private static final String ORDER_STATUS_WAITPAY = "WAITPAY"; // 等待支付 private static final String ORDER_STATUS_REFUNDED = "REFUNDED"; // 部分退款 private static final String ORDER_STATUS_REFUNDALL = "REFUNDALL"; // 全部退款 private static final String ORDER_STATUS_CLOSED = "CLOSED"; // 部分退款 private static final String ORDER_STATUS_INITIAL = "INITIAL"; // 初始化 public static void main(String[] args) { try { DefaultBocomClient client = new DefaultBocomClient(MyConfig.APP_ID, MyConfig.MY_PRIVATE_KEY, MyConfig.APIGW_PUBLIC_KEY); /* 测试环境可以忽略SSL证书告警,生产环境不可忽略 */ client.ignoreSSLHostnameVerifier(); MPNG210003RequestV1 request = new MPNG210003RequestV1(); request.setServiceUrl(MyConfig.APIGW_URL_ADDRESS + "/api/pmssMpng/MPNG210003/v1"); MPNG210003RequestV1.MPNG210003RequestV1Biz bizContent = new MPNG210003RequestV1.MPNG210003RequestV1Biz(); MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqHead reqHead = new MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqHead(); reqHead.setTransTime(DateHelper.dateToStr(new Date(), DateHelper.DateEnum.yyyyMMddHHmmss)); // 交易时间 yyyyMMddHHmmss reqHead.setVersion("V-1.0"); // 版本信息 bizContent.setReqHead(reqHead); MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody reqBody = new MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody(); reqBody.setMerPtcId(MyConfig.MER_PTC_ID); // 商户编号:131058140006137 reqBody.setPartnerId(MyConfig.PARTNER_ID); // 服务商编号(!!!!!!!!!!!!!!!!!!!!!!!!!!)ISV202103308895 // 支付宝:B2C-JSAPI-ALIPAY // 微 信:B2C-JSAPI-WECHAT reqBody.setTranScene(MyConfig.B2C_JSAPI_WECHAT); // 交易场景 // 商户侧交易时间 reqBody.setMerTradeTime(DateHelper.dateToStr(new Date(), DateHelper.DateEnum.HHmmss)); // 商户侧交易日期 yyyyMMdd reqBody.setMerTradeDate(DateHelper.dateToStr(new Date(), DateHelper.DateEnum.yyyyMMdd)); // 回调地址 reqBody.setNotifyUrl("http://ynxbdkj.natapp1.cc/wx/bcmPayTest"); reqBody.setPayMerTranNo("Test_xbd_3066"); // 商户交易号 reqBody.setMerMemo("商户备注"); // 商户内部备注 reqBody.setTotalAmount("0.01"); // 商户订单总金额 // reqBody.setShopId("202111665511"); // 门店id // reqBody.setJumpUrl("http://ssss.xccc.com"); // 不带报文的前台跳转地址 List require_fieldsList = new ArrayList<>(); // 行端交易流水号 MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody.RequireFields require_fields = new MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody.RequireFields(); require_fields.setRequireField("bank_tran_no"); require_fieldsList.add(require_fields); // 第三方渠道 require_fields = new MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody.RequireFields(); require_fields.setRequireField("third_party"); require_fieldsList.add(require_fields); // 第三方渠道交易流水号 require_fields = new MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody.RequireFields(); require_fields.setRequireField("third_party_tran_no"); require_fieldsList.add(require_fields); // 微信支付宝详细付款信息 require_fields = new MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody.RequireFields(); require_fields.setRequireField("payment_info"); require_fieldsList.add(require_fields); // 微信支付宝详细付款信息 require_fields = new MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody.RequireFields(); require_fields.setRequireField("refund_info"); require_fieldsList.add(require_fields); System.out.println(JSON.toJSONString(require_fieldsList)); // // 设置额外字段 reqBody.setRequireFields(require_fieldsList); reqBody.setLocation("ONLINE"); // 线上或线下{ ONLINE/OFFLINE } reqBody.setCurrency("CNY"); // 币种 reqBody.setTranContent("商品名称:交易内容"); // 交易内容 // reqBody.setNoDsctAmount("000000000000001"); // 商户无优惠金额 bizContent.setReqBody(reqBody); request.setBizContent(bizContent); MPNG210003ResponseV1 response = client.execute(request, UUID.randomUUID().toString().replace("-", "")); MPNG210003ResponseV1.RspHead rspHead = response.getRspHead(); String responseStatus = rspHead.getResponseStatus(); System.out.println("[交行]二维码下单返回 resp={}" + JSON.toJSONString(response)); if (response.isSuccess() && "S".equals(response.getBizState()) && "S".equals(responseStatus)) { System.out.println("success"); MPNG210003ResponseV1.RspBody rspBody = response.getRspBody(); String qrCodeUrl = rspBody.getRedirectUrl(); String outTradeNo = rspBody.getPayMerTranNo(); System.out.println(qrCodeUrl); System.out.println(outTradeNo); } else { String responseCode = rspHead.getResponseCode(); String responseMsg = rspHead.getResponseMsg(); } } catch (Exception e) { e.printStackTrace(); } } }