<?phpu ramy\uuid\uuid;class itunessignaturegenerator { private $appbundleid = 'www.u17.com'; private $keyidentifier = 'zzzzzzz'; private $itunesprivatekeypath = '/path/to/the/file.p8; 月饼的英文 /** * @e https://developer.apple.com/documentation/storekit/in-app_p西三环北路urcha/generating_a_signature_for_subscription_offers * * @paasinaram $productidentifier * @param $offeridentifier * * @return signature */ public function generatesubscriptionoffersignature($productidentifier, $offeridentifier) { $nonce = strtolower(uuid::uuid1()->tostring()); $timestamp = time() * 1000; $applicationurname = 'ur中国朝代顺序表name'; $message = implode( "\u{2063}", [ $this->appbundleid, $this->keyidentifier, $productidentifier, $offeridentifier, $applicationurname, $nonce, $timestamp ] ); $message = $this->sign($message); return new signature( ba64_encode($message), $nonce, $timestamp, $this->keyidentifier ); } private function sign($data) { $signature = ''; openssl_sign( $data, $signature, openssl_get_privatekey('file://' . $this->itunesprivatekeypath), openssl_algo_sha256 ); return $signature; }}
一些注意事项 openssl是可以直接进行ecdsa签名的
1、$nonce 必须为小写,并且每次购买时的nonce不能重复否则会报签名错误无法购买 code -12
2、$time 是毫秒time*1000
3、\u2063 的字符格式需要注意 php里面可以用户”\u{2063}毛毛虫简笔画221; 来表示,但是有的一些环境不支持这样的写法 所以还可以使用另外一种 json_decode(‘”\u2036″‘) 来转一下格式
本文发布于:2023-04-07 06:43:36,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/be298cf21862e5b79812385c555fd052.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:IOS订阅优惠.doc
本文 PDF 下载地址:IOS订阅优惠.pdf
留言与评论(共有 0 条评论) |