整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          實用干貨 - 一步一步加你在SpringBoot中集

          實用干貨 - 一步一步加你在SpringBoot中集成支付寶電腦網站支付

          :簡介

          電腦支付常用于電商和后臺管理系統的賬戶充值等場景。

          電腦網站支付 文檔

          電腦網站支付流程圖

          二:集成步驟

          0. 創建應用、配置密鑰

          集成前需要先創建應用、配置密鑰、回調地址等以及alipay-sdk-java.jar和alipay-trade-sdk.jar請查看Spring Boot入門教程(三十五):支付寶集成-準備工作

          1. dependency

          <dependencies>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
              </dependency>
          
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-test</artifactId>
                  <scope>test</scope>
              </dependency>
          
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-thymeleaf</artifactId>
              </dependency>
              <!-- alipay begin -->
              <dependency>
                  <groupId>com.alipay</groupId>
                  <artifactId>alipay-sdk-java</artifactId>
                  <version>20170725114550</version>
              </dependency>
              <dependency>
                  <groupId>com.alipay</groupId>
                  <artifactId>alipay-trade-sdk</artifactId>
                  <version>20161215</version>
              </dependency>
              <dependency>
                  <groupId>com.google.code.gson</groupId>
                  <artifactId>gson</artifactId>
              </dependency>
              <dependency>
                  <groupId>commons-configuration</groupId>
                  <artifactId>commons-configuration</artifactId>
                  <version>1.10</version>
              </dependency>
              <dependency>
                  <groupId>com.google.zxing</groupId>
                  <artifactId>core</artifactId>
                  <version>3.2.1</version>
              </dependency>
              <!-- alipay end -->
              <dependency>
                  <groupId>org.projectlombok</groupId>
                  <artifactId>lombok</artifactId>
              </dependency>
          </dependencies>
          

          2. application.yml

          # 沙箱賬號
          pay:
            alipay:
              gatewayUrl: https://openapi.alipaydev.com/gateway.do
              appid: 2016091400508498
              appPrivateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCtXKWs+trRSuCxEUvlsEeSAuLWs3B/Dh74R8223BnfzoA29aGeoycAqfKlBMcbzU2G1KayESvZKGpwBLeejSbecRYjgZsQDyEaDimQQJtGFvZVV6u4XNnvIJ72eQzEaEIQfuiorjBTLm6DQuds4R0GxftqON6QFoIZkWB9ZrZKd02cuy16dW+UqtLVGGAHcCIAkB63zUiKSNfweMddneZ7MVs3lvu3xhMnD+5us/+n2Vp4qhfmpYLcdqIW6InU4GypeoOpyUTrfUGpgdR0l924vHy/GQJZEKFaRcK3cYK+ECyKpSIoqaJJFLHbkqsliuPpMUG+rM3jiqeIAH4psAznAgMBAAECggEBAJ5jyEbbxrJzrAh7GhHX1fwUQPYSadTbrPYAfHX2cHlnrQMJtsk+nTLhEv0r+VJwZ8WpYkfMong8kcqYtL7ajcmsHqMAFhE9EWxBxj2ymWsXLabZe93sj30IG9Rq0nxcGQgDO0RqKWLGSFgK93Al2KRInKT3InkY53K+vR61ihVLmGf7+GwPtIZteBy+tuAyvcj2RlkYvjiFi3ySyZ1wA3sJIlgrGiixd6fj20XFGNE3CnAwu0BJgXXbP/S9J4C0RRa3ZXj8fX7oONhVxz2xKxn7AT4e8OWjt7J41H2LRct8Fgl9pqgz2FJYv/WfbkG8x9fGiKYYvPXoxjjrk/tkewkCgYEA8f9Lcu5JPrE9rpw9zlwhm5cOO81xLxdwL5R5/1bRP48BZGIYuqlCbVvjJVqtO8eTnLhUwH7fG8B7cmoeO9bGr9GQrtfyCqz6FtVymTBieJlfgZDVhtzyv2qKOBMIFE8jsbSBK/NHHMvykJ+XdQ1riwCeQDdXICRuYTTFwGk2OsUCgYEAt2SoN95tVmVrvKG6ATLNEtge/ozeVywA4GjltrSw/G9vqp+DkkT2pY19uROuzMazoTzKWpPho2q/qzNlv/ANbOFM2GEmKamQ7CO88JgRxMsPTvc/HxCLU/ClMJU8LcOf9LfP2KYZpPwuheKJoF4vDGj8NsbFmccJyYSdpkNEk7sCgYBJlL2FMaz1sgC2Ue19DIhvfaunRV1P20mSPgwmNmijccETm7w3LXX0OIdFeV/JGHLqqSWj7i+6iXk/ncKZoUGCfi8G6sQ+uL/GJ5qTt6GJV+ExTS+PtSjeSO/EAw1m13Vb+C16hpstx1l23f+4aJ81gbecgPct38XsKpaiXZtOnQKBgQCMsN7QRYYxwoq9YoDUzIlAzKYyeBVWYL6najHYUZR5hG/xQIBqZRem9/4cTvpJxKInrwA6LrrqaEl0aHDFp75U6h7O3PCvA5PXZK9dD/yJsZIj7U/yX/nTQokn1UUegrYiwiTkusBvrrtuINWePsLvTVc4GpObHnPmsiNTWsWwYwKBgENaeTNOCHV2km/ysXQSEIhKbtlAMQPsgWHCt/bzHlF9m18izb1LrJyjzcSsd+Zy78R+pv4G50Q27c3e/DFPz/wYxN/yHWRbyLBA8ipJbCtMtPEdS9krpmN6cChIdLGbz4CVUqOPSRzNb9lhhgPCcCNRq6DG3HBceb1Se9VnO3zk
              alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApFQKccMq+wPoWh93DcX3XYrnT7FJ3gntJA/jEwgk6Jd3iEVS2CyUCCgFVcQn8xjXT81YbZHYvoC50IBuu+A+Ey+J8VIgsBm5g9uwbOLRf66GrZjuKOlalHm5gHXjcL2gZRMBJEStOxstcO2YQriqhQzdL3EKp+HQc9u14IOVFpZdR8qq1l7CzKHn1vQo/1fUPfUrTLQqSuQTU9Ospv/QHFqOJA7DPetUQ+jnaZ082f3clr4ITw4EE8A6IWqTXcETTx5j/udCGP84g2Y4j+8i9DqYGyD5ePVgt4G0ICBX1bi1qNlylfxRg8Y3c1DFrRGyr0NpKQxSVXkYaVNvrCoudQIDAQAB
              returnUrl: http://s9v2cw.natappfree.cc/alipay/return
              notifyUrl: http://s9v2cw.natappfree.cc/alipay/notify
          
          spring:
            thymeleaf:
              prefix: classpath:/templates/
              suffix: .html
              mode: HTML5
              encoding: UTF-8
          

          3. AlipayProperties

          /**
           * 支付寶支付的參數配置
           *
           * @author mengday zhang
           */
          @Data
          @Slf4j
          @ConfigurationProperties(prefix="pay.alipay")
          public class AlipayProperties {
          
              /** 支付寶gatewayUrl */
              private String gatewayUrl;
              /** 商戶應用id */
              private String appid;
              /** RSA私鑰,用于對商戶請求報文加簽 */
              private String appPrivateKey;
              /** 支付寶RSA公鑰,用于驗簽支付寶應答 */
              private String alipayPublicKey;
              /** 簽名類型 */
              private String signType="RSA2";
          
              /** 格式 */
              private String formate="json";
              /** 編碼 */
              private String charset="UTF-8";
          
              /** 同步地址 */
              private String returnUrl;
          
              /** 異步地址 */
              private String notifyUrl;
          
              /** 最大查詢次數 */
              private static int maxQueryRetry=5;
              /** 查詢間隔(毫秒) */
              private static long queryDuration=5000;
              /** 最大撤銷次數 */
              private static int maxCancelRetry=3;
              /** 撤銷間隔(毫秒) */
              private static long cancelDuration=3000;
          
              private AlipayProperties() {}
          
              /**
               * PostContruct是spring框架的注解,在方法上加該注解會在項目啟動的時候執行該方法,也可以理解為在spring容器初始化的時候執行該方法。
               */
              @PostConstruct
              public void init() {
                  log.info(description());
              }
          
              public String description() {
                  StringBuilder sb=new StringBuilder("\nConfigs{");
                  sb.append("支付寶網關: ").append(gatewayUrl).append("\n");
                  sb.append(", appid: ").append(appid).append("\n");
                  sb.append(", 商戶RSA私鑰: ").append(getKeyDescription(appPrivateKey)).append("\n");
                  sb.append(", 支付寶RSA公鑰: ").append(getKeyDescription(alipayPublicKey)).append("\n");
                  sb.append(", 簽名類型: ").append(signType).append("\n");
          
                  sb.append(", 查詢重試次數: ").append(maxQueryRetry).append("\n");
                  sb.append(", 查詢間隔(毫秒): ").append(queryDuration).append("\n");
                  sb.append(", 撤銷嘗試次數: ").append(maxCancelRetry).append("\n");
                  sb.append(", 撤銷重試間隔(毫秒): ").append(cancelDuration).append("\n");
                  sb.append("}");
                  return sb.toString();
              }
          
              private String getKeyDescription(String key) {
                  int showLength=6;
                  if (StringUtils.isNotEmpty(key) && key.length() > showLength) {
                      return new StringBuilder(key.substring(0, showLength)).append("******")
                              .append(key.substring(key.length() - showLength)).toString();
                  }
                  return null;
              }
          }
          

          4. AlipayConfiguration

          /**
           * 兩個支付寶客戶端,用戶可以使用任意一個.
           *
           * alipay-trade-sdk 是對alipay-sdk-java的封裝,建議使用alipay-trade-sdk.
           *
           * @author mengday zhang
           */
          @Configuration
          @EnableConfigurationProperties(AlipayProperties.class)
          public class AlipayConfiguration {
          
              @Autowired
              private AlipayProperties properties;
          
              /**
               * alipay-trade-sdk
               * @return
               */
              @Bean
              public AlipayTradeService alipayTradeService() {
                  return new AlipayTradeServiceImpl.ClientBuilder()
                          .setGatewayUrl(properties.getGatewayUrl())
                          .setAppid(properties.getAppid())
                          .setPrivateKey(properties.getAppPrivateKey())
                          .setAlipayPublicKey(properties.getAlipayPublicKey())
                          .setSignType(properties.getSignType())
                          .build();
              }
          
              /**
               * alipay-sdk-java
               * @return
               */
              @Bean
              public AlipayClient alipayClient(){
                  return new DefaultAlipayClient(properties.getGatewayUrl(),
                          properties.getAppid(),
                          properties.getAppPrivateKey(),
                          properties.getFormate(),
                          properties.getCharset(),
                          properties.getAlipayPublicKey(),
                          properties.getSignType());
              }
          }
          

          5. AlipayPagePayController

          /**
           * 支付寶-電腦網站支付.
           * <p>
           * 電腦網站支付 https://docs.open.alipay.com/270/105898/
           *
           * @author Mengday Zhang
           * @version 1.0
           * @since 2018/6/14
           */
          @Controller
          @RequestMapping("/alipay/page")
          public class AlipayPagePayController {
          
              @Autowired
              private AlipayProperties alipayProperties;
          
              @Autowired
              private AlipayClient alipayClient;
          
              @Autowired
              private AlipayController alipayController;
          
          
              @PostMapping("/gotoPayPage")
              public void gotoPayPage(HttpServletResponse response) throws AlipayApiException, IOException {
                  // 訂單模型
                  String productCode="FAST_INSTANT_TRADE_PAY";
                  AlipayTradePagePayModel model=new AlipayTradePagePayModel();
                  model.setOutTradeNo(UUID.randomUUID().toString());
                  model.setSubject("支付測試");
                  model.setTotalAmount("0.01");
                  model.setBody("支付測試,共0.01元");
                  model.setProductCode(productCode);
          
                  AlipayTradePagePayRequest pagePayRequest=new AlipayTradePagePayRequest();
                  pagePayRequest.setReturnUrl("http://s9v2cw.natappfree.cc/alipay/page/returnUrl");
                  pagePayRequest.setNotifyUrl(alipayProperties.getNotifyUrl());
                  pagePayRequest.setBizModel(model);
          
                  // 調用SDK生成表單, 并直接將完整的表單html輸出到頁面
                  String form=alipayClient.pageExecute(pagePayRequest).getBody();
                  response.setContentType("text/html;charset=" + alipayProperties.getCharset());
                  response.getWriter().write(form);
                  response.getWriter().flush();
                  response.getWriter().close();
              }
          
              @RequestMapping("/returnUrl")
              public String returnUrl(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, AlipayApiException {
                  response.setContentType("text/html;charset=" + alipayProperties.getCharset());
          
                  boolean verifyResult=alipayController.rsaCheckV1(request);
                  if(verifyResult){
                      //驗證成功
                      //請在這里加上商戶的業務邏輯程序代碼,如保存支付寶交易號
                      //商戶訂單號
                      String out_trade_no=new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
                      //支付寶交易號
                      String trade_no=new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
          
                      return "pagePaySuccess";
          
                  }else{
                      return "pagePayFail";
          
                  }
              }
          }
          

          6. AlipayController

          /**
           * 支付寶通用接口.
           * <p>
           * detailed description
           *
           * @author Mengday Zhang
           * @version 1.0
           * @since 2018/6/13
           */
          @Slf4j
          @RestController
          @RequestMapping("/alipay")
          public class AlipayController {
          
              @Autowired
              private AlipayProperties aliPayProperties;
          
              @Autowired
              private AlipayClient alipayClient;
          
              @Autowired
              private AlipayTradeService alipayTradeService;
          
              /**
               * 支付異步通知
               *
               * 接收到異步通知并驗簽通過后,一定要檢查通知內容,包括通知中的app_id、out_trade_no、total_amount是否與請求中的一致,并根據trade_status進行后續業務處理。
               *
               * https://docs.open.alipay.com/194/103296
               */
              @RequestMapping("/notify")
              public String notify(HttpServletRequest request) throws AlipayApiException, UnsupportedEncodingException {
                  // 一定要驗簽,防止黑客篡改參數
                  Map<String, String[]> parameterMap=request.getParameterMap();
                  StringBuilder notifyBuild=new StringBuilder("/****************************** alipay notify ******************************/\n");
                  parameterMap.forEach((key, value) -> notifyBuild.append(key + "=" + value[0] + "\n") );
                  log.info(notifyBuild.toString());
          
          
                  boolean flag=this.rsaCheckV1(request);
                  if (flag) {
                      /**
                       * TODO 需要嚴格按照如下描述校驗通知數據的正確性
                       *
                       * 商戶需要驗證該通知數據中的out_trade_no是否為商戶系統中創建的訂單號,
                       * 并判斷total_amount是否確實為該訂單的實際金額(即商戶訂單創建時的金額),
                       * 同時需要校驗通知中的seller_id(或者seller_email) 是否為out_trade_no這筆單據的對應的操作方(有的時候,一個商戶可能有多個seller_id/seller_email),
                       *
                       * 上述有任何一個驗證不通過,則表明本次通知是異常通知,務必忽略。
                       * 在上述驗證通過后商戶必須根據支付寶不同類型的業務通知,正確的進行不同的業務處理,并且過濾重復的通知結果數據。
                       * 在支付寶的業務通知中,只有交易通知狀態為TRADE_SUCCESS或TRADE_FINISHED時,支付寶才會認定為買家付款成功。
                       */
          
                      //交易狀態
                      String tradeStatus=new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");
                      // 商戶訂單號
                      String out_trade_no=new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
                      //支付寶交易號
                      String trade_no=new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
                      //付款金額
                      String total_amount=new String(request.getParameter("total_amount").getBytes("ISO-8859-1"),"UTF-8");
                      // TRADE_FINISHED(表示交易已經成功結束,并不能再對該交易做后續操作);
                      // TRADE_SUCCESS(表示交易已經成功結束,可以對該交易做后續操作,如:分潤、退款等);
                      if(tradeStatus.equals("TRADE_FINISHED")){
                          //判斷該筆訂單是否在商戶網站中已經做過處理
                          //如果沒有做過處理,根據訂單號(out_trade_no)在商戶網站的訂單系統中查到該筆訂單的詳細,
                          // 并判斷total_amount是否確實為該訂單的實際金額(即商戶訂單創建時的金額),并執行商戶的業務程序
                          //請務必判斷請求時的total_fee、seller_id與通知時獲取的total_fee、seller_id為一致的
                          //如果有做過處理,不執行商戶的業務程序
          
                          //注意:
                          //如果簽約的是可退款協議,退款日期超過可退款期限后(如三個月可退款),支付寶系統發送該交易狀態通知
                          //如果沒有簽約可退款協議,那么付款完成后,支付寶系統發送該交易狀態通知。
                      } else if (tradeStatus.equals("TRADE_SUCCESS")){
                          //判斷該筆訂單是否在商戶網站中已經做過處理
                          //如果沒有做過處理,根據訂單號(out_trade_no)在商戶網站的訂單系統中查到該筆訂單的詳細,
                          // 并判斷total_amount是否確實為該訂單的實際金額(即商戶訂單創建時的金額),并執行商戶的業務程序
                          //請務必判斷請求時的total_fee、seller_id與通知時獲取的total_fee、seller_id為一致的
                          //如果有做過處理,不執行商戶的業務程序
          
                          //注意:
                          //如果簽約的是可退款協議,那么付款完成后,支付寶系統發送該交易狀態通知。
          
                      }
          
                      return "success";
                  }
          
                  return "fail";
              }
          
              /**
               * 訂單查詢(最主要用于查詢訂單的支付狀態)
               * @param orderNo 商戶訂單號
               * @return
               */
              @GetMapping("/query")
              public String query(String orderNo){
          
                  AlipayTradeQueryRequestBuilder builder=new AlipayTradeQueryRequestBuilder()
                          .setOutTradeNo(orderNo);
                  AlipayF2FQueryResult result=alipayTradeService.queryTradeResult(builder);
                  switch (result.getTradeStatus()) {
                      case SUCCESS:
                          log.info("查詢返回該訂單支付成功: )");
          
                          AlipayTradeQueryResponse resp=result.getResponse();
                          log.info(resp.getTradeStatus());
          //                log.info(resp.getFundBillList());
                          break;
          
                      case FAILED:
                          log.error("查詢返回該訂單支付失敗!!!");
                          break;
          
                      case UNKNOWN:
                          log.error("系統異常,訂單支付狀態未知!!!");
                          break;
          
                      default:
                          log.error("不支持的交易狀態,交易返回異常!!!");
                          break;
                  }
                  return result.getResponse().getBody();
              }
          
              /**
               * 退款
               * @param orderNo 商戶訂單號
               * @return
               */
              @PostMapping("/refund")
              @ResponseBody
              public String refund(String orderNo) throws AlipayApiException {
                  AlipayTradeRefundRequest alipayRequest=new AlipayTradeRefundRequest();
          
                  AlipayTradeRefundModel model=new AlipayTradeRefundModel();
                  // 商戶訂單號
                  model.setOutTradeNo(orderNo);
                  // 退款金額
                  model.setRefundAmount("0.01");
                  // 退款原因
                  model.setRefundReason("無理由退貨");
                  // 退款訂單號(同一個訂單可以分多次部分退款,當分多次時必傳)
          //        model.setOutRequestNo(UUID.randomUUID().toString());
                  alipayRequest.setBizModel(model);
          
                  AlipayTradeRefundResponse alipayResponse=alipayClient.execute(alipayRequest);
                  System.out.println(alipayResponse.getBody());
          
                  return alipayResponse.getBody();
              }
          
              /**
               * 退款查詢
               * @param orderNo 商戶訂單號
               * @param refundOrderNo 請求退款接口時,傳入的退款請求號,如果在退款請求時未傳入,則該值為創建交易時的外部訂單號
               * @return
               * @throws AlipayApiException
               */
              @GetMapping("/refundQuery")
              @ResponseBody
              public String refundQuery(String orderNo, String refundOrderNo) throws AlipayApiException {
                  AlipayTradeFastpayRefundQueryRequest alipayRequest=new AlipayTradeFastpayRefundQueryRequest();
          
                  AlipayTradeFastpayRefundQueryModel model=new AlipayTradeFastpayRefundQueryModel();
                  model.setOutTradeNo(orderNo);
                  model.setOutRequestNo(refundOrderNo);
                  alipayRequest.setBizModel(model);
          
                  AlipayTradeFastpayRefundQueryResponse alipayResponse=alipayClient.execute(alipayRequest);
                  System.out.println(alipayResponse.getBody());
          
                  return alipayResponse.getBody();
              }
          
              /**
               * 關閉交易
               * @param orderNo
               * @return
               * @throws AlipayApiException
               */
              @PostMapping("/close")
              @ResponseBody
              public String close(String orderNo) throws AlipayApiException {
                  AlipayTradeCloseRequest alipayRequest=new AlipayTradeCloseRequest();
                  AlipayTradeCloseModel model=new AlipayTradeCloseModel();
                  model.setOutTradeNo(orderNo);
                  alipayRequest.setBizModel(model);
          
                  AlipayTradeCloseResponse alipayResponse=alipayClient.execute(alipayRequest);
                  System.out.println(alipayResponse.getBody());
          
                  return alipayResponse.getBody();
              }
          
              /**
               * 校驗簽名
               * @param request
               * @return
               */
              public boolean rsaCheckV1(HttpServletRequest request){
                  // https://docs.open.alipay.com/54/106370
                  // 獲取支付寶POST過來反饋信息
                  Map<String,String> params=new HashMap<>();
                  Map requestParams=request.getParameterMap();
                  for (Iterator iter=requestParams.keySet().iterator(); iter.hasNext();) {
                      String name=(String) iter.next();
                      String[] values=(String[]) requestParams.get(name);
                      String valueStr="";
                      for (int i=0; i < values.length; i++) {
                          valueStr=(i==values.length - 1) ? valueStr + values[i]
                                  : valueStr + values[i] + ",";
                      }
                      params.put(name, valueStr);
                  }
          
                  try {
                      boolean verifyResult=AlipaySignature.rsaCheckV1(params,
                              aliPayProperties.getAlipayPublicKey(),
                              aliPayProperties.getCharset(),
                              aliPayProperties.getSignType());
          
                      return verifyResult;
                  } catch (AlipayApiException e) {
                      log.debug("verify sigin error, exception is:{}", e);
                      return false;
                  }
              }
          }
          

          7. WebMvcConfiguration

          /**
           * WebMVC 配置.
           * <p>
           * 添加路徑和頁面的映射關系
           *
           * @author Mengday Zhang
           * @version 1.0
           * @since 2018/6/13
           */
          @Configuration
          public class WebMvcConfiguration extends WebMvcConfigurationSupport {
              @Override
              protected void addViewControllers(ViewControllerRegistry registry) {
                  registry.addViewController("/gotoWapPage").setViewName("gotoWapPay");
                  registry.addViewController("/gotoPagePage").setViewName("gotoPagePay");
                  super.addViewControllers(registry);
              }
          }
          

          8. templates

          gotoPagePay.html

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Title</title>
          </head>
          <body style="font-size: 30px">
          
          <form method="post" action="/alipay/page/gotoPayPage">
              <h3>購買商品:越南新娘</h3>
              <h3>價格:20000</h3>
              <h3>數量:10個</h3>
          
              <button style="width: 100%; height: 60px; alignment: center; background: #b49e8f" type="submit">立即支付</button>
          </form>
          
          </body>
          </html>
          

          pagePaySuccess.html

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Title</title>
          </head>
          <body>
          
          <h1>電腦網站支付 成功,我們將盡快從越南偷渡過來,收貨后請請及時驗貨!歡迎下次再來</h1>
          
          </body>
          </html>
          

          三:Demo圖

          三:查詢對賬單下載地址

          日,綿陽市公安局涪城區分局在“凈網2020”專項行動中,該局網安部門破獲一起幫助信息網絡犯罪活動案。15名犯罪嫌疑人落網,涉案金額高達8000余萬元。

          2019年10月,涪城區公安分局網安民警在網上巡查發現,有人通過QQ發布尋找“第四方支付平臺”合作的信息。

          所謂“第四方支付平臺”,其實是網絡黑色產業內的“行話”,指的是一種脫離監管的自建平臺。“這種平臺往往用于洗錢,為犯罪團伙轉移贓款提供服務。”涪城區公安分局網安大隊大隊長劉縛龍介紹,網安部門立即組織警力對線索進行核查。

          經初查,自2019年5月開始,楊某某、謝某某等人與境外賭博網站聯系非常緊密,雙方的資金來往頻繁。專案民警對楊某某等人展開偵查,發現該團伙組織架構清晰,成員分工明確。

          他們自建“快支付”、“飛飛支付”平臺,馬某的科技公司提供技術支持,為全球彩票網、星空彩票網等境外賭博網站提供支付結算。

          虛假交易偽裝 賭資由“黑”變“白”

          “參賭人員在賭博網站充值后,將直接跳轉到電商平臺,在網店購買虛擬物品,對賭博行為進行偽裝。”劉縛龍告訴小直,“第四方支付平臺”實際上打通了參賭人員和境外賭博網站的通道,將賭資由“黑”洗“白”。

          “參與賭博是違法的,賭資就是贓款,通過建立虛假交易訂單的方式,賭資就變成了正常的交易資金。當充值資金達到一定金額后,賭博平臺就會進行提現。” 劉縛龍說,經查楊某某等人為境外博彩網站過賬高達8000余萬元。

          風控部門出“內鬼” 為“洗錢”大開方便之門

          不過,電商平臺都有專門的風控部門,他們如此頻繁、異常的資金流動,是如何逃過監管的呢?專案組判斷很有可能存在“內鬼”。

          證據顯示,某電商平臺的風控人員陳某某與楊某某等人相互勾結,每日從店鋪交易總額中抽取3‰的“點子”,保障楊某某等人的大量虛假銷售不被平臺風控凍結。

          通過調查發現,賭博網站的技術和客服人員均位于柬埔寨,專案組對賭博平臺的注冊、充值、提現等流程進行了遠程取證,固定了上述平臺開設賭場的性質。

          2019年12月10日,專案組在廣州、成都、綿陽三地同時展開抓捕,將楊某某、謝某某、陳某某等15名犯罪嫌疑人抓獲,摧毀了一條由電商平臺運營負責人(內鬼)、店鋪提供商、碼商、第四方支付團伙、平臺安全防護、服務器搭建組成的黑色產業鏈條。

          經查,楊某某等人為賭博團伙提供過賬服務以來,已獲利200余萬元。目前,楊某某等人因涉嫌幫助信息網絡犯罪活動罪,已被公安機關刑事拘留,案件正在進一步辦理當中。

          聲明:轉載此文是出于傳遞更多信息之目的。若有來源標注錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯系,我們將及時更正、刪除,謝謝。

          月7日,中共中央政治局委員、外交部長王毅就“中國外交政策和對外關系”相關問題回答中外記者提問。王毅在會上宣布,從3月14日起,中方將進一步對瑞士、愛爾蘭、匈牙利、奧地利、比利時、盧森堡六國試行免簽政策。消息一出,多家在線旅游平臺相關國家旅游產品搜索量快速上漲。

          隨著全球逐步走出新冠疫情的陰影,境外游客將中國作為旅行目的地并入境的比例也越來越高,但支付習慣和方式的差異是讓來華外國人頭疼的問題。澎湃新聞(www.thepaper.cn)此前曾報道,有全國政協委員在調研中發現,支付不便讓一些在華的外國朋友很苦惱,有的外企老總在中國市場做調研,沒有微信和支付寶,“簡直寸步難行”。

          對此,中國政府近期針對提升境外人士支付便利化問題多次表態,并推出多項措施。2月23日,國務院常務會議審議通過《關于進一步優化支付服務提升支付便利性的意見》,其中就提到要聚焦外籍來華人員支付不便問題,加強協同配合,加大必要的資源投入,多措并舉打通服務堵點。2月29日,中國人民銀行召開優化支付服務推進會部署相關工作。3月1日,在國務院新聞辦公室舉行的國務院例行吹風會上,中國人民銀行副行長張青松介紹,我國將通過推動重點場所和重點商戶受理境外銀行卡、持續改善現金使用環境等六大舉措,進一步優化支付服務。

          在此背景下,為便利來華外籍人士,上海門戶網站專門做了一個專題(https://english.shanghai.gov.cn/en-PaymentsInShanghai/index.html),將所有關于支付的信息做了匯總,放在了門戶首頁大圖的輪播位,方便用戶在短時間內找到最有價值的內容。

          在這個門戶網站的專題中,可以找到有關支付信息的最有價值的內容。

          進入門戶網站,第一欄是“如何像本地人一樣支付”(How to seamlessly pay like a local in China),點進去之后有英文版的視頻和文字解釋如何設置手機支付,步驟非常清晰、詳盡。不論是微信支付還是支付寶支付,用戶都能找到自己使用的銀行卡適合的支付方式。

          在網站上可以查詢自己手上的銀行卡是否支持微信或支付寶支付。

          最后,網站還回答了一些外國人來華旅游常見的疑問,比如是否需要電話卡設置支付賬號,是否有轉賬限額等等。

          網站還回答了一些外國人來華旅游常見的疑問。

          除了線上支付外,門戶網站還在第二欄介紹了如何使用比較傳統的方式支付,比如銀行卡、現金支付,以及如果在線上支付的使用過程中遇到問題,如何致電尋求幫助。

          如果有開戶的需求,可以打開第三欄“如何創建銀行賬戶”,從如何選擇開戶行到開戶的要求,都能在這一欄找到需要的信息。


          主站蜘蛛池模板: 国产综合精品一区二区三区| 亚洲AV无码一区二区二三区入口 | 国产精品毛片a∨一区二区三区| 国产在线观看一区二区三区四区 | 人妻体内射精一区二区| 伊人激情AV一区二区三区| 国产精品视频一区二区三区无码| 久久99精品免费一区二区| 久久se精品一区精品二区| 手机福利视频一区二区| 久久国产精品无码一区二区三区| 亚洲Av永久无码精品一区二区 | 亚洲国产精品一区二区三区在线观看 | 无码人妻av一区二区三区蜜臀| 亚洲国产成人久久一区久久| 无码乱人伦一区二区亚洲一| 丝袜美腿高跟呻吟高潮一区| 国产日韩一区二区三区| 中文字幕Av一区乱码| 国产一区二区三区小说| 久久人做人爽一区二区三区 | 国产精品一区二区三区免费| 亚洲熟女综合一区二区三区| 在线播放一区二区| 国产成人无码一区二区在线观看| 日韩精品一区二区三区不卡| 免费高清av一区二区三区| AA区一区二区三无码精片| 亚洲国产精品一区第二页| 熟妇人妻一区二区三区四区| 成人区人妻精品一区二区不卡视频 | 狠狠色婷婷久久一区二区三区| 精品无码国产AV一区二区三区| 亚洲sm另类一区二区三区| 久久毛片一区二区| 国产成人免费一区二区三区| 日韩精品人妻av一区二区三区| 国产福利一区二区在线视频| 色老板在线视频一区二区| 无码国产精品一区二区免费式芒果| 无码人妻精品一区二区三区蜜桃|