提交修改
This commit is contained in:
parent
b90f3886ef
commit
15f90adf8c
@ -2,7 +2,10 @@ package com.heyu.api.jsapi;
|
||||
|
||||
// 引用微信支付工具库,参考:https://pay.weixin.qq.com/doc/v3/merchant/4014931831
|
||||
|
||||
import com.heyu.api.jsapi.dto.*;
|
||||
import com.heyu.api.jsapi.dto.CommonAmountInfo;
|
||||
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayRequest;
|
||||
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayResponse;
|
||||
import com.heyu.api.jsapi.dto.JsapiReqPayerInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import okhttp3.*;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@ -12,8 +15,6 @@ import java.io.IOException;
|
||||
import java.io.UncheckedIOException;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.PublicKey;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@ -57,24 +58,22 @@ public class JsapiPrepay {
|
||||
}
|
||||
|
||||
|
||||
|
||||
public DirectAPIv3JsapiPrepayResponse prePay(String tradeOrderId,
|
||||
String skuInfo,
|
||||
Long amount,
|
||||
String openid,
|
||||
Long quantity
|
||||
String openid
|
||||
) {
|
||||
DirectAPIv3JsapiPrepayRequest request = new DirectAPIv3JsapiPrepayRequest();
|
||||
request.setAppid(appid);
|
||||
request.setMchid(mchid);
|
||||
request.setNotifyUrl(notifyUrl);
|
||||
|
||||
request.setDescription(skuInfo);
|
||||
request.setOutTradeNo(tradeOrderId);
|
||||
request.setTimeExpire(WXPayUtility.generateExpireTime()); // 2025-11-05T21:02:16+08:00
|
||||
request.setAttach("自定义数据说明");
|
||||
request.setGoodsTag("WXG");
|
||||
request.setSupportFapiao(false);
|
||||
|
||||
CommonAmountInfo commonAmountInfo = new CommonAmountInfo();
|
||||
commonAmountInfo.setTotal(amount);
|
||||
commonAmountInfo.setCurrency("CNY");
|
||||
@ -83,48 +82,9 @@ public class JsapiPrepay {
|
||||
JsapiReqPayerInfo payer = new JsapiReqPayerInfo();
|
||||
payer.setOpenid(openid);
|
||||
request.setPayer(payer);
|
||||
|
||||
CouponInfo couponInfo = new CouponInfo();
|
||||
|
||||
couponInfo.setCostPrice(0L);
|
||||
couponInfo.setInvoiceId("");
|
||||
request.setDetail(couponInfo);
|
||||
List<GoodsDetail> goodsDetails = new ArrayList<>();
|
||||
|
||||
GoodsDetail goodsDetailItem = new GoodsDetail();
|
||||
goodsDetailItem.setMerchantGoodsId("1246464644");
|
||||
goodsDetailItem.setWechatpayGoodsId("1001");
|
||||
goodsDetailItem.setGoodsName("iPhoneX 256G");
|
||||
goodsDetailItem.setQuantity(quantity);
|
||||
goodsDetailItem.setUnitPrice(528800L);
|
||||
|
||||
goodsDetails.add(goodsDetailItem);
|
||||
couponInfo.setGoodsDetail(goodsDetails);
|
||||
|
||||
CommonSceneInfo sceneInfo = new CommonSceneInfo();
|
||||
sceneInfo.setPayerClientIp("14.23.150.211");
|
||||
sceneInfo.setDeviceId("013467007045764");
|
||||
|
||||
StoreInfo setstoreInfo = new StoreInfo();
|
||||
|
||||
setstoreInfo.setId("0001");
|
||||
setstoreInfo.setName("腾讯大厦分店");
|
||||
setstoreInfo.setAreaCode("440305");
|
||||
setstoreInfo.setAddress("广东省深圳市南山区科技中一道10000号");
|
||||
|
||||
SettleInfo settleInfo = new SettleInfo();
|
||||
settleInfo.setProfitSharing(false);
|
||||
|
||||
request.setSceneInfo(sceneInfo);
|
||||
sceneInfo.setStoreInfo(setstoreInfo);
|
||||
request.setSettleInfo(settleInfo);
|
||||
|
||||
return null;
|
||||
return doPay(request);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public DirectAPIv3JsapiPrepayResponse doPay(DirectAPIv3JsapiPrepayRequest request) {
|
||||
String uri = PATH;
|
||||
String reqBody = WXPayUtility.toJson(request);
|
||||
@ -136,12 +96,9 @@ public class JsapiPrepay {
|
||||
reqBuilder.addHeader("Content-Type", "application/json");
|
||||
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), reqBody);
|
||||
reqBuilder.method(METHOD, requestBody);
|
||||
|
||||
Request httpRequest = reqBuilder.build();
|
||||
|
||||
// 发送HTTP请求
|
||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||
|
||||
try (Response httpResponse = client.newCall(httpRequest).execute()) {
|
||||
|
||||
String respBody = WXPayUtility.extractBody(httpResponse);
|
||||
|
||||
@ -5,9 +5,6 @@ import com.heyu.api.jsapi.JsapiPrepay;
|
||||
import com.heyu.api.jsapi.WXPayUtility;
|
||||
import com.heyu.api.jsapi.dto.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TestJSAPI {
|
||||
|
||||
|
||||
@ -27,14 +24,13 @@ public class TestJSAPI {
|
||||
request.setMchid("1731491745");
|
||||
request.setNotifyUrl("https://api.1024api.com/api-interface/app/weixin/payNotify");
|
||||
|
||||
|
||||
|
||||
request.setDescription("Image形象店-深圳腾大-QQ公仔");
|
||||
request.setOutTradeNo("121775250");
|
||||
request.setOutTradeNo("12177525011");
|
||||
request.setTimeExpire(WXPayUtility.generateExpireTime()); // 2025-11-05T21:02:16+08:00
|
||||
request.setAttach("自定义数据说明");
|
||||
|
||||
request.setGoodsTag("WXG");
|
||||
|
||||
request.setSupportFapiao(false);
|
||||
|
||||
|
||||
@ -46,38 +42,6 @@ public class TestJSAPI {
|
||||
JsapiReqPayerInfo payer = new JsapiReqPayerInfo();
|
||||
payer.setOpenid("o6t1512tT-JuBeT6rIu6RhFGf3BQ");
|
||||
request.setPayer(payer);
|
||||
CouponInfo couponInfo = new CouponInfo();
|
||||
|
||||
couponInfo.setCostPrice(608800L);
|
||||
couponInfo.setInvoiceId("微信123");
|
||||
request.setDetail(couponInfo);
|
||||
List<GoodsDetail> goodsDetails = new ArrayList<>();
|
||||
|
||||
GoodsDetail goodsDetailItem = new GoodsDetail();
|
||||
goodsDetailItem.setMerchantGoodsId("1246464644");
|
||||
goodsDetailItem.setWechatpayGoodsId("1001");
|
||||
goodsDetailItem.setGoodsName("iPhoneX 256G");
|
||||
goodsDetailItem.setQuantity(1L);
|
||||
goodsDetailItem.setUnitPrice(528800L);
|
||||
goodsDetails.add(goodsDetailItem);
|
||||
couponInfo.setGoodsDetail(goodsDetails);
|
||||
|
||||
CommonSceneInfo sceneInfo = new CommonSceneInfo();
|
||||
sceneInfo.setPayerClientIp("14.23.150.211");
|
||||
sceneInfo.setDeviceId("013467007045764");
|
||||
|
||||
StoreInfo setstoreInfo = new StoreInfo();
|
||||
setstoreInfo.setId("0001");
|
||||
setstoreInfo.setName("腾讯大厦分店");
|
||||
setstoreInfo.setAreaCode("440305");
|
||||
setstoreInfo.setAddress("广东省深圳市南山区科技中一道10000号");
|
||||
|
||||
SettleInfo settleInfo = new SettleInfo();
|
||||
settleInfo.setProfitSharing(false);
|
||||
|
||||
request.setSceneInfo(sceneInfo);
|
||||
sceneInfo.setStoreInfo(setstoreInfo);
|
||||
request.setSettleInfo(settleInfo);
|
||||
|
||||
|
||||
try {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user