微信支付代码

支付成功后去再次验证支付状态
try {
// 到微信查询支付状态
Map<String, String> accountParamsMap =accountsMap.get(SalesOrder.PAY_ACCOUNT_KEY_WECHAT);

OrderQueryResponseCommand queryResult = wechatPaymentService.orderQuery(accountParamsMap.get(PaymentAccountCommand.Wechat.appid.name()),
accountParamsMap.get(PaymentAccountCommand.Wechat.partnerId.name()),
accountParamsMap.get(PaymentAccountCommand.Wechat.paySignKey.name()), paymentInfo.getSerialNumber());
if(queryResult != null) {
if(OrderQueryResponseCommand.TRADE_STATE_SUCCESS.equals(queryResult.getTrade_state()) ||
OrderQueryResponseCommand.TRADE_STATE_USERPAYING.equals(queryResult.getTrade_state())) {
// 支付成功和支付中不允许取消
throw new OrderException("Orders canceled Exception : order code : "
+ orderCommand.getCode() + " , order payment status: "
+ queryResult.getTrade_state() + " ; reason: already paid! ",
OrderExceptionType.ALREADY_PAY_BY_THIRDPART, orderCommand);
}else if(OrderQueryResponseCommand.TRADE_STATE_CLOSED.equals(queryResult.getTrade_state()))
isNotNeedClose =true;
}
} catch (WechatException e) {
// 订单查询的异常不做额外处理,只记录日志
LOGGER.error("warn: validateCancel exception: orderCode:" + orderCommand.getCode() + "," + e.getMessage(), e);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信支付是一种移动支付方式,能够让用户在微信平台上完成线上线下的付款。使用微信支付需要调用相应的代码来完成支付流程。下面是一个示例的微信支付代码: 首先,需要获取用户的支付信息,包括商品的价格、订单号等。可以通过前端页面或者后台获取这些信息。 然后,使用微信支付的API来进行支付操作。在C语言中,可以使用HTTP协议发送HTTP请求来调用微信支付API。具体的代码如下: ```c #include <stdio.h> #include <curl/curl.h> int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://api.mch.weixin.qq.com/pay/unifiedorder"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "appid=YOUR_APPID&mch_id=YOUR_MCHID&nonce_str=YOUR_NONCESTR&body=YOUR_BODY&out_trade_no=YOUR_ORDERNO&total_fee=YOUR_AMOUNT&spbill_create_ip=YOUR_IP&notify_url=YOUR_NOTIFYURL&trade_type=APP&sign=YOUR_SIGN"); res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; } ``` 在代码中,需要填入相应的参数,比如YOUR_APPID表示你的应用ID,YOUR_MCHID表示商户号等。其中的sign参数是对请求中的其他参数进行签名得到的,用于校验请求的合法性。 以上是一个简单的微信支付的C代码示例,用于调用微信支付API完成支付操作。当然,具体的代码实现还需要根据实际需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值