微信扫码支付开发流程

一、业务流程图

二、具体实现每个步骤
1、商户系统根据用户选择的商品生成订单(此步骤不分析)
2、用户确认支付后根据微信【统一下单API】,向微信支付系统发出请求(我们通过httpclient方式请求的)
分析:商户确认支付即点击“结算”按钮跳转到收银台,然后在点击微信支付时,会调用商户系统后台,后台做处理准备微信需要的参数,然后通过httpclient调用微信的【统一下单API: https://api.mch.weixin.qq.com/pay/unifiedorder 】,其中需要准备的主要参数:
  • appid(公众号ID),String(32),微信支付分配的公众号ID
  • 商户号(mch_id),String(32),微信支付分配的商户号
  • 随机字符串(nonce_str),String(32),随机字符串,主要是为了保证签名不可预测
  • 签名(sign),String(32),通过签名算法得到的签名值,签名算法大致为:需要参与的字段包含公众号、商户号、随机字符串、一些其他字段,最重要是key(在微信支付系统中配置的密钥),然后这些字段格式为:key1=value1&key2=value2...,然后把这个字符串通过MD5加密并把加密结果转成大写。
  • 商户订单号(out_trade_no),String(32),商户系统内部订单号,我们系统用的是交易流水号(订单号-商户号-时间戳)
  • 标价金额(total_fee),int,订单总金额,单位为分,不能带小数点
  • 通知地址(notify_url),String(256),异步接收微信支付结果通知的回调地址,必须为外网能访问的URL,不能带参数
  • 交易类型(trade_type),String(16),JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,我们用的是NATIVE
3、微信支付系统收到请求后,先生成预支付订单,然后给商户系统返回二维码连接
4、商户系统拿到返回值字符串,转换成对象,然后取出二维码连接生成二维码
5、 用户通过微信“扫一扫”功能扫描二维码,微信客户端将扫码内容发送到微信支付系统
6、微信支付系统接收到支付请求,验证链接有效性后发起支付,请求客户确认,然后我们的微 信端就会弹出需要确认支付的页面
7、用户输入密码,确认支付并提交授权
8、微信支付系统根据用户授权完成交易
9、微信支付系统支付成功后向微信客户端返回交易结果,并将交易结果通过短信、微信提示用户
10、微信支付系统通过发送异步消息通知商户系统后台支付结果,商户系统需回复接收情况,通 知微信支付系统不再发送该单的通知
接收到微信的支付完成回调请求,微信支付系统会传过来一个字符串,格式是xlm的我们将其转换成map格式,然后验证一些主要参数,return_code和result_code均 为success;公众号,商户id不为空;对签名进行验证,防止数据泄漏,验证方法是将返回集解析出来,然后重新按照签名规则生成签名,将两个新旧签名比较,如果相同则验证通过;以上验证全部通过则认为威信支付系统支付成功,接下来处理商户系统。
商户系统也需要验证一些支付异常情况,订单已取消的支付成功了;订单已经支付了,重复支付;订单金额不一致,支付金额与订单金额不一致;以上均为异常支付,需要退款。如果无异常支付,则更新本地数据。另外商户系统在进行上述验证及更新操作时,需将此段代码加锁,因为微信支付系统在与商户系统交互时,如果微信收到的用户应答不是成功或超时,则认为微信通知失败,则微信会重新发起通知,通知频率为:通知频率为:15/15/30/180/1800/1800/1800/1800/3600,单位:秒
11、未收到支付通知的情况,商户系统可调用【查询订单APP】
12、商户确认订单已经支付后给用户发货

二、具体实现每个步骤
1、商户系统根据用户选择的商品生成订单(此步骤不分析)
2、用户确认支付后根据微信【统一下单API】,向微信支付系统发出请求(我们通过httpclient方式请求的)
分析:商户确认支付即点击“结算”按钮跳转到收银台,然后在点击微信支付时,会调用商户系统后台,后台做处理准备微信需要的参数,然后通过httpclient调用微信的【统一下单API: https://api.mch.weixin.qq.com/pay/unifiedorder 】,其中需要准备的主要参数:
  • appid(公众号ID),String(32),微信支付分配的公众号ID
  • 商户号(mch_id),String(32),微信支付分配的商户号
  • 随机字符串(nonce_str),String(32),随机字符串,主要是为了保证签名不可预测
  • 签名(sign),String(32),通过签名算法得到的签名值,签名算法大致为:需要参与的字段包含公众号、商户号、随机字符串、一些其他字段,最重要是key(在微信支付系统中配置的密钥),然后这些字段格式为:key1=value1&key2=value2...,然后把这个字符串通过MD5加密并把加密结果转成大写。
  • 商户订单号(out_trade_no),String(32),商户系统内部订单号,我们系统用的是交易流水号(订单号-商户号-时间戳)
  • 标价金额(total_fee),int,订单总金额,单位为分,不能带小数点
  • 通知地址(notify_url),String(256),异步接收微信支付结果通知的回调地址,必须为外网能访问的URL,不能带参数
  • 交易类型(trade_type),String(16),JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,我们用的是NATIVE
3、微信支付系统收到请求后,先生成预支付订单,然后给商户系统返回二维码连接
4、商户系统拿到返回值字符串,转换成对象,然后取出二维码连接生成二维码
5、 用户通过微信“扫一扫”功能扫描二维码,微信客户端将扫码内容发送到微信支付系统
6、微信支付系统接收到支付请求,验证链接有效性后发起支付,请求客户确认,然后我们的微 信端就会弹出需要确认支付的页面
7、用户输入密码,确认支付并提交授权
8、微信支付系统根据用户授权完成交易
9、微信支付系统支付成功后向微信客户端返回交易结果,并将交易结果通过短信、微信提示用户
10、微信支付系统通过发送异步消息通知商户系统后台支付结果,商户系统需回复接收情况,通 知微信支付系统不再发送该单的通知
接收到微信的支付完成回调请求,微信支付系统会传过来一个字符串,格式是xlm的我们将其转换成map格式,然后验证一些主要参数,return_code和result_code均 为success;公众号,商户id不为空;对签名进行验证,防止数据泄漏,验证方法是将返回集解析出来,然后重新按照签名规则生成签名,将两个新旧签名比较,如果相同则验证通过;以上验证全部通过则认为威信支付系统支付成功,接下来处理商户系统。
商户系统也需要验证一些支付异常情况,订单已取消的支付成功了;订单已经支付了,重复支付;订单金额不一致,支付金额与订单金额不一致;以上均为异常支付,需要退款。如果无异常支付,则更新本地数据。另外商户系统在进行上述验证及更新操作时,需将此段代码加锁,因为微信支付系统在与商户系统交互时,如果微信收到的用户应答不是成功或超时,则认为微信通知失败,则微信会重新发起通知,通知频率为:通知频率为:15/15/30/180/1800/1800/1800/1800/3600,单位:秒
11、未收到支付通知的情况,商户系统可调用【查询订单APP】
12、商户确认订单已经支付后给用户发货
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity是一款跨平台的游戏开发引擎,在游戏开发过程中,如果需要接入微信扫码支付功能,可以通过以下步骤来实现。 首先,在Unity中创建一个UI界面作为扫码支付的入口界面,可以包含一个按钮或图标作为触发器。可以使用Unity内置的UI系统或第三方插件来创建界面。 接下来,需要集成微信支付的SDK。可以在微信开放平台下载并导入合适版本的Unity微信支付SDK,或者使用第三方插件。在导入SDK后,需要将其进行配置,包括设置APPID、商户号、API密钥等一些必要的参数。 然后,在触发器的点击事件中调用微信支付的接口。可以通过调用SDK提供的函数来实现扫码支付功能,传入订单号、支付金额以及其他必要的参数。在调用接口前,需要先判断设备是否安装了微信客户端,如果没有安装则无法进行支付。 接下来,进行支付结果的回调处理。在支付完成后,微信会返回支付结果给游戏客户端,可以通过回调函数来接收支付结果,并根据支付结果来处理游戏逻辑,例如发放游戏道具或解锁游戏内容等。 最后,进行支付流程的测试和调试。在接入微信扫码支付功能之后,需要进行充分的测试和调试,确保支付流程的稳定性和准确性。可以使用微信提供的测试账号来进行支付测试,确保支付功能正常工作。 总之,通过以上步骤可以在Unity中成功接入微信扫码支付功能,为游戏提供更方便的支付方式,增强游戏的用户体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值