You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					133 lines
				
				6.8 KiB
			
		
		
			
		
	
	
					133 lines
				
				6.8 KiB
			| 
											3 years ago
										 | 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;
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * <pre>
 | ||
|  |  * 单笔条码跳转支付接口@MPNG-CIPP(测试)
 | ||
|  |  * </pre>
 | ||
|  |  * <p>
 | ||
|  |  *
 | ||
|  |  * </p>
 | ||
|  |  */
 | ||
|  | 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<MPNG210003RequestV1.MPNG210003RequestV1Biz.ReqBody.RequireFields> 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();
 | ||
|  |         }
 | ||
|  |     }
 | ||
|  | }
 |