微信扣款和退款
微信扣款和退款详细描述
一、微信扣款接口实现
1.1 接口概述微信扣款接口是用于在微信支付平台上进行扣款操作的接口。该接口需要传入订单号、订单总金额以及签约成功后获得的合同ID等信息。
1.2 接口参数* `out_trade_no`: 订单号* `total_fee`: 订单总金额* `contract_id`: 签约成功后获得的合同ID* `trade_type`:交易类型(例如,JSAPI、APP等)
* `openid`: 用户的微信OPENID1.3 接口实现```java/
* @param out_trade_no 订单号 * @param total_fee 订单总金额 * @param contract_id 签约成功后获得的合同ID * @Description 微信支付扣款 * @Date11:162018/5/4 */
public void wxDeductMoney(String out_trade_no, String total_fee, String contract_id) {
// 构造请求参数 Map
params.put("out_trade_no", out_trade_no);
params.put("total_fee", total_fee);
params.put("contract_id", contract_id);
// 发起扣款请求 String response = HttpUtil.post(WX_PAY_URL + "/pay/deduct", params, "json");
// 处理响应结果 if (response != null && !response.isEmpty()) {
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getIntValue("return_code") ==1) {
System.out.println("扣款成功");
} else {
System.out.println("扣款失败,错误码:" + jsonObject.getString("err_code"));
}
} else {
System.out.println("响应结果为空");
}
}
```
1.4 接口示例```javapublic static void main(String[] args) {
wxDeductMoney("ORDER_20180504", "100.00", "CONTRACT_ID_20180504");
}
```
二、微信退款接口实现
2.1 接口概述微信退款接口是用于在微信支付平台上进行退款操作的接口。该接口需要传入订单号、退款金额以及签约成功后获得的合同ID等信息。
2.2 接口参数* `out_trade_no`: 订单号* `refund_fee`:退款金额* `contract_id`: 签约成功后获得的合同ID* `trade_type`:交易类型(例如,JSAPI、APP等)
* `openid`: 用户的微信OPENID2.3 接口实现```java/
* @param out_trade_no 订单号 * @param refund_fee退款金额 * @param contract_id 签约成功后获得的合同ID * @Description 微信支付退款 * @Date11:162018/5/4 */
public void wxRefundMoney(String out_trade_no, String refund_fee, String contract_id) {
// 构造请求参数 Map
params.put("out_trade_no", out_trade_no);
params.put("refund_fee", refund_fee);
params.put("contract_id", contract_id);
// 发起退款请求 String response = HttpUtil.post(WX_PAY_URL + "/pay/refund", params, "json");
// 处理响应结果 if (response != null && !response.isEmpty()) {
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getIntValue("return_code") ==1) {
System.out.println("退款成功");
} else {
System.out.println("退款失败,错误码:" + jsonObject.getString("err_code"));
}
} else {
System.out.println("响应结果为空");
}
}
```
2.4 接口示例```javapublic static void main(String[] args) {
wxRefundMoney("ORDER_20180504", "100.00", "CONTRACT_ID_20180504");
}
```
三、微信支付接口注意事项
* 签约成功后获得的合同ID: 在使用微信支付接口时,需要传入签约成功后获得的合同ID。这个ID是用于区分不同的签约关系。
* 交易类型: 微信支付接口支持多种交易类型,如JSAPI、APP等。在使用微信支付接口时,需要传入正确的交易类型。
* 用户的微信OPENID: 在使用微信支付接口时,需要传入用户的微信OPENID。这个OPENID是用于区分不同的用户。
四、微信支付接口错误码
| 错误码 | 错误描述 |
| --- | --- |
|1 | 成功 |
| -1 | 失败 |
在使用微信支付接口时,需要注意返回的错误码。错误码为-1表示失败,而错误码为1表示成功。
五、微信支付接口示例
```javapublic static void main(String[] args) {
wxDeductMoney("ORDER_20180504", "100.00", "CONTRACT_ID_20180504");
wxRefundMoney("ORDER_20180504", "100.00", "CONTRACT_ID_20180504");
}
```
在使用微信支付接口时,需要传入正确的参数。示例代码中,传入了订单号、退款金额以及签约成功后获得的合同ID等信息。
六、微信支付接口注意事项
* 签约成功后获得的合同ID: 在使用微信支付接口时,需要传入签约成功后获得的合同ID。这个ID是用于区分不同的签约关系。
* 交易类型: 微信支付接口支持多种交易类型,如JSAPI、APP等。在使用微信支付接口时,需要传入正确的交易类型。
* 用户的微信OPENID: 在使用微信支付接口时,需要传入用户的微信OPENID。这个OPENID是用于区分不同的用户。
七、微信支付接口错误码
| 错误码 | 错误描述 |
| --- | --- |
|1 | 成功 |
| -1 | 失败 |
在使用微信支付接口时,需要注意返回的错误码。错误码为-1表示失败,而错误码为1表示成功。
八、微信支付接口示例
```javapublic static void main(String[] args) {
wxDeductMoney("ORDER_20180504", "100.00", "CONTRACT_ID_20180504");
wxRefundMoney("ORDER_20180504", "100.00", "CONTRACT_ID_20180504");
}
```
在使用微信支付接口时,需要传入正确的参数。示例代码中,传入了订单号、退款金额以及签约成功后获得的合同ID等信息。
九、微信支付接口注意事项
* 签约成功后获得的合同ID: 在使用微信支付接口时,需要传入签约成功后获得的合同ID。这个ID是用于区分不同的签约关系。
* 交易类型: 微信支付接口支持多种交易类型,如JSAPI、APP等。在使用微信支付接口时,需要传入正确的交易类型。
* 用户的微信OPENID: 在使用微信支付接口时,需要传入用户的微信OPENID。这个OPENID是用于区分不同的用户。
**十、微信支付接口错误码**
| 错误码 | 错误描述 |
| --- | --- |
|1 | 成功 |
| -1 | 失败 |
在使用微信支付接口时,需要注意返回的错误码。错误码为-1表示失败,而错误码为1表示成功。
**十一、微信支付接口示例**
```javapublic static void main(String[] args) {
wxDeductMoney("ORDER_20180504", "100.00", "CONTRACT_ID_20180504");
wxRefundMoney("ORDER_20180504", "100.00", "CONTRACT_ID_20180504");
}
```
在使用微信支付接口时,需要传入正确的参数。示例代码中,传入了订单号、退款金额以及签约成功后获得的合同ID等信息。
**十二、微信支付接口注意事项**
* **签约成功后获得的合同ID**: 在使用微信支付接口时,需要传入签约成功后获得的合同ID。这个ID是用于区分不同的签约关系。
* **交易类型