Payment:支付宝支付配置文件设置教程

终于把3.0版本作好了。从今天开始好好写文档,让你们作支付作的开心点。php

项目GitHub地址:https://github.com/helei112g/...git

从2016年6月payment作出来,到这一版本(3.0),坚持了快一年啦。感谢这期间给我支持(打赏与协做)的人。github

Payment 主要针对支付宝支付、微信支付的接口进行了聚合。开发者无需重复集成繁琐的支付接口,使用 Payment 就能应对全部支付场景,快速接入支付功能。小程序

Payment 针对不一样支付服务商的接口,提供了统一的调用方式,而且内部将签名、验签进行了集成,使用者只须要喂数据而后拿到结果进行本身的业务便可。彻底屏蔽支付宝与微信内部繁杂的细节。只要按照个人文档操做,10分钟可完成支付流程。数组

当前 Payment 基本接入完支付宝与微信的资金相关接口。到当前为止,Payment SDK 主要支持功能以下:安全

支持的支付宝相关接口清单:服务器

  • 即时到帐功能(主要用于pc上支付)微信

  • 手机网站支付(WAP支付)app

  • APP支付(移动支付)异步

  • 当面付(扫码支付与条码支付)

  • 交易查询(支付订单查询接口)

  • 退款接口(完成支付的订单,可经过该接口完成退款)

  • 退款查询接口(退款接口须要经过该接口进行查询状态)

  • 单笔转帐到支付宝帐户接口(只能转到用户支付宝账号)

  • 转帐订单查询接口(查询转帐订单状态)

ps: 支付宝接口从 payment 3.0 开始,仅支持支付宝新版本接口。

支持的微信支付相关接口清单:

  • 手机网站支付(H5支付,特殊商家可用)

  • APP支付(移动支付)

  • 公众号支付

  • 刷卡支付(相似支付宝的条码支付)

  • 小程序支付

  • 交易查询(支付订单查询)

  • 申请退款接口

  • 查询退款接口

  • 企业付款给我的接口

  • 查询企业付款接口

微信最糟糕的就是,不一样支付接口,须要申请不一样的商户号。这里简单总结一下:

APP支付 必须到 微信开放平台申请一个应用,而后去申请开通支付功能,申请的商户账号没法用于 公众号支付与小程序支付。

公众号支付 必须首先有一个认证的服务号,而后到公众号后台进行申请开通支付功能。又会得到一个商户号

小程序支付 微信分配的小程序ID,因此恭喜你,你又有了一个商户号

至于其余支付,目前检测好像可用共享。也就只剩下一个刷卡支付了。


本文主要讲解支付宝的配置文件,配置清单以下:

return [
    'use_sandbox'           => true,

    'partner'               => '2088102169252684',
    'app_id'                => '2016073100130857',
    'sign_type'             => 'RSA2',

    'ali_public_key'        => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAU3GYXkAaumdWQt7IDAQAB',
    'rsa_private_key'       => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'rsa_private_key.pem',

    'limit_pay'             => [
        //'balance',
        //'moneyFund',
        // ... ...
    ],

    'notify_url'            => 'https://helei112g.github.io/',
    'return_url'            => 'https://helei112g.github.io/',

    'return_raw'            => false,
];

在支付中最麻烦的就是配置密钥。这里逐一为你们说明每个配置的含义、以及如何进行设置。
其中 是否必须 列表中若是标记为 ,则该项必须设置,不然sdk将没法获得结果。

参数 类型 是否必须 说明
use_sandbox boolean 是否开启沙箱模式
partner string 商户UID,以2088开头
app_id string 支付宝分配给开发者的应用ID
sign_type string 签名方式
ali_public_key string 支付宝公钥
rsa_private_key string 用户应用私钥
limit_pay string 限制的支付方式
notify_url string 支付宝异步通知的服务器地址
return_url string 支付报支付成功返回地址
return_raw boolean 是否返回支付宝原始数据

接下来对每个参数详细说明,不一样的设置带来的不一样效果。

use_sandbox 支付宝新版本提供了沙箱模式。若是该选项设置为 true 则使用支付宝的沙箱功能。
下面简单介绍沙箱的使用方式。

首先登录 蚂蚁金服开放平台 按照下图找到本身的沙箱应用。

image

image

你们注意截图,重要的配置信息均来自这里。

partner 对应图中的 商户UID,若是是正式应用,可用在【个人应用】=》【应用】中找到对应的信息。
这部分信息较敏感,就不截图了。

app_id 就是对应的建立的应用的id。图中有很醒目的字标记。

sign_type 请求支付时,数据加密的方式,目前支持RSA2和RSA,推荐使用RSA2。你彻底不用管签名的实现,只须要这里作一下配置就好。

接下来,密钥的配置是重点,70% 的支付没法成功的缘由,均是密钥设置问题。
关于密钥如何生成与配置,请看

支付宝官方密钥生成与配置教程

ali_public_key 注意看这张图的红线部分,只要上传本身应用的公钥后,可用点这里,查看支付宝公钥,可获取到支付宝的公钥。

image

这里必定要记得是 支付宝的公钥,不是你本身本地生成的,而是在开发平台中上传本身的公钥后,拿到的支付宝公钥。

接下来就是这个配置该如何填写了。这里支持文件的方式,你能够将支付宝公钥复制到一个单独的文件,而后这个字段填写对应文件的路径。例如:

'ali_public_key' => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'alipay_public_key_rsa.pem'

你也可用直接将支付宝公钥的值,填入这里,例如:

'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOO1BU3GYXkAaumdWQt7f+khoFoSw+x8yqQIDAQAB',

这里为了文章排版美观,有删减部分支付宝公钥内容

不管那种方式,强烈建议在填入时,去掉:

-----BEGIN PUBLIC KEY-----

以及 -----END PUBLIC KEY----- 只保留中间部分的内容。

rsa_private_key 商户私钥的设置,按照上面发的教程)进行操做,而后把获取到的值,复制出来。跟支付宝公钥同样,也能够单独放在一个文件里,而后引用他的路径,或者直接将它的值,设置在这个字段上。

请记得只保留密钥内容部分。

这里请必定分清楚 私钥,是商户本身生成的公钥,是支付宝开发平台看到的

limit_pay 在让用户使用支付宝支付过程当中,可能想禁止用户使用某些渠道,好比:不许使用 信用卡支付 不许使用 花呗支付。均可以在这里进行配置。详细的可取值,请看图片

image

官方连接

notify_url 异步通知。当支付宝支付成功后,你想要在服务端收到支付宝支付成功的通知,就必须设置该选项。应该是:http/https 开头的url。

这里强烈建议以支付宝服务器的通知为依据来判断是否支付成功。关于异步通知的处理,在后面的文章将有专题讲解。

return_url 当前主要是即时到帐、手机网站支付两个接口会用到,在支付成功后,跳转到哪个连接。也必须是以 HTTP/HTTPS 开头的url。能够理解为同步通知,但请不要以它的结果为准。为了安全仍是应该以异步为准。

return_raw 以前的版本都没有该参数,是3.0新加入的,它的主要目的是让调用者控制本身拿到什么样的数据。若是设置为true。SDK 则只会向支付宝发出请求,收到数据后进行验签,经过后,会以数组的形式将全部支付宝返回的数据返回给客户端。

若是设置为false ,则会抛弃支付宝的某些字段。而且会对某些字段名称进行从新映射,这种方式带来的好处是,可用确保支付宝、微信返回的数据是基本一致的,可是可能致使调用者损失部分信息。这里你们根据实际状况进行衡量。

至此,支付宝的配置所有讲解完毕。 去看看如何完成即时到帐

若是你有不清楚的或者愿意交流的地方,请联系我:

邮箱:dayugog@gmail.com

若是你以为这个项目有帮助到你,请打赏我,让我有动力持续下去[左边微信,右边支付宝]():

image

ps: 通常性的问题请你们能够先查资料,若是实在没法解决找我吧(难免费服务)。

相关文章
相关标签/搜索