View Source WeChat.Pay.Transactions (wechat v0.16.0)

微信支付 - 交易

Summary

Types

订单金额,单位为分

商品描述

通知地址

商户订单号

预支付交易会话标识

微信支付订单号

Types

@type amount() :: non_neg_integer()

订单金额,单位为分

@type description() :: String.t()

商品描述

@type notify_url() :: String.t()

通知地址

异步接收微信支付结果通知的回调地址,通知URL必须为外网可访问的URL,不能携带参数。 公网域名必须为HTTPS,如果是走专线接入,使用专线NAT IP或者私有回调域名可使用HTTP

@type out_trade_no() :: String.t()

商户订单号

商户系统内部订单号,可以是数字、大小写字母_-*的任意组合,且在同一个商户号下唯一

@type prepay_id() :: String.t()

预支付交易会话标识

预支付交易会话标识。用于后续接口调用中使用,该值有效期为2小时

@type transaction_id() :: String.t()

微信支付订单号

Functions

@spec app(WeChat.Pay.client(), body()) :: WeChat.response()

APP 下单 - 官方文档

商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易会话标识后再按Native、JSAPI、APP等不同场景生成交易串调起支付

Link to this function

app_request_payment_args(client, appid, prepay_id)

View Source
@spec app_request_payment_args(WeChat.Pay.client(), WeChat.appid(), prepay_id()) ::
  map()

APP 调起支付 - 官方文档

通过App下单接口获取到发起支付的必要参数prepay_id,可以按照接口定义中的规则,使用微信支付提供的SDK调起App支付

Link to this function

close(client, out_trade_no)

View Source

关闭订单

以下情况需要调用关单接口:

  • 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付
  • 系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口
@spec h5(WeChat.Pay.client(), body()) :: WeChat.response()

H5 下单 - 官方文档

商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易会话标识后再按Native、JSAPI、APP等不同场景生成交易串调起支付

@spec jsapi(WeChat.Pay.client(), body()) :: WeChat.response()

JSAPI下单 - 官方文档

商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易会话标识后再按Native、JSAPI、APP等不同场景生成交易串调起支付

Link to this function

jsapi(client, appid, description, out_trade_no, notify_url, amount, payer)

View Source

same as jsapi/2

@spec native(WeChat.Pay.client(), body()) :: WeChat.response()

Native 下单 - 官方文档

通过本接口来生成支付链接参数code_url,然后将该参数值生成二维码图片展示给用户。 用户在使用微信客户端扫描二维码后,可以直接跳转到微信支付页面完成支付操作

Link to this function

pay_by_scan(client, body)

View Source
@spec pay_by_scan(WeChat.Pay.client(), body()) :: WeChat.response()

付款码支付(v2) - 官方文档

收银员使用扫码设备读取微信用户付款码以后,二维码或条码信息会传送至商户收银台,由商户收银台或者商户后台调用该接口发起支付

支付流程

Link to this function

query_by_id(client, transaction_id)

View Source
@spec query_by_id(WeChat.Pay.client(), transaction_id()) :: WeChat.response()
Link to this function

query_by_out_trade_no(client, out_trade_no)

View Source
@spec query_by_out_trade_no(WeChat.Pay.client(), out_trade_no()) :: WeChat.response()
Link to this function

request_payment_args(client, appid, prepay_id)

View Source
@spec request_payment_args(WeChat.Pay.client(), WeChat.appid(), prepay_id()) :: map()

JSAPI调起支付 - 官方文档

通过 JSAPI下单 接口获取到发起支付的必要参数 prepay_id/0,然后使用微信支付提供的 前端JS方法 调起支付窗口

@spec revoke(WeChat.Pay.client(), body()) :: WeChat.response()

撤销订单(v2) - 官方文档

需要配置证书

支付交易返回失败或支付系统超时,调用该接口撤销交易

  • 如果此订单用户支付失败,微信支付系统会将此订单关闭;
  • 如果用户支付成功,微信支付系统会将此订单资金退还给用户。

注意:7天以内的交易单可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】