搞了一个星期的扫码收款, 总结感悟

    正好明天周末, 搞了一个星期的支付宝和微信的付款码支付, 今天终于有了模样

支付宝:   支付宝目前符合公司这种代替商家收款同时款项要打到商家自己的账户上需要使用第三方授权的形式, 找到了文档和SDK看了看, 需要在服务商后台创建应用, 环境需要当面付和第三方应用授权, 需要使用一对公私钥,(支付宝提供了),另外在应用上面还有一个支付宝公钥,这个东西是固定的, 一个应用对应一个,不会改变, 第三方应用授权就是自己拼接一个url 让商户去打开这个链接进行授权, 授权成功后支付宝后台会返回code信息, 利用这个code再次向支付宝发起请求获取这个商户对应的appAuthToken, 这个token就是发起当面付的一个参数, 只要把这个填进去, 收到的款项就会打到这个token对应商户的账户上, 然后再就是开始着手当面付的sdk了, 调用这个当面付的统一收款接口参数有很多都没必要, 注释掉就可以, 公司服务器上的api 写好之后就开始测试了, 沙箱里面之后一个商家和买家, 想测试第三方授权还需要一个其他的沙箱商户账号, (听旺旺的客服说买家可能没有这个权限, 所以使用买家授权这种测试方法会提示权限不足), 最后测试成功.

微信: 微信支付相比支付宝个人觉得简单了许多, 微信上也有两种实现支付的方式一个就是自己开通微信支付, 另一种方式就是成为服务商下面的子商户,调接口的时候把子商户的sbu_mch_id传进去就可以,而且都不需要那两个.pem文件, 只需要把公众号appid,  商户号mch_id 商户支付密钥KEY(用于签名) 和子商户的sub_mch_id 就可以 不需要公众帐号secert, ,使用define()函数定义常量, 其他php 文件里面就可以直接访问到了, 把这几个都放进去之后就可以了, 在SDK里面有一个条件判断返回的结果:  array_key_exists("out_trade_no", $result)  如果扫描顾客的付款码之后需要输入密码的是没有返回这个字段的, 所以给屏蔽掉了. 如果有子商户的话需要在SDK 里面自己加上设置的set 和get 方法, 在pay query 和cancel 这三个方法里面都需要加上设置子商户的命令: $input->SetSub_mch_id(Sub_mch_id);测试成功

你可能感兴趣的:(服务器支付配置)