iap php,PHP语言之华为应用内支付IAP验签
背景描述
项目对接华为HMS SDK的应用内支付IAP SDK3.x以后,支付成功后,可从PurchaseResultInfo对象中获取到购买数据InAppPurchaseData及其签名数据,需要使用在华为AppGallery Connect分配的公钥进行签名验证。
具体参考文档如下描述:
代码开发
这里随手用PHP写了一个小demo,验证拿到的购买数据、签名数据和公钥能否正常验签成功。同时也分享给大家,方便大家快速定位问题,比如公钥错误等问题。
代码
//收到的实际支付回调,不要做任何处理,请复制原始数据。
//这里xxxx等信息都是我屏蔽了一些个人数据,实际大家复制自己的回调数据就好
$content = '{"autoRenewing":false,"orderId":"201912250949586652ebf220c1.10xxxx75","packageName":"com.example.xxxxxxexample_netease.huawei","applicationId":10xxxx75,"kind":0,"productId":"3","productName":"test33333","purchaseTime":1577238608000,"purchaseTimeMillis":1577238608000,"purchaseState":0,"developerPayload":"09815772385983110000000191996123","purchaseToken":"0000016f3abf3a78a4ef7b217523ea5a346825ab632c152b864c2e5251433c9d599c5986ab8c89b1.1.10xxxx75","consumptionState":0,"acknowledged":0,"currency":"CNY","price":100,"country":"CN","payOrderId":"Aed0f1fbd9929f803d9d23b523b14575","payType":"4"}';
//sign值需要使用回调中的原始值,不要做urlencode或urldecode处理。
$sign = 'IuCnJI3bCDr92uomUbxamp6VeC8vN+o3GTtB7aVwTGpkk9QgeR9KdUjDya1tJXKX8HZgTTLpj7v4A1lP8xrOq3+knykn32Tup6STnn4qpee8J3sS9kjpIHmhIbh3QfnsHksCaT4ib9BurIWnH7yEtNlwqmOOibJw8FgFXofrfPsDwjuCy4/X9rlbimjmyAiFZLXCTNQoGollqUVEjqabhjh/a+VY89A6Z02F2bJkes39a7lQMer42egha86w65L3UYYSLOyxQPIfIZ1BG5yirZN4JgcD17CMk+vQvtVDXhC+e4xN//txWlG/qIgviZbmhLFGjA/gfP0o8LpY7booiA==';
//支付公钥需要处理成以下RSA格式,中间内容为公钥64位换行
$pubKey = '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq7iOD9qLMxMCEsY+l+IE
6kdI9HKHQoDG29ebPZFD+U1pdDewmkEcQzv/k0NmE9oeNIcxUqhg7ZwRrQ0g9xje
BCkiLTg4DOygOPOcZykuKZXDv/9aFn6FR5BVCrrOzmeR+/aEYcZZp86iWX+W4BdJ
L41i8qYonVRD6sDNuidAdg0UkNMPVRiHd5EYBgRHpPma7oeRVqfX4Iq/rL4DFOpu
uLiaLKmWSMOCLnIH+EXjjw3ttJOrB4Rq2fq6KrORgc8JMq2TPf/kK6r8NW9eWRWa
zmFvAZ8bUA7Idu4W8Z4SENwEO+ZeyWQx5I/piYEmBvmn3dy2l2bP3cZMUBVACkAE
jwIDAQAB
-----END PUBLIC KEY-----';
$openssl_public_key = @openssl_get_publickey($pubKey);
// SHA256 要根据实际回调中signType字段的取值确定,signType=RSA256时 使用以下字段值,其他任何情况都是用SHA1
$ok = @openssl_verify($content, base64_decode($sign), $openssl_public_key,'SHA256');
@openssl_free_key($openssl_public_key);
$result = "";
if($ok)
{
$result = "0";// success
}
else
{
$result = "1";// failure
}
$res = "{ \"result\": $result} ";
echo $res;
?>
运行
直接百度搜索个PHP在线运行工具,比如我这里随时用的:
复制代码进去后,运行返回0表示数据均正常。
原作者:Mayism
iap php,PHP语言之华为应用内支付IAP验签相关推荐
- PHP语言之华为应用内支付IAP验签
背景描述 项目对接华为HMS SDK的应用内支付IAP SDK3.x以后,支付成功后,可从PurchaseResultInfo对象中获取到购买数据InAppPurchaseData及其签名数据,需要使 ...
- 接入华为应用内支付,验证购买Token接口,返回“rights invalid”
有海外开发者向我们提问:我在应用中集成了华为应用内支付SDK(测试购买订阅型商品),按照文档说明,在服务器去请求验证购买Token接口的时候返回了{"responseCode":& ...
- Cocos2dx使用ios内支付IAP详细流程-白白
今天总结了一下cocos2d-x使用ios内支付iap的详细流程,封装好了调用接口,代码与详细说明在此 http://download.csdn.net/detail/u010229677/81566 ...
- Cocos2dx使用ios内支付IAP具体流程-白白
今天总结了一下cocos2d-x使用ios内支付iap的具体流程,封装好了调用接口,代码与具体说明在此 http://download.csdn.net/detail/u010229677/81566 ...
- 华为应用内支付报错60002:iap not activated,无法支付,拉不起支付界面
问题描述: 测试应用内支付,无法拉起支付界面,看日志报错如下: 我们在文档错误码中查到该错表示支付服务开关没有打开,检查后还是不能支付. 问题分析: 1. 确认应用的支付服务开关是否已经打开,支付服 ...
- 华为应用内支付无法拉起
对接华为HMS Core SDK 应用内支付(In-App Purchases,IAP)(4.0.4.300及更高版本)后,有时候会遇到华为IAP支付无法拉起的情况. 问题现象 发起支付后界面一闪而过 ...
- 【FAQ】接入华为应用内支付服务常见问题解答
HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即 ...
- 华为应用内支付验签失败,报错Signature length not correct
问题背景: 支付验签失败,具体报错如下: 问题分析: 支付公钥使用错误. 问题总结: 华为从IAP sdk3.x版本开始,支付公钥要参考如下章节获取,详细请参考文档: 原文链接:https://dev ...
- 使用iOS内支付IAP详细流程
1.appstore信息完善 首先肯定有一个可以发布产品的开发者账号,有一个可以运行应用的开发环境,IAP只能真机测试,我们必须有一台IOS设备. 我们进行的所有操作都是在mac上面进行的,测试都是真 ...
最新文章
- win10安装emacs+spacemacs,建议用官方安装方式
- easy ui datagrid 中getSelections方法只能获取一行数据
- 虹软sdk 服务器运行 错误码94212 解决方案
- arch linux 树莓派,树莓派上安装配置Archlinux
- mz04那智不二越机器人编程_买买买!这些炫酷的机器人已加入进博会“购物车”!...
- 负值之美:负margin在页面布局中的应用
- lvs负载均衡的调度算法和工作模式
- npm -save 和-save-dev秒懂
- 1125 Chain the Ropes
- c# 软件单元测试,单元测试(C#版)
- Golang——time.Ticker定时器
- 一个完整的springboot项目所需要导入的依赖合集(方便查找)
- matlab中啥叫字符串,在matlab中( )用于括住字符串.
- C++四种cast的详细介绍
- 【Redis】Redis数据结构与对象(一)简单动态字符串(SDS)
- 全球疫情来袭,瑞士科学家在实验室重造冠状病毒?
- 【毕业设计】大数据疫情可视化分析系统 - python
- 苏州企业认定为高新技术企业后就可以享受所得税优惠吗
- 【离散数学】一阶逻辑等值演算与推理
- 国庆期间试用CodeGear C++ Builder 2007的感受
热门文章
- 这个80后靠王者荣耀赚到93亿身家
- 联想拯救者Y90关键参数曝光:22GB运存+640GB超大存储
- 马斯克回怼世粮署:能公开60亿美元花在哪 就立即卖股票捐款
- 智能续航兼得的“超能代表”OPPO Watch 2系列正式发布
- 乐刻发布新品牌LITTA 目前已拥有25万+线上付费用户
- iPhone 13高端版所需120Hz刷新率屏幕或将由三星独家供应
- 苹果iPhone 12系列智能手机支持北斗卫星导航定位
- 王思聪被限制高消费后,官方终于回应:已有解决方案
- 1999元的AirPods Pro无线耳机突然发布,史上最大升级,买不买?
- 会玩!今年天猫双11可以买房了 还是特价 网友:满300减40吗?