ソースを参照

feat:小程序修改支付逻辑payorder

刘云鑫 2 ヶ月 前
コミット
d3c143da63

+ 5 - 4
alien-dining/src/main/java/shop/alien/dining/controller/PaymentController.java

@@ -36,13 +36,14 @@ public class PaymentController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "price", value = "订单金额", required = true, paramType = "query", dataType = "String"),
             @ApiImplicitParam(name = "subject", value = "订单标题", required = true, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "payType", value = "支付类型(alipay:支付宝, wechatPay:微信支付)", required = true, paramType = "query", dataType = "String")
+            @ApiImplicitParam(name = "payType", value = "支付类型(alipay:支付宝, wechatPay:微信支付)", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "payer", value = "支付用户", required = true, paramType = "query", dataType = "String")
     })
     @RequestMapping("/prePay")
-    public R prePay(String price, String subject, String payType) {
-        log.info("PaymentController:prePay, price: {}, subject: {}, payType: {}", price, subject, payType);
+    public R prePay(String price, String subject, String payType,String payer) {
+        log.info("PaymentController:prePay, price: {}, subject: {}, payType: {},payer:{}", price, subject, payType,payer);
         try {
-            return paymentStrategyFactory.getStrategy(payType).createPrePayOrder(price, subject);
+            return paymentStrategyFactory.getStrategy(payType).createPrePayOrder(price, subject,payer);
         } catch (Exception e) {
             return R.fail(e.getMessage());
         }

+ 1 - 1
alien-dining/src/main/java/shop/alien/dining/strategy/payment/PaymentStrategy.java

@@ -19,7 +19,7 @@ public interface PaymentStrategy {
      * @return 预支付订单信息
      * @throws Exception 生成异常
      */
-    R createPrePayOrder(String price, String subject) throws Exception;
+    R createPrePayOrder(String price, String subject, String payer) throws Exception;
 
 
     /**

+ 12 - 12
alien-dining/src/main/java/shop/alien/dining/strategy/payment/impl/WeChatPaymentMininProgramStrategyImpl.java

@@ -139,7 +139,7 @@ public class WeChatPaymentMininProgramStrategyImpl implements PaymentStrategy {
     }
 
     @Override
-    public R createPrePayOrder(String price, String subject) throws Exception {
+    public R createPrePayOrder(String price, String subject, String payer) throws Exception {
 
 
         DirectAPIv3JsapiPrepayRequest request = new DirectAPIv3JsapiPrepayRequest();
@@ -150,14 +150,14 @@ public class WeChatPaymentMininProgramStrategyImpl implements PaymentStrategy {
 //        request.timeExpire = "2018-06-08T10:34:56+08:00";
 //        request.attach = "自定义数据说明";
         request.notifyUrl = prePayNotifyUrl;
-        request.goodsTag = "WXG";
-        request.supportFapiao = false;
+//        request.goodsTag = "WXG";
+//        request.supportFapiao = false;
         request.amount = new CommonAmountInfo();
-        request.amount.total = 100L;
-        request.amount.currency = "CNY";
+        request.amount.total = Long.parseLong(price);
+//        request.amount.currency = "CNY";
         request.payer = new JsapiReqPayerInfo();
-        request.payer.openid = "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o";
-        request.detail = new CouponInfo();
+        request.payer.openid = payer;
+        /*request.detail = new CouponInfo();
         request.detail.costPrice = 608800L;
         request.detail.invoiceId = "微信123";
         request.detail.goodsDetail = new ArrayList<>();
@@ -169,17 +169,17 @@ public class WeChatPaymentMininProgramStrategyImpl implements PaymentStrategy {
             goodsDetailItem.quantity = 1L;
             goodsDetailItem.unitPrice = 528800L;
             request.detail.goodsDetail.add(goodsDetailItem);
-        };
-        request.sceneInfo = new CommonSceneInfo();
+        };*/
+        /*request.sceneInfo = new CommonSceneInfo();
         request.sceneInfo.payerClientIp = "14.23.150.211";
         request.sceneInfo.deviceId = "013467007045764";
         request.sceneInfo.storeInfo = new StoreInfo();
         request.sceneInfo.storeInfo.id = "0001";
         request.sceneInfo.storeInfo.name = "腾讯大厦分店";
         request.sceneInfo.storeInfo.areaCode = "440305";
-        request.sceneInfo.storeInfo.address = "广东省深圳市南山区科技中一道10000号";
-        request.settleInfo = new SettleInfo();
-        request.settleInfo.profitSharing = false;
+        request.sceneInfo.storeInfo.address = "广东省深圳市南山区科技中一道10000号";*/
+/*        request.settleInfo = new SettleInfo();
+        request.settleInfo.profitSharing = false;*/
         try {
             DirectAPIv3JsapiPrepayResponse response = doCreatePrePayOrder(request);
             // TODO: 请求成功,继续业务逻辑