我基本上试图使用自适应支付的PAY呼叫以编程方式立即从我自己的paypal帐户向其他帐户发送资金.根据文档,只要我指定senderEmail(我自己的paypal地址,用于设置自适应支付),这应该是逐字的.
但是,当我拨打电话时,我总是得到结果"CREATED"而不是"COMPLETED".创建意味着系统仍然希望我手动登录PayPal并批准付款.我真的需要这些付款在现场自动发生.任何帮助,将不胜感激.
这是我的请求字符串:
currencyCode=USD&
returnUrl=http%3A%2F%2Fwww.website.com%2F&
actionType=PAY&
cancelUrl=http%3A%2F%2Fwww.website.com%2F&
receiverList.receiver%280%29.email=receiver%40gmail.com&
receiverList.receiver%280%29.amount=1.00&
requestEnvelope.senderEmail=me%40gmail.com&
clientDetails.deviceId=mydevice&
clientDetails.ipAddress=127.0.0.1&
clientDetails.applicationId=APP-ZZZZZZZZZZZZZ&
requestEnvelope.errorLanguage=en_US&
memo=memo&
feesPayer=EACHRECEIVER&
ipnNotificationUrl=http%3A%2F%2Fwww.website.com%2Fpay.php
Run Code Online (Sandbox Code Playgroud)
以下是PayPal的回复:
[responseEnvelope.timestamp] => 2012-03-01T19:09:57.290-08:00
[responseEnvelope.ack] => Success
[responseEnvelope.correlationId] => 71efd416a2100
[responseEnvelope.build] => 2486531
[payKey] => AP-ZZZZZZZZZZZZZZZ
[paymentExecStatus] => CREATED
Run Code Online (Sandbox Code Playgroud) 到目前为止一直在逃避我的快速(长夜).我在PHP和Java中比较AES256并注意到差异.为简单起见,请忽略ascii键和null IV,这些将在生产中被替换.但我需要首先解决这个问题,无法弄清楚我在哪里犯错:
PHP:
echo base64_encode(
mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
"1234567890ABCDEF1234567890ABCDEF",
"This is a test",
MCRYPT_MODE_CBC,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
)
);
Run Code Online (Sandbox Code Playgroud)
Java的
byte[] key = "1234567890ABCDEF1234567890ABCDEF".getBytes("UTF-8");
byte[] iv = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);
SecretKeySpec newKey = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, newKey, ivSpec);
byte[] results = cipher.doFinal("This is a test".getBytes("UTF-8"));
return Base64.encodeToString(results,Base64.DEFAULT);
Run Code Online (Sandbox Code Playgroud)
PHP输出: 0KwK+eubMErzDaPU1+mwTQ==
Java输出: DEKGJDo3JPtk48tPgCVN3Q==
不是我期待的o_O!
我也试过MCRYPT_MODE_CBC,MCRYPT_MODE_CFB,MCRYPT_MODE_ECB …
有很多关于如何使用计算机访问崩溃报告的教程,但我希望我的应用程序在启动时扫描崩溃报告(来自其自身),以便用户可以使用我的应用程序向我发送报告.这可能吗?
我的清单:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="*" android:pathPattern=".*mht" />
<data android:scheme="https" android:host="*" android:pathPattern=".*mht" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="message/rfc822" android:scheme="http" />
<data android:mimeType="multipart/related" android:scheme="http" />
<data android:mimeType="message/rfc822" android:scheme="https" />
<data android:mimeType="multipart/related" android:scheme="https" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
结果:
很好奇,不是吗?我在这做错了什么?同样奇怪 - 我的清单:
<intent-filter
android:icon='@drawable/ic_launcher'
android:label='AndroidMHT File'
android:priority='1'>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data …Run Code Online (Sandbox Code Playgroud) php ×2
aes ×1
android ×1
api ×1
crash-dumps ×1
encryption ×1
ios ×1
iphone ×1
java ×1
mime-types ×1
paypal ×1
paypal-nvp ×1