Este artigo compartilha o código específico para o Java WeChat Payment Feching Ordens para sua referência. O conteúdo específico é o seguinte
Documentação oficial
1. Cenários de aplicação
O pagamento do pedido do comerciante falhou e precisa gerar um novo número de pedido e iniciar o pagamento novamente. Você deve ligar para o pedido de cheque para o número do pedido original para evitar o tempo limite de pagamento repetido do sistema de pagamento, e a saída do sistema não será mais aceita. Para evitar o pedido do usuário, ligue para a interface de ordem de verificação.
NOTA: A interface do pedido não pode ser chamada imediatamente após a geração do pedido e o intervalo de tempo mínimo de chamada é de 5 minutos.
2. Endereço da interface
https://api.mch.weixin.qq.com/pay/closeorder
3. Parâmetros de solicitação
Feche apenas de acordo com o número do pedido do seu sistema de comerciantes
pacote com.phil.wechatpay.model.rep; importar java.io.serializable; / ** * Parâmetros de solicitação de encerramento de fechamento (XML normal) * @Author Phil * @Date 25 de julho de 2017 * */ public class CloseOrderParams estende abstratePayparams implementa serializável {/ ** * */ private estático final serialversionuid = -42064649288038274L; String privada out_trade_no; // Número do pedido do comerciante public string string getout_trade_no () {return Out_trade_no; } public void setout_trade_no (string out_trade_no) {this.out_trade_no = out_trade_no; }}4. Retorne o resultado
pacote com.phil.wechatpay.model.resp; importar java.io.serializable; importar com.phil.common.annotation.notrequire; / ** * Parâmetro de retorno de encomenda de fechamento (com <! [CDATA []]> formato xml) * * @author phil * @date 25 de julho de 2017 * */ public Class CloseOrderResult estende abstratoPayResult implementa serializável {estática privada final longVersionuid = -199610777777777777212; String privada return_code; // Código de status de retorno Sucesso/falha @NotRequire Private String return_msg; // Return Information/**** Return_code é sucesso ****/String privada Result_code; // Resultado da empresa Private String result_msg; // Resultado da empresa Descrição @NotRequire Private String err_code; // Erro Retorno Informações Descrição5. Feche o pedido
pacote com.phil.wechatpay.controller; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importar org.springframework.beans.factory.annotation.autowired; importar org.springframework.tereotype.controller; importar org.springframework.web.bind.annotation.requestmapping; importar org.springframework.web.bind.annotation.ResponseBody; importar com.phil.common.config.wechatconfig; importar com.phil.common.util.httprequil; importar com.phil.common.util.payutil; importar com.phil.common.util.signatureutil; importar com.phil.common.util.xmlutil; import com.phil.wechatpay.model.rep.closeOrderParams; importar com.phil.wechatpay.model.rep.closeorderResult; import com.phil.wechatpay.service.wechatPayService; /*** Ordem de fechamento* @Author Phil* @Date 25 de julho de 2017**/@Controller @RequestMapping ("/wxpay/") classe pública WechatPayCloseOrderController {@AUTOWIRED PRIVADO WECHATPASERVICE WECHATPASSERVICE; @ResponseBody @RequestMapping ("CloseOrder") Public CloseOrderResult CloseOrder (solicitação httpServletRequest, resposta httpServletResponse) lança exceção {CloseOrderResult CloseOrderResult = null; CloseOrderParams CloseOrderParams = new CloseOrderParams (); CloseOrderParams.SetAppid (wechatconfig.app_id); CloseOrderParams.setmch_id (wechatconfig.mch_id); CloseOrderParams.setNonce_Str (payutil.createnoCest ()); CloseOrderParams.setout_trade_no (""); // passa em // solicitou xml string closeorderxml = wechatPayService.abstractPaytoxml (CloseOrderParams); // Mesclar a assinatura em serviço // retorna xml em <! [CDATA [sucessor]]> formato string closeorderResultxml = Httprequtil.httpsdefaultExecute (httprequtil.post_method, wechatconfig.close_order_url, null, closeorderxml); // Execute a verificação de assinatura if (signatureutil.checkissignValidFromweixin (CloseOrderResultxml)) {CloseOrderResult = xmlutil.getObjectFromxml (CloseOrderResultxml, CloseOrderResult.class); } retornar CloseOrderResult; }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.