微信支付接口开发之--微信扫码支付

1、模式一
 
实现步骤
1)、生成支付链接或是二维码
链接格式如下:
weixin://wxpay/bizpayurl?appid=wxa842e8005c427e2d&mch_id=1314710101&nonce_str=3c6d11d09c2f4d49a7c18386cf8f3a14&product_id=123456789&sign=4AC5113048BD4A08E16DD8DC8D69A744&time_stamp=1456365970
这一步可能出现的错误:
扫码后微信提示:原生支付URL参数错误
原因:商户密钥key如果错了也会出现这个提示,URL的参数少传或是格式错了,或是签名错了都会出现这个错误
2)、用户扫描或是点进去1)中生成的链接,微信支付系统会在后台调用在“微信公众号”配置里设好的“扫码支付支付回调URL”,并向回调URL地要传递
openid和product_id进行统一下单
        回调URL的作用:接收微信支付后台发送的扫码结果,调用统一下单接口并将下单结果返回给微信支付后台
回调URL设置如下图
微信支付接口开发之--微信扫码支付
微信支付接口开发之--微信扫码支付
在回调URL里的统一下单代码如下:
微信支付接口开发之--微信扫码支付
微信支付接口开发之--微信扫码支付
在回调URL里,返回给调用它的微信支付系统后台的参数如下:
微信支付接口开发之--微信扫码支付
微信支付接口开发之--微信扫码支付
    在WxPayApi官方示例这一步会出的错误
    错误一:
微信支付接口开发之--微信扫码支付
微信支付接口开发之--微信扫码支付
原因:在商户的回调URL的处理里出错,或是超时,如在官网提供的示例里就出了这个错,检查原因如下(坑太多了呢。。。。):
在WxPayApi的Data.cs里public SortedDictionary<string, object> FromXml(string xml)方法出错,改成下面自己写的
微信支付接口开发之--微信扫码支付
 微信支付接口开发之--微信扫码支付
 
 
3、如果2)成功后会自动跳到微信支付的统一界面
微信支付接口开发之--微信扫码支付
微信支付接口开发之--微信扫码支付
 
2、模式二
描述:
    模式二与模式一相比,流程更为简单,不依赖设置的回调支付URL,也没有“支付授权目录”的限制。商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。注意:code_url有效期为2小时,过期后扫码不能再发起支付。

业务流程时序图

微信支付接口开发之--微信扫码支付

微信支付接口开发之--微信扫码支付
业务流程说明:
微信支付接口开发之--微信扫码支付
微信支付接口开发之--微信扫码支付
二维码规则
微信支付接口开发之--微信扫码支付
 
 微信支付接口开发之--微信扫码支付
实现步骤
步骤一:调用统一下单接口
步骤二:统一下单接口会返回code_url参数,将它生成二维码就可以了
代码如下:
微信支付接口开发之--微信扫码支付
微信支付接口开发之--微信扫码支付
即:向https://api.mch.weixin.qq.com/pay/unifiedorder接口post下面格式的数据就行:
<xml><appid><![CDATA[wxa842e8005c427e2d]]></appid><attach><![CDATA[这是易度附加数据]]></attach><body><![CDATA[这是易度商品描述]]></body><goods_tag><![CDATA[jjj]]></goods_tag><mch_id><![CDATA[1314710101]]></mch_id><nonce_str><![CDATA[b4f9d98a8d194f729220173bc31fd3d5]]></nonce_str><notify_url><![CDATA[http://paysdk.weixin.qq.com/example/ResultNotifyPage.aspx]]></notify_url><out_trade_no><![CDATA[131471010120160229144430504]]></out_trade_no><product_id><![CDATA[123456789]]></product_id><sign><![CDATA[0430049F917C36BA1A2EC4778AE71AC6]]></sign><spbill_create_ip><![CDATA[8.8.8.8]]></spbill_create_ip><time_expire><![CDATA[20160229145430]]></time_expire><time_start><![CDATA[20160229144430]]></time_start><total_fee>1</total_fee><trade_type><![CDATA[NATIVE]]></trade_type></xml>
 
 
 
 

微信支付接口开发之--微信扫码支付

上一篇:Android之仿微信Tab滑动


下一篇:微信支付接口开发之---微信支付之JSSDK(公众号支付)步骤