[麦先生]TP3.2之微信开发那点事[基础篇](微信支付签名算法)
两种模式:扫码支付和微信内支付(调用js-sdk)
trade_type==native即扫码支付,只需要将code_url转成二维码,使用微信扫码即可;
js-sdk微信内支付-调用微信js-sdk中的相关东西,这一步中最关键是生成一个json格式的字符串。
首先要生成转换json字符串的数组--例如:array_jsapi。
A:该数组的参数包括:appId,timeStamp,nonceStr,package,signType(默认为”MD5“),要注意大小写和上面的数组里面是不一样的。
B:使用该数组生成paySign参数,签名方式同上。
C:将paySign参数追加到array_jsapi数组中。
D:将该数组使用json_encode格式化为字符串js_string。
完成上面的工作,就可以在微信内部进行支付了。
当返回状态码:return_code为SUCCESS时证明通信成功,会返回全部的支付信息但并非意味着交易成功,当result_code(业务状态)为SUCCESS时才可以认定为成功!
部分可用来验证是否为我们商户的参数:Appid,mch_id(商户ID), out_trade_no(商户订单号);
可以用来判断业务逻辑的参数: result_code(success/fail), out_trade_no(商户订单号), total_fee(订单金额), settlement_total_fee(应结订单金额);注:应结订单金额 = 订单金额-非充值代金券;
支付完成后商户进行处理返回给微信参数;
返回状态码return_code是String(16)SUCCESSSUCCESS/FAIL
SUCCESS表示商户接收通知成功并校验成功;
人的一生中,唯一能够预见的失败和最大的挑战莫过于从不敢去挑战;