`
wangmengbk
  • 浏览: 293301 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

请求微信以及微信支付sign生成

 
阅读更多
/**
 * url请求微信
 * Created by wangmeng on 2017/1/24.
 */
@Service
public class WxHttpHelper {

    private static  final Logger logger = LoggerFactory.getLogger(WxHttpHelper.class);


    @Autowired
private RestTemplate restTemplate;

    @Value("${pay.appKey}")
    private String appkey;

    /**
     * 微信post请求数据
     * @param url 发送请求的url
     * @param content 发送内容
     * @return String 执行结果
     */
public String sendPostMessage(String url,String content){
        logger.info(String.format("请求微信url【%s】,请求微信参数:【%s】",url,content));
        Map<String, Object> map = new LinkedHashMap<String, Object>();
//        map.put(WeChatConstants.URL_ACCESS_TOKEN_NAME, redisServiceImpl.get(RedisConstants.ACCESS_TOKEN_NAME));
url = UrlUtils.setUrlParamValue(url, map);
        String returnMsg = restTemplate.postForObject(url, content, String.class, "");
        logger.info("微信响应结果:{}",returnMsg);
        return returnMsg;
    }


    /**
     * 微信签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名
     * 传入微信返回信息解析后的SortedMap格式参数数据
     * @param params
* @return
*/
public String createSign(SortedMap<String, Object> params){
        StringBuffer sb = new StringBuffer();
        Set es = params.entrySet();
        Iterator it = es.iterator();
        while(it.hasNext()) {
            Map.Entry entry = (Map.Entry)it.next();
            String k = String.valueOf(entry.getKey());
            String v = String.valueOf(entry.getValue());
            if(null != v && !"".equals(v)
                    && !WeChatConstants.SIGN.equals(k) && !WeChatConstants.KEY.equals(k)) {
                sb.append(k + "=" + v + "&");
            }
        }
        sb.append("key=" + appkey);
        String sign = MD5Utils.MD5Encode(sb.toString(),"UTF-8").toUpperCase();
        return sign;
    }
}
分享到:
评论

相关推荐

    微信支付APP支付安卓+PHP(二次签名在服务端)

    微信支付是腾讯公司推出的在线支付服务,主要应用于微信应用程序及各类移动端。...通过这个实践,你可以了解到微信支付的安全机制以及Android和PHP在移动支付中的交互方式,为你的应用增加可靠的支付功能。

    php微信接口sign算法.zip

    在微信开发中,微信接口Sign签名机制是一种重要的安全措施,用于确保请求的合法性与完整性。这个zip文件"php微信接口sign算法.zip"包含了关于如何在PHP中实现微信接口Sign算法的详细信息。以下是对该算法的详细解释...

    调用微信和支付宝支付(java)

    在Java源码中,这个过程通常由一个名为`sign`的方法实现,它会根据特定的规则对请求参数进行排序、拼接并使用密钥生成签名值,然后将此值附在请求中发送给支付平台。 微信支付主要涉及以下步骤: 1. **申请API接口...

    PayCommonUtil:内含创建支付宝交易对象、创建微信交易对象、再次签名,支付、创建sign签名等方法

    `PayCommonUtil`类在这样的背景下扮演了重要角色,它集成了多种关键功能,包括创建支付宝交易对象、创建微信交易对象、再次签名以及支付过程中的签名生成。这些功能都是确保交易安全、防止欺诈的关键环节。 首先,...

    微信支付(jsapi、扫码支付)、微信退款

    2. **生成支付签名(Sign)**:商户需根据微信支付的签名规则,对预支付交易会话标识和其他必要的参数进行签名,确保数据的安全性和完整性。 3. **调用JSAPI支付接口**:在前端,通过JavaScript调用微信支付提供的...

    JAVA微信支付完成的demo.rar

    综上所述,这个"JAVA微信支付完成的demo"包含了一个完整的微信支付解决方案,从用户发起支付请求到支付成功后的业务处理,涉及到了前端与后端的交互、微信支付API的调用以及安全措施的实施。对于学习和理解如何在...

    iOS_ 微信支付demo

    3. **生成支付签名**:根据微信支付文档中的签名规则,使用商户私钥对请求参数进行签名,得到`sign`字段。 4. **发起支付**:将签名后的参数包转发给微信客户端,微信客户端会弹出支付确认界面,用户确认后进行支付...

    JAVA微信支付流程图以及业务流程说明

    - **参数设置**:统一下单接口需要的参数如total_fee(总金额,单位为分),trade_type(指定为NATIVE表示扫码支付),time_start和time_expire(订单有效期),以及签名sign的生成,需要按照微信支付的规范进行。...

    手机浏览器调用微信H5支付源码

    - **JSAPI调用**:在前端,通常使用微信SDK的JSAPI调用来启动支付流程,需要设置appid、timestamp、noncestr、package、sign等参数。 4. **注意事项**: - 安全性:必须确保支付过程中用户的敏感信息,如支付密码...

    微信native方式支付demo

    微信Native支付是微信支付...开发者可以通过阅读和分析这个DEMO,学习如何处理中文body的签名问题,以及如何进行微信Native支付的完整流程。同时,需要注意微信支付文档中的最新更新和调整,以确保支付功能的正常运行。

    app 微信支付php后台调用统一订单接口生成预订单号

    需要熟悉微信支付的错误代码和解决办法,以及使用微信支付的调试工具进行问题定位。 以上就是“app 微信支付php后台调用统一订单接口生成预订单号”的详细流程,涵盖了微信支付API、PHP编程、接口参数、请求响应、...

    微信支付离线开发文档

    5. 微信支付平台验证支付请求的有效性后,向用户展示支付页面。 6. 用户确认支付后,微信支付平台完成支付操作,并将结果通知商户后台服务器。 **2.3 支付功能开发介绍** 这部分详细介绍了如何在APP中集成微信支付...

    android端微信支付

    本文将深入探讨如何在Android应用中集成微信支付,以及如何处理相关的配置和调用流程。 首先,我们需要了解微信支付的基础流程。微信支付通常包括以下几个步骤: 1. **申请接入**:开发者需要在微信开放平台注册...

    安卓 微信支付 demo

    - 客户端接收预支付交易会话标识,构建支付请求参数,如`package`、`nonceStr`、`timeStamp`、`sign`等。 5. **调起微信支付**: - 使用`WXPayEntryActivity`作为支付回调入口类,这个类是微信支付SDK提供的,...

    mui微信支付

    开发者可以调用微信支付API来实现与微信服务器的交互,完成订单创建、支付请求和支付结果验证等一系列流程。 二、MUI与微信支付结合 1. **准备工作** 在开始集成微信支付之前,首先需要在微信开放平台注册成为...

    微信支付H5调用支付详解(java版)

    } // 组装统一下单请求参数 Map, String&gt; params = new HashMap(); params.put("appid", "your_appid"); params.put("mch_id", "your_mch_id"); params.put("nonce_str", generateNonceStr()); params.put("body", ...

    微信被扫支付接口文档V2.5.6

    总结而言,微信被扫支付接口文档V2.5.6详细介绍了如何利用微信支付接口实现被扫支付的功能,包括支付流程、免密支付机制、接口调用方式以及签名算法等多个方面,为商户开发支付系统提供了全面的技术指导和支持。

    微信支付案例

    3. 调起支付界面:使用生成的预支付会话ID,调用`[WXApi sendPayReq:]`发起支付请求。这个方法会弹出微信支付的UI,用户在其中确认支付详情并完成支付。 4. 处理回调:微信支付完成后,会通过`- (void)onResp:...

    APICloud微信支付攻略

    这段代码首先通过`api.ajax`向服务器请求支付数据,然后使用`weiXin.registerApp`注册微信支付,最后使用`weiXin.payOrder`发起支付。支付成功或失败的回调函数会显示相应的提示。 **四、注意事项** 1. **安全问题...

    安卓app对接微信支付代码

    5. **发起支付请求**:在业务逻辑中,调用微信支付API生成预订单,然后提交到微信服务器进行签名验证。 6. **处理回调**:当用户完成支付后,微信会回调到我们设置的异步处理接口,此时需要对返回的结果进行解析和...

Global site tag (gtag.js) - Google Analytics