最近公司的游戏 要推放华为海外版本,这个单独的版本只能用华为支付,不能使用Google 与 Ios 所以...
其实华为 的验证和 支付宝与 微信 非常接近,都是通过 回调的地址就可以了
前两天做了 IOS 的验证,由于领导不给我账号进去 看能不能调用回调地址,所以只能请求IOS的通用API进行验证
Google Pay 几个月就做了验证,是通过拿google pay 里生成的json 文件进行验证
``` $order_id 后台生成唯一订单ID $paytype 1=华为支付 2 ... (为接别的支付做的扩展字段)
/**
* 支付回调接口
* @return string;
*/
public function notify(){
@ob_clean(); //清空输出缓存,防止之前有输出
$paytype = $this->request->param('id',0,'int'); // 接收支付类型
$order_id = $this->request->param('order',0); // 接收支付订单
if(!$paytype)
return false;
$data = $_POST; //接收的数据
$pay_data = [];
$status = '';
// 签名验证
if($paytype == 1){
// 华为验证
$status = HuaweiPay::verifyNotify($data);
}
} 主要验证方法:
$value) { if($key != "sign" && $key != "signType") { $content .= ($i == 0 ? '' : '&').$key.'='.$value; } $i++; } $filename = dirname(FILE)."/payPublicKey.pem";
if(!file_exists($filename))
return false;
$pubKey = @file_get_contents($filename);
$openssl_public_key = @openssl_get_publickey($pubKey);
$ok = @openssl_verify($content,base64_decode($sign), $openssl_public_key, 'SHA256');
@openssl_free_key($openssl_public_key);
$result = "";
if($ok)
{
return true;
}
return false;
}
} ```
华为支付相关文档:https://developer.huawei.com/consumer/cn/service/hms/catalog/huaweiiapoversea.html?page=hmssdkhuaweiiapapireferenceoverseas1