• 微信扫码支付开发小结


    商户根据微信支付的规则,为不同商品生成不同的二维码,展示在各种场景,用于用户扫描购买。
    支付完成后会提示用户支付成功(如图6.5),商户后台得到支付成功的通知,然后进行发货处理。
    开发扫码支付可分为两种模式,可根据支付场景选择相应模式。
    1,生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。用户扫码后,微信支付系统将productid和用户唯一标识(openid)回调商户后台系统(需要设置支付回调URL),商户后台系统根据productid生成支付交易,最后微信支付系统发起用户支付流程。
    里面也会调统一下单api.请求生成预付交易。微信返回prepay_id
    二维码中的内容为链接,形式为:
    weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXX&mch_id=XXXXX&product_id=XXXXXX&time_stamp=XXXXXX&nonce_str=XXXXX
    2,商户后台系统调用微信支付【统一下单API】生成预付交易,将接口返回的链接生成二维码,用户扫码后输入密码完成支付交易。注意:该模式的预付单有效期为2小时,过期后无法支付。
    商户可调用第三方库生成二维码图片。
    模式二与模式一相比,流程更为简单,不依赖设置的回调支付URL。
    链接格式:weixin://wxpay/bizpayurl?sr=XXXXX
    该模式链接较短,生成的二维码打印到结账小票上的识别率较高。
    商户在微信公众平台(申请扫码支付、公众号支付)或开放平台(申请APP支付)
    签名错误
    可能是没排序!或是商户号没对应,再就重新设置下appkey,secret之类吧
    <xml>
    <return_code><![CDATA[SUCCESS]]></return_code>
    <return_msg><![CDATA[OK]]></return_msg>
    <appid><![CDATA[wx6cb9a8b70]]></appid>
    <mch_id><![CDATA[139602]]></mch_id>
    <device_info><![CDATA[WEB]]></device_info>
    <nonce_str><![CDATA[THjUklnnRNwiBifJ]]></nonce_str>
    <sign><![CDATA[05586DB7DB230F674E947C380010B3]]></sign>
    <result_code><![CDATA[SUCCESS]]></result_code>
    <prepay_id><![CDATA[wx2017122819102945820556625982]]></prepay_id>
    <trade_type><![CDATA[NATIVE]]></trade_type>
    <code_url><![CDATA[weixin://wxpay/bizpayurl?pr=iZJ4quj]]></code_url>
    </xml>
    交易时间商户订单号微信支付单号支付场景交易状态订单金额(元)
    2017-12-28 19:16:352017122815210810472246274200000001201712283294032747扫码支付买家已支付0.01
    异步通知
    <xml>
    <appid><![CDATA[wx6ca8b70]]></appid>
    <attach><![CDATA[eyJjb2luTniOjIsImtleSI6IkJDa0V5TDdOUmpObVJKckIifQ==]]></attach>
    <bank_type><![CDATA[CMB_DEBIT]]></bank_type>
    <cash_fee><![CDATA[1]]></cash_fee>
    <device_info><![CDATA[WEB]]></device_info>
    <fee_type><![CDATA[CNY]]></fee_type>
    <is_subscribe><![CDATA[Y]]></is_subscribe>
    <mch_id><![CDATA[1396802]]></mch_id>
    <nonce_str><![CDATA[94160584]]></nonce_str>
    <openid><![CDATA[odem6wK7uhyC0daUvdMBs]]></openid>
    <out_trade_no><![CDATA[20121081047224627]]></out_trade_no>
    <result_code><![CDATA[SUCCESS]]></result_code>
    <return_code><![CDATA[SUCCESS]]></return_code>
    <sign><![CDATA[777E553BB55851E093858E97CD0C4D]]></sign>
    <time_end><![CDATA[20171228191636]]></time_end>
    <total_fee>1</total_fee>
    <trade_type><![CDATA[NATIVE]]></trade_type>
    <transaction_id><![CDATA[4200000201712283294032747]]></transaction_id>
    </xml>
    要返回特定格式给微信,不然微信会一直回调的。
  • 相关阅读:
    图解插入排序--直接插入排序
    在项目中代替DevExpress(一)
    java web servlet
    一元夺宝项目设计(上)
    一元夺宝项目设计(中)
    一元夺宝项目设计(下)
    ORM之四:调用入口与调用示例
    ORM之三:DbProvider与DbFactory
    ORM之二:核心接口与扩展操作
    ORM之一:适合我的ORM
  • 原文地址:https://www.cnblogs.com/elesos/p/8142882.html
Copyright © 2020-2023  润新知