mitao
2024-08-12 aeb379749ad10eabd54086e93231228a48c69843
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/alipay/util/PayDemoActivity.java
@@ -5,14 +5,14 @@
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.domain.AlipayTradeCreateModel;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.alipay.api.request.AlipayTradeCreateRequest;
import com.alipay.api.response.AlipayTradeCreateResponse;
import com.jpay.alipay.AliPayApi;
import com.jpay.alipay.AliPayApiConfig;
import com.jpay.alipay.AliPayApiConfigKit;
import com.ruoyi.order.util.alipay.config.AlipayConfig;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
@@ -104,7 +104,7 @@
         String orderInfo = "";
         orderInfo = AliPayApi.startAppPay(model, NOTIFY_URL);
         map.put("orderInfo", orderInfo);
         map.put("Type",2);
         
@@ -113,6 +113,69 @@
      }
       return map;
   }
   public static Map<String, Object> jsApiPay(String subject, String body, Double price,
         String out_trade_no, String openId) throws AlipayApiException {
      // 构造请求参数以调用接口
      AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
      AlipayTradeCreateModel model = new AlipayTradeCreateModel();
      // 设置商户订单号
      model.setOutTradeNo(out_trade_no);
      // 设置产品码
      model.setProductCode("JSAPI_PAY");
      // 设置小程序支付中
      model.setOpAppId(APP_ID);
      // 设置订单总金额
      model.setTotalAmount(price.toString());
      // 设置业务扩展参数
      // ExtendParams extendParams = new ExtendParams();
      // extendParams.setTradeComponentOrderId("2023060801502300000008810000005657");
      // model.setExtendParams(extendParams);
      // 设置可打折金额
      // model.setDiscountableAmount("80.00");
      // 设置订单标题
      model.setSubject(subject);
      // 设置订单附加信息
      model.setBody(body);
      // uid参数未来计划废弃,存量商户可继续使用,新商户请使用openid。请根据应用-开发配置-openid配置选择支持的字段。
      // model.setBuyerId("2088102146225135");
      // 设置买家支付宝用户唯一标识
      model.setBuyerOpenId(openId);
      // 设置商户门店编号
      // model.setStoreId("NJ_001");
      request.setBizModel(model);
      request.setNotifyUrl(NOTIFY_URL);
      // 第三方代调用模式下请设置app_auth_token
      // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
      AlipayTradeCreateResponse response = alipayClient.execute(request);
      System.out.println(response.getBody());
      Map<String, Object> map = new HashMap<>();
      if (response.isSuccess()) {
         System.out.println("调用成功");
         map.put("outTradeNo", response.getOutTradeNo());
         map.put("tradeNo", response.getTradeNo());
         map.put("Type", 2);
      } else {
         System.out.println("调用失败");
         // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
         // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
         // System.out.println(diagnosisUrl);
      }
      return map;
   }
}