原生支付有两种模式,总体的结构查不多,开发人员可以按照自己的设计灵活运用,毕竟后台是我们自己写的逻辑,具体怎么搞不是死的。
模式一,
1,在你的微信账号中,设置一个回调地址:callBackUrl(这个地址是微信获取你的订单信息的,文档上说是让我们生成订单的,一样的,生成订单以后是要返回给微信的,这些返回的信息,就是我们支付的时候看到的那些订单信息);
2,我们申请微信支付的时候,微信给我们一个证书,把这个证书放到你的机器的某个地方,权限设置正确哦,记下证书地址:path_apiclient_cert;
3,按固定格式生成链接二维码:微信给的文档很乱,就是下面这个链接:
weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXX&mch_id=XXXXX&product_id=
XXXXXX &time_stamp=XXXXXX&nonce_str=XXXXX
参数说明:其他的参数很明了,除了nonce_str,这个文档上说是一个随机字符串,不长于 32 位,
其实就是回调时候回带给你,让你区分是哪个订单,具体这个字段你怎么填,自己搞定就行。
sing 就这这些参数的签名。
4,回调:这个回调的url 就是callBackUrl,
这个回调会把你第三步链接中的参数全部带回来,同时多一个字段is_subscribe(用户是否关注公众账号,Y- 关注,N-未关注,仅在公众账号类型支付有效),
这里用到了,HTTPS进行统一下单,涉及到证书的使用,在微信官网有它的使用实例,各种编程语言的都有,直接用就行了。按照文档吧,下单的各种信息(包括支付回调payBackUrl)通过https发送到微信,微信官网返回下单的信息,把这些信息再返回给微信的回调
5,支付回调(payBackUrl),
返回的参数:
微信的回调请求都是xml,我们需要做一些对象与xml的转换工具,