View Source WeChat.Pay.Transactions (wechat v0.13.5)
微信支付 - 交易
Summary
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 close(WeChat.Pay.client(), out_trade_no()) :: WeChat.response()
关闭订单
以下情况需要调用关单接口:
- 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付
- 系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口
@spec jsapi(WeChat.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@spec jsapi( WeChat.client(), WeChat.appid(), description(), out_trade_no(), notify_url(), amount(), payer :: WeChat.openid() ) :: WeChat.response()
same as jsapi/2
@spec query_by_id(WeChat.client(), transaction_id()) :: WeChat.response()
@spec query_by_out_trade_no(WeChat.client(), out_trade_no()) :: WeChat.response()
@spec request_payment_args(WeChat.client(), WeChat.appid(), prepay_id()) :: map()
JSAPI调起支付 - 官方文档
通过 JSAPI下单 接口获取到发起支付的必要参数 prepay_id/0
,然后使用微信支付提供的 前端JS方法 调起支付窗口