
参考网址:https://blog.csdn.net/que_csdn/article/details/80861408 http://www.jb51.cc/PHP-weizijiaocheng-394625.HTML
一、苹果APP支付到服务端验证流程
1. 用户在app中点击购买;
2. app调用服务端接口生成订单;
3. app获取到服务端订单生成成功后d出支付窗口;
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.jb51.cc/PHP-weizijiaocheng-394625.HTML
总结以上是内存溢出为你收集整理的IOS内购--后台PHP认证全部内容,希望文章能够帮你解决IOS内购--后台PHP认证所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)