我现在已经将统一下单所需要的参数构建成了xml的内容格式,然后换成String输出。
然后微信的调用接口是这个:https://api.mch.weixin.qq.com/pay/unifiedorder
/**
* 构造出xml文件的内容,用于发送给“统一下单”获取到prepay_id
*
* @return XML的String输出
*/
private String buildXMLUnifiedOrder() {
mOutTradeNo = getIntent().getStringExtra("orderNo");
List<TwoTuple<String, String>> paramList = new ArrayList<TwoTuple<String, String>>();
paramList.add(new TwoTuple<String, String>("appid", PathCommonDefines.WECHAT_APP_ID));
paramList.add(new TwoTuple<String, String>("body", mBody));
paramList.add(new TwoTuple<String, String>("mch_id", PathCommonDefines.WECHAT_PARTNER_ID));
paramList.add(new TwoTuple<String, String>("nonce_str", mNoncestr));
paramList.add(new TwoTuple<String, String>("notify_url", mNotifyUrl));
paramList.add(new TwoTuple<String, String>("out_trade_no", mOutTradeNo));
paramList.add(new TwoTuple<String, String>("spbill_create_ip", ipAddressUtil.getWifiLocalIPAddress()));
paramList.add(new TwoTuple<String, String>("total_fee", mTotalFee));
paramList.add(new TwoTuple<String, String>("trade_type", "APP"));
paramList.add(new TwoTuple<String, String>("sign", mSign));
StringBuilder xmlBuilder = new StringBuilder();
xmlBuilder.append("<xml>");
for (TwoTuple<String, String> paramTuple : paramList) {
xmlBuilder.append("<").append(paramTuple.first).append(">");
xmlBuilder.append(paramTuple.second);
xmlBuilder.append("</").append(paramTuple.first).append(">");
}
xmlBuilder.append("</xml>");
return xmlBuilder.toString();
}
/**
*
* 两个元素的元组,用于在一个方法里返回两种类型的值
*
* @param <A>
* @param <B>
*/
public class TwoTuple<A, B> {
public final A first;
public final B second;
public TwoTuple(A a, B b) {
first = a;
second = b;
}
}
请问应该怎么做下一步的具体操作,才能得到prepay_id啊(就是这个接口应该怎么用?)?
知道答案了,原谅我不懂POST请求的内容,原来是通过POST请求将这些内容附带上去即可了。看了不少的博客才慢慢地弄懂微信支付这东西。