• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用微信小程序进行微信支付流程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

使用微信小程序进行微信支付流程

微信支付的入口是在微信商户平台中,从微信商户平台的开发文档可以查看相关微信支付的文档,但是官方文档首页居然木有小程序版本入口,所以单独给一下小程序的文档. 微信支付的开发分为刷卡支付、公众号支付、扫码支付、APP支付以及小程序支付。

小程序支付流程

1. 小程序端向服务端请求生成订单

小程序端向服务端请求下单,服务端需要先针对小程序进行用户认证,并生成内部订单。

2. 小程序端向服务端请求订单支付

小程序端向服务端请求支付,服务端调用统一下单API,获取prepay_id。

3. 服务端请求统一下单API

接口地址 :https://api.mch.weixin.qq.com/pay/unifiedorder
请求方式 :POST
是否需要证书: 否
请求参数(必填):

小程序ID(appid):可在公众号配置页面获取
商户号(mch_id):可以在微信商户配置页面获取
随机字符串(nonce_str):随机字符串,32位
签名(sign):可查看签名生成算法
商品描述(body): 参考微信参数规定
商户订单号(out_trade_no): 服务端内部生成的订单号
总金额(total_fee):订单实际总金额,切记单位是分
终端IP(spbill_create_ip): APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
通知地址(notify_url):微信支付的通知结果是异步的,支付成功后,微信会回调此地址,不能携带参数。
交易类型(trade_type):小程序取值:JSAPI
返回结果

return_code: 此字段表示通信是否成功,非交易是否成功, 取值:SUCCESS、FAIL
return_msg: 返回的信息
result_code: 此字段表示交易是否成功!取值:SUCCESS、FAIL
err_code: 请求错误代码,详见微信文档。
err_code_des: 错误返回的信息描述
trade_type: 交易类型,当return_code和result_code都为SUCCESS时才返回
prepay_id:预支付ID,下一步要用到的,有效期2小时。如果用户在生成此id后取消支付,但是在2个小时内重新支付时可以复用该id。 当return_code和result_code都为SUCCESS时才返回。

4. 服务端再次生成签名

当拿到prepay_id后,服务端应该马上存储起来,以便在2个小时内都可以复用。然后接下来就是要再次签名(安全!安全!安全!)。服务端将最终需要请求微信支付的参数返回给小程序。

返回参数:

appid:可在公众号配置页面获取
timeStamp: 时间戳,到秒为止,如果用java的朋友记得不要用毫秒,要截断最后三位
nonceStr: 32位随机数
package: prepay_id=xxxxx(上一步拿到的prepay_id)
signType:MD5
paySign: 重新生成的签名

5. 小程序端向微信服务器发起支付

小程序在拿到服务端的参数后,调用wx.requestPayment(OBJECT)发起支付。

6. 服务端接收支付回调接口

在小程序端支付成功后,微信会立即请求之前设置的回调地址,并且服务端返回应答,流程才算结束, 详见官方文档.一般我们需要针对返回的金额和内部订单号进行校验,并且存储微信支付订单号等信息。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
wangEditor+小程序展示富文本发布时间:2022-07-18
下一篇:
我的第一个vb实例--红楼梦测试小程序发布时间:2022-07-18
热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap