微信支付之转换短链接

应用场景

该接口主要用于扫码原生支付静态支付中的二维码链接转成短链接(weixin://wxpay/s/XXXXXX),减小二维码数据量,提升扫描速度和精确度。

官方在线文档:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=9_9

接口地址

https://api.mch.weixin.qq.com/tools/shorturl

应用此接口前请保证你的扫码原生支付静态支付可以正常支付。

参考代码如下:

package com.wingo.action.config;

importjava.util.Date;

importjava.util.Map;

importjava.util.SortedMap;

importjava.util.TreeMap;

importcom.wingo.util.CommonUtil;

importcom.wingo.util.ConfigUtil;

importcom.wingo.util.PayCommonUtil;

importcom.wingo.util.XMLUtil;

/**

*

* @author 李欣桦

* @date 2015-1-6下午5:14:01

*

* 将静态native支付链接转为短链接

*/

public classShortAction {

public static void main(String[] args)throws Exception{

SortedMap<Object,Object>paras = new TreeMap<Object,Object>();

paras.put("appid",ConfigUtil.APPID);

paras.put("mch_id",ConfigUtil.MCH_ID);

paras.put("time_stamp",Long.toString(new Date().getTime()));

paras.put("nonce_str",PayCommonUtil.CreateNoncestr());

paras.put("product_id","No.201401051607001");//商品号要唯一

String sign =PayCommonUtil.createSign("UTF-8", paras);

paras.put("sign", sign);

String url ="weixin://wxpay/bizpayurl?sign=SIGN&appid=APPID&mch_id=MCHID&product_id=PRODUCTID&time_stamp=TIMESTAMP&nonce_str=NOCESTR";

String nativeUrl =url.replace("SIGN", sign).

replace("APPID", ConfigUtil.APPID).

replace("MCHID", ConfigUtil.MCH_ID).

replace("PRODUCTID",(String)paras.get("product_id")).

replace("TIMESTAMP",(String)paras.get("time_stamp")).

replace("NOCESTR", (String)paras.get("nonce_str"));

System.out.println("nativeUrl="+nativeUrl);

SortedMap<Object,Object> parameters =new TreeMap<Object,Object>();

parameters.put("appid",ConfigUtil.APPID);

parameters.put("mch_id",ConfigUtil.MCH_ID);

parameters.put("nonce_str",PayCommonUtil.CreateNoncestr());

parameters.put("long_url",CommonUtil.urlEncodeUTF8(nativeUrl));

String sign2 =PayCommonUtil.createSign("UTF-8", parameters);

parameters.put("sign", sign2);

String requestXML = PayCommonUtil.getRequestXml(parameters);

String result=CommonUtil.httpsRequest(ConfigUtil.SHORT_URL, "POST", requestXML);

System.out.println(result);

Map<String, String> map =XMLUtil.doXMLParse(result);

String returnCode =map.get("return_code");

String resultCode =map.get("result_code");

if(returnCode.equalsIgnoreCase("SUCCESS")&&resultCode.equalsIgnoreCase("SUCCESS")){

String shortUrl =map.get("short_url");

//TODO 拿到shortUrl,写代码生成二维码

System.out.println("shortUrl="+shortUrl);

}

}

}

时间: 2024-10-14 16:14:40

微信支付之转换短链接的相关文章

微信支付开发(2) 静态链接Native支付

关键字:微信支付 微信支付v3 native支付 统一支付 Native支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3-native-static.html 本文介绍微信支付下的基于静态链接二维码的Native支付实现流程. 注意 微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数.v2的相关介绍请参考方倍工作室的其他文章.本文

微信支付开发教程-静态链接Native原生支付开发

微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数.v2的相关介绍请参考方倍工作室的其他文章.本文介绍的为微信支付v3. 一.静态链接二维码生成 静态链接二维码的生成过程中,核心是sign签名.下面介绍sign签名过程. 1. 参数准备 唯一要确定的参数是产品的ID号.其他的是支付参数或者由程序生成.程序生成的部分如下. $this->parameters["appid"] = WxPayCon

[微信开发] - 微信支付 JSAPI 形式

微信官方的JSAPI文档 微信官方的JSAPI支付SDK与DEMO下载 查看JSAPI的API可以从这里看 下载了支付DEMO其实有些地方不对的,比如如果做沙盒测试的时候,需要使用getsignkey,而官方的demo中没有这个. 看了看sf.gg的一个文章,之后把获取getsignkey的api请求加了进去. 现在的 WXPayConstants : package com.wechat.demo.wxpay; import org.apache.http.client.HttpClient;

java实现微信支付之扫码支付

本文直接从代码调用微信扫码支付讲起.账号配置,参数生成等请参考官方文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 微信扫码支付.简单来说,就是你把微信支付需要的信息,生成到二维码图片中.通过微信扫一扫,发起支付.我们需要做的就是二件事: 一是:按照微信扫码支付规则生成二维码信息. 二是:微信没有提供生成二维码图片的接口.需要我们自己把二维码信息生成到二维码图片中. 1.模式选择: 微信扫码支付,有两种模式,文档中有

微信支付之扫码支付

选择支付模式 点开链接先去了解一下微信支付模式: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=2_1 web一般选择都是扫码支付. 类似于这个: 准备账号 公众账号ID(AppID) 首先要申请一个公共账号,最好申请的时候就是服务号,因为微信支付的前提必须是服务号 如果是公众号需要先申请验证才能升级为服务号. 下面链接可以帮助你去找到这个账号: http://jingyan.baidu.com/article/22fe7c

微信公众号开发-长链接转短链接

主要使用场景: 开发者用于生成二维码的原链接(商品.支付二维码等)太长导致扫码速度和成功率下降,将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率. http请求方式: POST https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN 参数说明 参数 是否必须 说明 access_token 是 调用接口凭证 action 是 此处填long2short,代表长链接转短链接 long_url 是

短链接转换在线工具

短链接转换在线工具,即可在线将长网址压缩为短网址的工具,而且生成的短网址是可以点击跳转到原网址的页面.短链接转换在线工具,被广泛的使用在营销推广中,是每个推广人员的必备推广工具之一.推广人员会使用短链接转换在线工具,将需要推广的着陆页面链接缩短为一个或多个短链接.这些短链接更利于营销推广,例如可以减少短信营销中链接占用过多字数增加推广成本,可以减少QQ.微信推广中被屏蔽的风险等.短链接转换在线工具的使用,解决了营销推广中很多的痛点.推广人员使用短链接转换在线工具,不但能完成短链接的生成,还能查看

微信开发第8章 通过accesstoken将长连接转换为短链接

业务场景:开发的过程中经常会有一些很长的链接,这个时候如果生成二维码,会导致扫码的过程中识别比较慢,如果存入数据库,会导致数据库的字段长度要设定的很长才行,所以把长连接转换为短链接就越来越重要了. 接口说明文档地址: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433600&token=&lang=zh_CN 接口调用URL:https://api.weixin.qq.com/cgi-bin/shorturl

PHP app 唤起微信支付 获取链接【项目实例】

public function weixin_params_data(){  $data  = $this->ApiData();   //获取接口访问的数据 //$_type = $post_data['type']; if(!$data['out_trade_no']){ systemmess('0','参数错误'); } $WxPayConfig = array( 'APPID'=>'wxc123456789', 'MCHID'=>'123456', 'KEY'=>'KEY'