`
myDayComing
  • 浏览: 9333 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
文章分类
社区版块
存档分类
最新评论
阅读更多

微信支付unifiedorder,请注意一下几点:

1.app_key  这个是指app对应的API我们自己设定的key

2.发起请求要用XML

 

 

简单代码如下:

public class Wxpay {
    public static String unifieldOrder(HttpServletRequest request,HttpServletResponse response,String body,Float totalFee,String strReq) throws ClientProtocolException, IOException{
                String ret=null;
               
                Map<String, Object> params=new HashMap<String, Object>();
                params.put("appid", ConstantUtil.APP_ID);
                params.put("body",body);
                params.put("mch_id", ConstantUtil.PARTNER);
                params.put("nonce_str",WXUtil.getNonceStr());
                params.put("notify_url",ConstantUtil.NOTIFYURL);
                params.put("out_trade_no",strReq);
                params.put("spbill_create_ip",request.getRemoteAddr());
                params.put("total_fee",totalFee.intValue());
                params.put("trade_type","APP");
               
                Map<String, Object> smap = sortMapByKey(params);
                String ps = preSignStr(smap);
                ps+="&key="+ConstantUtil.APP_KEY;
               
                String sign = StringUtil.encryption(ps).toUpperCase();
                smap.put("sign",sign);
               
                String paramXml = createXmlReqStr(smap);
               
                TenpayHttpClient httpClient = new TenpayHttpClient();
                if (httpClient.callHttpPost(ConstantUtil.UNIORDERURL, paramXml)) {
                    ret = httpClient.getResContent();
                }
               
                return ret;
    }
   
    public static String createXmlReqStr(Map<String, Object> map){
        Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator(); 
        String str="<xml>";
        while (entries.hasNext()) { 
            Map.Entry<String, Object> entry = entries.next(); 
            str+="<"+entry.getKey()+">"+entry.getValue()+"</"+entry.getKey()+">";
        }
        str+="</xml>";
        return str;
    }
   
    public static String preSignStr(Map<String, Object> map){
        Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator(); 
        String str="";
        while (entries.hasNext()) { 
            Map.Entry<String, Object> entry = entries.next(); 
            if(str.length()>0)
            {
                str+="&";
            }
            str+=entry.getKey()+"="+entry.getValue();
        }
        return str;
    }
   
       /**
     * 使用 Map按key进行排序
     * @param map
     * @return
     */
    public static Map<String, Object> sortMapByKey(Map<String, Object> map) {
        if (map == null || map.isEmpty()) {
            return null;
        }

        Map<String, Object> sortMap = new TreeMap<String, Object>(
                new MapKeyComparator());

        sortMap.putAll(map);

        return sortMap;
    }
}

class MapKeyComparator implements Comparator<String>{

    @Override
    public int compare(String str1, String str2) {

        return str1.compareTo(str2);
    }
}

 

有需要的朋友可以私聊我

分享到:
评论

相关推荐

    asp.net 微信支付(V3.7)完整可用代码和文档

    asp.net 微信支付接口完整可用代码,附带如何完整使用说明,修改指定参数就可以使用。附带查看网址和微信支付接口操作注意事项

    C#微信在线支付源码.rar

    注意事项 1.需要用到微信支付的哪一种支付方式,就只下载对应的单个文件即可。 2.文件开头的配置信息必须完善 3.文件需放到支付授权目录下,可以在微信支付商户平台-&gt;产品中心-&gt;开发配置中设置。 4.如提示签名...

    iOS_ 微信支付demo

    对微信支付的各个参数加以说明,及支付的过程和注意事项都进行的详细的说明

    ASPNET支付宝和微信支付源代码(PC扫描支付和手机支付)源码

    微信支付,支付宝支付,PC扫描支付和手机支付 二、功能介绍 1、支持“支付宝”扫描支付和手机支付,只要把相关支付参数配置到程序里面,就可以正常使用支付; 2、支持“微信”扫描支付和公众号支付,只要把相关...

    weixinPay:微信支付单文件版。一个PHP文件搞定微信支付系列。包括原生支付(扫码支付),H5支付,公众号支付,现金红包、企业付款到零钱等。新增V3版

    weixinPay 一个PHP文件搞定微信支付系列 网上的很多PHP微信支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版...注意事项 1.需要用到微信支付的哪一种支付方式,就只下载对应的单个

    JAVA微信支付

    简单的一个微信支付项目.适合新手开发.下载后请看resource下的注意事项!!!已经经过测试可以完全运行.如果遇到什么问题可以留言我 帮你解决.

    asp.net_c#_API_CS_v3.zip_DEMO_微信支付API C_微信支付Demo_扫码支付_网站

    .NET C# asp.net 微信网页扫码支付完整接口及Demo ,附带如何完整使用说明,修改指定参数就可以使用。附带查看网址和微信支付接口操作注意事项,代码全部经过实体网站测试成功运行。

    利用Python开发微信支付的注意事项

    如今,随着微信支付的全面开放,相关需求也越来越多,很多开发人员进行微信支付开发及商家申请微信支付时,面临着诸多疑惑。 要想开发顺利进行,首先要对业务流程有个清晰的认识。这里以微信公众号支付为例,因此也...

    .NET C# asp.net 微信网页扫码支付完整接口及Demo

    .NET C# asp.net 微信网页扫码支付完整接口及Demo ,附带如何完整使用说明,修改指定参数就可以使用。附带查看网址和微信支付接口操作注意事项,代码全部经过实体网站测试成功运行。

    微信H5支付源码示例.rar

    注意事项: 1, 修改wxpay.php文件的参数 define('APPID','APPID'); define('APIKEY','安全密钥'); define('MCH_ID','商户ID'); define('NOTIFY_URL','http://你的域名/return_url.php'); 2 ,H5支付不能...

    Android集成微信支付功能

    上面的步骤很详细,这里主要说下调起支付的注意事项。按照上面文档中说的商户服务器生成支付订单,先调用统一下单API生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。 相关代码如下:  /** * ...

    微信H5支付源码Demo

    注意事项: 1, 修改wxpay.php文件的参数 define('APPID','APPID'); define('APIKEY','安全密钥'); define('MCH_ID','商户ID'); define('NOTIFY_URL','http://你的域名/return_url.php'); 2 ,H5支付不能直接在...

    微信H5支付源码示例

    注意事项: 1, 修改wxpay.php文件的参数 define('APPID','APPID'); define('APIKEY','安全密钥'); define('MCH_ID','商户ID'); define('NOTIFY_URL','http://你的域名/return_url.php'); 2 ,H5支付不能直接在...

    HC微信支付源码ASP.NET

    微信支付源码支付查询退款均实现。一般处理程序ashx后台支付签名 前台jsapi 调用支付,支付配置商户信息 直接发起支付 快速接入 查询退款接口均实现 二、注意事项 1、开发环境为Visual Studio 2010,使用.net 4.0...

    ThinkPHP框架实现的微信支付接口开发完整示例

    主要介绍了ThinkPHP框架实现的微信支付接口开发,结合完整实例形式详细分析了基于thinkPHP框架的微信支付接口操作步骤、实现技巧与相关注意事项,需要的朋友可以参考下

    微信h5支付

    这里主要是h5支付,压缩包里有使用文档跟注意事项,实现微信外浏览器调用h5页面回到微信支付

    Unity接入微信与支付宝支付(IOS篇+文档+sdk+源码)

    仔细阅读文档: 在开始接入支付功能之前,建议仔细阅读提供的文档,理解支付功能的接入流程和注意事项。 调试测试: 在集成完成后,进行充分的测试和调试。 通过本资源的学习和实践,您将掌握在Unity项目中接入微信...

    微信、支付宝支付功能接入介绍

    微信、支付宝支付功能接入介绍,以及注意事项罗列

    php微信支付之公众号支付功能

    需要注意的事项: 1.该文件需放到支付授权目录下,可以在微信支付商户平台-&gt;产品中心-&gt;开发配置中设置。 2.如提示签名错误可以通过微信支付签名验证工具进行验证:微信公众平台支付接口调试工具 代码如下: &lt;...

Global site tag (gtag.js) - Google Analytics