IOS内购--后台PHP认证
参考网址:https://blog.csdn.net/que_csdn/article/details/80861408 http://www.php.cn/php-weizijiaocheng-394625.html
上面的地址写的都不错的 可以参考改改代码 即OK!!!!
一、苹果APP支付到服务端验证流程
1. 用户在app中点击购买;
2. app调用服务端接口生成订单;
3. app获取到服务端订单生成成功后弹出支付窗口;
4. 用户输入密码支付;
5. app接收支付后apple应用商店返回的支付凭证;
6. app将支付凭证传回服务器,调用服务器接口验证凭证是否有效;
7. app获取服务器端的验证结果,反馈用户支付结果状态。
说明:苹果支付的商品,需要先在 itunes Connect 中配置APP内购项目,配置后对应会生成一个商品ID,在苹果APP端调用苹果支付时,就需要给苹果商店传送这个商品ID(product_id)参数。然后支付过程是在苹果商店中进行,支付完成后,返回一个支付凭证给APP,表示支付完成,但一般会再次调用自己的服务器(商家服务器)端进行支付验证,这时候在服务器写个验证接口,判断凭证是否有效,如果有效,对应修改订单状态和购买的商品状态等等。
二、凭证验证函数
|
注意:验证函数中有一个密钥需要在 itunes 中获取。
三、应用示范(ThinkPHP3.2控制器)
public
function
verify()
{
// 获取订单号
$order_no
= I(
'post.order_no'
);
// 获取用户id
$user_id
= I(
'post.uid'
);
//苹果内购的验证收据
$apple_receipt
= I(
'post.apple_receipt'
);
// 判断是否缺少参数
if
(
empty
(
$order_no
) ||
empty
(
$user_id
) ||
empty
(
$apple_receipt
) ) {
$message
=
"缺少请求参数"
;
$status
=
"400"
;
}
else
{
// 代码思路
// 1. 判断订单是否存在并且有效
// 2. 判断用户是否存在
// 3. 调用苹果支付凭证验证函数
$verify_result
= validate_apple_pay(
$apple_receipt
);
// 4.判断验证结果
if
(
$apple_result
[
'status'
] ) {
// 凭证验证成功
// 其他code,修改订单状态、购买商品状态……
$message
=
"ok"
;
$status
=
"200"
;
}
else
{
// 凭证验证失败
$status
=
"401"
;
$message
=
"验证失败"
;
}
}
// 返回接口数据
$result
=
array
();
if
( !
empty
(
$apple_receipt
) ) {
$result
[
'verify_result'
] =
$verify_result
[
'message'
];
$result
[
'apple_receipt'
] =
$apple_receipt
;
}
$result
[
'status'
] =
$status
;
$result
[
'message'
] =
$message
;
$this
->response(
$result
,
'json'
);
//以json方式返回数据
}
四、参考文档
1. HTTP标准状态码;
2. 苹果内购买项目配置流程;
3. iOS应用内支付(IAP)详解
转自:http://www.php.cn/php-weizijiaocheng-394625.html
最新文章
- struts2学习笔记--OGNL表达式1
- AFNetworking 3.0.4 的使用
- 记一次在Linux上面启动部署在tomcat服务器的程序
- javaWeb中struts开发——helloworld
- CopyOnWriteArrayList
- 主要从架构上来做优化,负载均衡、CDN、静态化、数据库的水平切割和纵向切割、读写分离、分布式缓存着手
- hand第四次考核
- JAVA面试之集合框架(三)
- 主库的wal日志已经被归档或异常丢失如何搭建从库
- [Leetcode]695. Max Area of Island
- php设计模式--面向对象编程规范PSR
- java核心技术笔记
- function类型(c++11)
- [na]tftp从linux下载文件
- 阿里云ECS,WampServer无法访问外网
- PyQt4单选框QCheckBox
- 【angular5项目积累总结】一些正则积累
- spm教程
- Centos下ftp协议连接远程ftp server主机
- BZOJ1412 [ZJOI2009]狼和羊的故事 【最小割】
热门文章
- C/C++ Threads): Creating worker threads that will be listening to jobs and executing them concurrently when wanted
- 负载均衡算法,轮询方式 大话设计模式之工厂模式 C#
- swift 2.0 语法 分支
- 分布式软件体系结构风格(C/S,B/S)
- scanner使用中遇见的问题
- 【二】注入框架RoboGuice使用:(Your First View Injection)
- bzoj3894: 文理分科(还是那道最小割)
- WebSocket 网页聊天室的实现(服务器端:.net + windows服务,前端:Html5)
- 第三周 Leetcode 4. Median of Two Sorted Arrays (HARD)
- Sort List 典型链表