支付宝手机网站、移动支付(app)接口。统一的接入方式,便于项目管理
payment 项目2.x版本
前面已经说完了 PHP接入支付宝 即时到帐接口
回调接口也已经完成。这篇主要讲 手机网站支付 、 移动支付 接口的调用。调用方式与即时到帐 基本一样。
关于代码部分的详细解释,请 参看 PHP接入支付宝 即时到帐接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
$orderData = [ "order_no" => createPayid(), "amount" => '0.01', "client_ip" => '127.0.0.1', "subject" => ' 测试支付', "body" => '支付接口测试', "show_url" => 'http://mall.tiyushe.com/goods/23.html', ];
$aliconfig = [ 'partner' => '2088xxxxx', 'md5_key' => 'xxxxxxxxxxxx', 'rsa_private_key' => dirname(__FILE__) . '/rsa_private_key.pem', "notify_url" => 'http://test.helei.com/pay-notify.html', "return_url" => 'http://test.helei.com/return-url.html', "time_expire" => '14', ];
$charge = new ChargeContext();
try {
$type = Config::ALI_CHANNEL_APP; $charge->initCharge($type, $aliconfig); $ret = $charge->charge($payData); } catch (PayException $e) { echo $e->errorMessage();exit; }
if ($type === Config::ALI_CHANNEL_APP) { var_dump($ret); } else { header("Location:{$ret}"); }
|
oK!大家仔细看代码。唯一不同的,仅仅是支付的方式这个常量。
目前常量的含义
- Config::ALI_CHANNEL_WEB 及时到账接口,主要用于网站支付
- Config::ALI_CHANNEL_WAP 手机网站支付接口,主要用于手机浏览器
- Config::ALI_CHANNEL_APP 移动支付接口,主要用于原生APP
调用方式非常统一,传入的参数也被最大程度的统一化。简化了客户端的调用。这里主要对参数进行一些说明。
支付宝配置数据
1 2 3 4 5 6 7 8
| $aliconfig = [ 'partner' => '2088xxxxx', 'md5_key' => 'xxxxxxxxxxxx', 'rsa_private_key' => dirname(__FILE__) . '/rsa_private_key.pem', "notify_url" => 'http://test.helei.com/pay-notify.html', "return_url" => 'http://test.helei.com/return-url.html', "time_expire" => '14', ];
|
参数 |
参数名 |
参数说明 |
是否必须 |
partner |
合作者身份ID |
签约的支付宝账号对应的支付宝唯一用户号。以2088开头的16位纯数字组成。 |
是 |
md5_key |
MD5密钥 |
点击这里 |
是 |
rsa_private_key |
RSA私钥 |
点击这里 |
是 |
notify_url |
服务器异步通知URI |
支付宝服务器主动通知商户网站里指定的页面http路径。(建议使用https) |
否 |
return_url |
页面跳转同步通知页面路径 |
支付宝处理完请求后,当前页面自动跳转到商户网站里指定页面的url路径。仅在即时到账接口有效 |
否 |
time_expire |
超时时间 |
设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。单位默认为分钟 |
否 |
订单数据
1 2 3 4 5 6 7 8 9
| $orderData = [ "order_no" => createPayid(), "amount" => '0.01', "client_ip" => '127.0.0.1', "subject" => ' 测试支付', "body" => '支付接口测试', "show_url" => 'http://mall.tiyushe.com/goods/23.html', "extra_param" => '自定义参数', ];
|
参数 |
参数名 |
参数说明 |
是否必须 |
order_no |
订单号 |
平台根据规则生成的订单号,最长64位,要在商户数据库中唯一 |
是 |
amount |
交易总金额 |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 |
是 |
client_ip |
客户端IP |
用户在创建交易时,该用户当前所使用机器的IP。 |
是 |
subject |
商品名称 |
商品的标题/交易标题/订单标题/订单关键字等。该参数最长为128个汉字。 |
是 |
body |
商品描述 |
对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 |
是 |
show_url |
商品展示网址 |
收银台页面上,商品展示的超链接。 |
手机网站支付接口:必须,其他:可选 |
extra_param |
公用回传参数 |
如果用户请求时传递了该参数,则返回给商户时会回传该参数。仅在即时到帐接口有效 |
是 |